Differenza tra elemento semplice vuoto e elemento complesso vuoto - XML
C'è qualche differenza tra un elemento semplice vuoto e un elemento complesso vuoto in un file xml? Come posso distinguerli?
Su w3schools ho trovato:
- elemento semplice vuoto
<element></element>
o<element />
; inoltre dice che "Gli elementi vuoti possono avere attributi.". - elemento complesso vuoto
<product pid="1345"/>
Risposte
Essere semplice o complesso è una proprietà di un tipo, non (direttamente) di un elemento. Possiamo dire che un elemento è conforme a un tipo (in particolare, un tipo definito in uno schema XSD), e possiamo dire che il tipo è semplice o complesso, ma le categorie di tipi semplici e complessi si sovrappongono nei tipi di elementi che loro permettono. In particolare, sia i tipi complessi che i tipi semplici potrebbero consentire elementi vuoti come <e/>
ed elementi con contenuto di testo come <e>foo</e>
. Se vediamo un elemento che ha attributi, o elementi figli, allora sappiamo che non può essere conforme a nessun tipo semplice, ma se non ha nessuno dei due, allora non lo sappiamo senza guardare lo schema.
La risposta alla tua domanda "come posso distinguerli" è che devi guardare nello schema; non puoi distinguerli solo dall'istanza.
Un elemento semplice implica che non abbia elementi figlio e attributi. Se un elemento ha elementi o attributi figlio, è considerato complesso .
Separatamente, dire che un elemento è vuoto significa dire che non ha contenuto - non solo non ha elementi figlio, ma non ha nodi di testo figlio.
Pertanto, sia gli elementi semplici che quelli complessi possono essere vuoti o non vuoti.
Nota a margine: se un tag di inizio si chiude automaticamente, <e/>
vs <e></e>
, indipendentemente dal fatto che il suo elemento sia semplice o complesso, è insignificante e generalmente non può essere rilevato o definito a livello XML.
Esempi
<e></e>
è semplice e vuoto.<e>abc</e>
è semplice e non vuoto.<e a="1"></e>
è complesso e vuoto.<e a="1">abc</e>
è complesso e non vuoto.
Guarda anche
- Definisci un elemento XML che deve essere vuoto e non ha attributi
Sommario
In generale, si pensi a un tipo complesso con una sottostruttura XML e un tipo semplice come privo di sottostruttura XML. Pensa al vuoto come se non implicasse alcun contenuto.