Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    java dom Problema createElementNS

    Salve ho un problema con la funzione createElementsNs di java il codi ce è il seguente:

    codice:
    root = doc.createElementNS("urn:mpeg:mpeg7:Schema:2001","Mpeg7");
     doc.appendChild(root);
    
            description = doc.createElement("Description");
            description.setAttribute("xsi:type", "VariationDescriptionType");
            root.appendChild(description);
    il problema è che nel file xml creato, nel tag description compare anche un attributo
    xmlns="" che mi dà problemi come posso fare per evitare che nel tag description compaia tale attributo?

    Ho provato a rimuovere l'attributo con metodi tipo removeAttribute ma non si cancella nel file

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Java ha un forum appoaito. Inoltre, il codice va postato all'interno dei tag CODE, come indicato nel regolamento interno (link in rilievo).

    Indica anche quale (eventuale) libreria stai usando.

    Sposto e modifico.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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

    Re: java dom Problema createElementNS

    Originariamente inviato da antomare4
    il problema è che nel file xml creato, nel tag description compare anche un attributo
    xmlns="" che mi dà problemi come posso fare per evitare che nel tag description compaia tale attributo?
    Facciamo una premessa. Il xmlns="" si mette per "cancellare" il namespace di default. In pratica per fare in modo che l'elemento non abbia un namespace di default.

    Per chiarire:
    codice:
    <A xmlns="urn:pippo:pluto">
      
        <C xmlns="">....</C>
      
    </A>
    <A> dichiara un namespace di default, [B] è nello scope di <A>, quindi "eredita" il namespace di default. Ma <C> dichiarando xmlns="" lo cancella!! E quindi <C> non ha un namespace di default.

    Se te lo ha messo, è perché per il tuo elemento <Description> non hai specificato il namespace e al tempo stesso, a livelli più alti c'è un elemento con un namespace di default. Nel tuo caso l'elemento più sopra che ha un namespace di default è il <Mpeg7>.

    Senza dilungarmi troppo ... devi creare l'elemento <Description> specificando il namespace, ovvero anche lì devi usare createElementNS():

    description = doc.createElementNS("urn:mpeg:mpeg7:Schema:2001", "Description");
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    quindi ogni nodo successivo che creo dovrei usare il createelementsNs e rispecificare tutto il namspace?? ok provero a fare cosi, grazie per la risposta

    ps: scusate se ho sbagliato sezione e ho messo male il codice ma questo periodo ti fonde propio il cervello

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da antomare4
    quindi ogni nodo successivo che creo dovrei usare il createelementsNs e rispecificare tutto il namspace??
    Sì se ti serve che tutti i discendenti abbiano lo stesso namespace di quel <Mpeg7>.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2025 vBulletin Solutions, Inc. All rights reserved.