Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Jaxb e Namespace

  1. #1

    Jaxb e Namespace

    Salve a tutti,

    da poco tempo mi sono imbattuto nel pacchetto jaxb per la gestione dei fogli xml, per fare delle prove ho utilizzato i fogli di stile di una file xml che attualmente gestisco manualmente nel quale sono presenti più namespace, nel file originale tali namespace vengono gestiti come segue
    <?xml version="1.0" encoding="UTF-8"?>
    <metadigit xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:niso="http://www.niso.org/pdfs/DataDict.pdf" xmlns:xlink="http://www.w3.org/TR/xlink"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.iccu.sbn.it/metaAG1.pdf"
    xsi:schemaLocation="http://www.iccu.sbn.it/metaAG1.pdf metadigit.xsd" version="2.0.1">
    <gen creation="2008-09-05T11:57:04" last_update="2009-07-09T14:39:55">
    <stprog>...</stprog>
    <collection>...</collection>
    <agency>...</agency>
    <access_rights>1</access_rights>
    <completeness>0</completeness>
    </gen>
    <bib level=".">
    <dc:identifier>...</dc:identifier>
    <dc:title>...</dc:title>
    <dc:creator>...</dc:creator>
    <dcublisher>...</dcublisher>
    </bib>
    ....
    </metadigit>

    una volta letto il file con jaxb e poi salvato i name space vengo cambiati in ns1, ns2, ecc....

    <metadigit xmlns="http://www.iccu.sbn.it/metaAG1.pdf" xmlns:ns2="http://www.w3.org/TR/xlink"
    xmlns:ns3="http://www.niso.org/pdfs/DataDict.pdf" xmlns:ns4="http://purl.org/dc/elements/1.1/"
    version="2.0.1">
    <gen last_update="2009-07-09T14:39:55" creation="2008-09-05T11:57:04">
    <stprog>...</stprog>
    <collection>...</collection>
    <agency>...</agency>
    <access_rights>1</access_rights>
    <completeness>0</completeness>
    </gen>
    <bib level=".">
    <ns4:identifier>...</ns4:identifier>
    <ns4:title>...</ns4:title>
    <ns4:creator>...</ns4:creator>
    <ns4ublisher>....</ns4ublisher>
    </bib>
    ...
    </metadigit>

    E' possibile fare in modo da specificare i nomi dei namespace

    vi ringrazio
    Massimiliano

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Jaxb e Namespace

    Originariamente inviato da Maximilianor
    E' possibile fare in modo da specificare i nomi dei namespace
    In genere il nome del prefisso, a livello tecnico, non è importante. Nel senso che il prefisso serve solo per fare da "ponte" tra un elemento/attributo e un namespace (URI).
    Nel tuo primo codice <identifier>, <title>, ecc... hanno prefisso "dc" che è associato al URI http://purl.org/dc/elements/1.1/. Nel secondo codice hai il prefisso ns4 che è comunque associato a http://purl.org/dc/elements/1.1/.
    Quindi a livello tecnico non cambia nulla, è corretto il primo come anche il secondo codice.

    Se però ti dà proprio fastidio la ridenominazione dei prefissi, con JAXB probabilmente è possibile ma non ne sono sicuro al 100%.

    Comunque non sono esperto di JAXB e ti rimando alla documentazione ufficiale: Customizing JAXB Bindings
    Di più non ti so dire al momento.


    EDIT: ho dato una occhiata alla documentazione e credo che non si possa fare. Nel senso che è possibile dichiarare con JAXB 2.0 i prefissi ma questi vengono usati nello "schema" ... non certo necessariamente nel documento generato a seguito del marshal.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Concordo con la tua nanalisi, ma il mio problema è che il file xml lo devo consegnare ad un utente finale il quale visualizza il file con un normalissimo browser e mi segnala il fatto di utilizzare un namespace diverso da queli che sono gli standard da lui forniti (premetto che il foglio xsd mi è stato fornito dal cliente) come errore anche se in realtà non lo è visto che xmlspy e altri validatori li accettano.

    Ma il cliente a sempre ragione per cui volevo risolvere il problema altrimenti contierò a utilizzare le mie vecchie librerie.

    Maxi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.