Nwlapcug.com


Si è verificato un errore "Duplicato attributo" durante un Parse XML

XML, acronimo di eXtensible Markup Language, può sembrare semplice a prima vista, ma ben formato XML devono rispettare una serie di regole rigorose. Quando queste regole vengono violate, parser XML, ad esempio MSXML e Serse segnalare errori che spesso confondono i codificatori di inizio. Per coloro che incontrano i messaggi di errore "attributo duplicato", comprendere alcuni concetti di codifica base vi aiuterà a illustrare le differenze tra elementi e attributi.

Elementi

Elementi costituiscono la base di XML. Tutti i documenti XML contengono un unico elemento radice che inizia con un tag di apertura, seguito dagli elementi figlio e quindi viene terminato da un tag di chiusura.

< scuola >
< corso ID = "ENG101" nome = "Competenze di base di scrittura" >
< nome studente = "Jim Smith" / >
< nome studente = "Mary Jones" / >
< / corso >
< corso ID = "ENG102" nome = "Vocabolario e grammatica inglese" / >
< / scuola >

Nell'esempio precedente, l'elemento radice è scuola. Il documento inizia con un tag di apertura < scuola > e termina con un tag di chiusura < / scuola >. All'interno di questi elementi sono due elementi di corso, che può o non possono contenere elementi di studente.

Attributi

Un modo per esprimere i dati in un file XML è incorporando attributi all'interno di un elemento. Un attributo è posizionato dopo il tag di apertura con una coppia nome/valore nella forma:

NOME = "valore"

Continuando con l'esempio, il corso dispone degli attributi "ID" e "Nome". Valutando gli attributi, vediamo che la scuola ha due corsi, ita 101 e 102 ita, che sono denominati "Competenze di base scrittura" e "Grammatica e vocabolario inglese."

Attributi duplicati

Una regola di "ben formato" XML è che ogni attributo all'interno di un elemento deve avere un nome univoco. Nell'esempio, un singolo studente, normalmente, non hanno più nomi e un corso non dispone più di un ID. Nella vita reale, questo potrebbe non essere il caso e lo stesso corso potrebbe essere offerto da due reparti come segue:

< corso ID = "ENG101" ID = "COMM103" nome = "Competenze di base di scrittura" / >

Questo non è consentito in XML, tuttavia. Se due classi con lo stesso nome devono essere espressi, un secondo attributo, ad esempio ALT, può essere utilizzato invece:

< corso ID = "ENG101" ALT = "COMM103" nome = "Competenze di base di scrittura" / >

Altri modi per esprimere gli attributi duplicati

XML non supporta attributi duplicati, ma permetterà figlio più elementi con lo stesso nome. Nell'esempio, sia il corso e lo studente gli elementi vengono visualizzati due volte all'interno di elementi padre. Utilizzare gli attributi per descrivere le caratteristiche uniche di ogni elemento e utilizzare gli elementi figlio per enumerare gli elementi con più occorrenze. Un corso ha normalmente un ID e un nome, ma può avere molti studenti.