En "Duplicate Egenskap" feil ble oppdaget under en XML Parse

XML, en forkortelse for eXtensible Markup Language, kan virke enkel ved første øyekast, men velformet XML må forholde seg til en rekke strenge regler. Når disse reglene blir brutt, XML-parsere som MSXML og Xerxes rapportere feil som ofte forvirre begynner programmerere. For de som møter "duplisert attributt" feilmeldinger, forstå noen grunnleggende koding konseptene vil bidra til å illustrere forskjellene mellom elementer og attributter.

Elements

Elementer danner grunnlaget for XML. Alle XML-dokumenter inneholder et enkelt root element som begynner med et åpningselement, etterfulgt av underordnede elementer, og deretter avsluttes av en avsluttende koden.

<SCHOOL>
<KURS ID = "ENG101" name = "Grunnleggende skriveferdigheter">
<STUDENT NAME = "Jim Smith" />
<STUDENT NAME = "Mary Jones" />
</ KURS>
<KURS ID = "ENG102" name = "Engelsk grammatikk og ordforråd" />
</ SCHOOL>

I eksempelet ovenfor, er roten element SCHOOL. Dokumentet starter med en innledende <SCHOOL> tag og slutter med en avsluttende </ SCHOOL> tag. Innenfor disse elementene er to kurs elementer, som kan eller ikke kan inneholde STUDENT elementer.

Attributter

En måte å uttrykke data i en XML-fil er ved å inkludere egenskaper innen et element. Et attributt er plassert etter startkoden ved hjelp av et navn og verdi-par i form:

NAME = "verdi"

Fortsetter eksempel har KURS element attributtene "ID" og "navn." Ved evaluering av egenskaper, ser vi at skolen har to kurs, ENG 101 og ENG 102, som er kåret til "Grunnleggende skriveferdigheter" og "English Grammar og vokabular. "

Duplicate attributter

En regel om "velformet" XML er at hver attributt innenfor et element må ha et unikt navn. I eksempel ikke en eneste student normalt ikke ha flere navn og et kurs ikke har mer enn ett ID. I det virkelige liv, kan dette ikke være tilfelle, og det samme kurset kan bli tilbudt av to avdelinger som følger:

<KURS ID = "ENG101" ID = "COMM103" name = "Grunnleggende skriveferdigheter" />

Dette er ikke tillatt i XML, imidlertid. Hvis to klasser med samme navn behov for å bli uttrykt, en andre egenskap, for eksempel ALT, kan brukes i stedet:

<KURS ID = "ENG101" ALT = "COMM103" name = "Grunnleggende skriveferdigheter" />

Andre måter å uttrykke dupliserte attributter

XML tillater ikke duplikate egenskaper, men det gjør at flere underordnede elementer med samme navn. I eksemplet både kurset og STUDENT elementer vises to ganger i sine overordnede elementer. Bruk attributter for å beskrive unike egenskapene til hvert element og bruke ordnede objekter å nummerere de elementene som har flere forekomster. Et kurs har vanligvis en ID og ett navn, men det kan ha mange studenter.