XML-navneområde

Et XML-navneområde er en W3C -anbefaling for å gi unike navngitte elementer og attributter i en XML -fil . En XML-fil kan inneholde element- eller attributtnavn fra mer enn ett XML-vokabular. Hvis hver av disse vokabularene gis et navneområde , sitt eget semantiske omfang, referert til en URI der begrepene den inkluderer er oppført, løses den eksisterende tvetydigheten mellom elementer eller attributter som har samme navn, homonymi. Elementnavn innenfor hvert navneområde må være unike.

Bruk av navnerom

Et eksempel kan være en XML-forekomst som inneholder referanser til en kunde og et produkt etterspurt av kunden. Både elementet som representerer kunden og elementet som representerer produktet kan ha et underordnet element kalt "id_number". Referanser til elementet "id_number" kan være tvetydige, med mindre elementene, med samme navn, men forskjellig betydning, ble tatt til forskjellige navneområder som differensierte dem.

<?xml version="1.0"?> <cli:client xmlns:cli= 'http://en.wikipedia.org/wiki/XML_Namespace/client' xmlns:ped= 'http://en.wikipedia.org/ wiki/XML_Namespace/order' > <cli:ID_number> 1232654 </cli:ID_number> <cli:name> Så-og- så </cli:name> <cli:phone> 99999999 </cli:phone> <ordre: order> <order:ID_number> 6523213 </order:ID_number> <order:article> Verktøykasse </order:article> <order:price> 187,91 </ order:price> </order:order> </cli: customer>

Erklæring av navnerom

Et navneområde er deklarert ved å bruke det reserverte XML-attributtet xmlns, hvis verdi må være en enhetlig ressursidentifikator .

For eksempel:

xmlns="http://www.w3.org/1999/xhtml"

URI-en leses imidlertid ikke som en adresse; den behandles som en tekststreng av XML - parseren . For eksempel inneholder ikke http://www.w3.org/1999/xhtml seg selv noen kode, den beskriver ganske enkelt XHTML - navneområdet for menneskelige lesere. Bruk av en URL (som "http://www.w3.org/1999/xhtml") for å identifisere et navneområde, i stedet for en enkel streng (som "xhtml"), reduserer sjansen for at forskjellige navneområder bruker de samme identifikatorene . Navneområdeidentifikatorer trenger ikke å følge konvensjoner for Internett-adresser, selv om de ofte gjør det.

Erklæringen kan også inneholde et kort prefiks som elementene og attributtene kan identifiseres med, for eksempel:

xmlns:xhtml="http://www.w3.org/1999/xhtml"

Et XML-navneområde trenger ikke vokabularet for å bli definert, selv om det er god praksis å bruke et DTD- eller XML-skjema for å definere datastrukturen på URI-plasseringen til navnerommet.

Omfang av navnerom

Deklarasjonsomfanget til et navneområdeprefiks er fra startkoden til et XML-element, der det er deklarert, til sluttkoden til det XML-elementet. I tomme tagger, tilsvarende elementer uten "barn", er omfanget selve taggen.

Standard navneområde

Når den er definert i startkoden til et XML-element, gjelder den for alle elementer uten et prefiks i elementets omfang, men ikke for attributter.

<?xml version="1.0"?> <client xmlns='http://en.wikipedia.org/wiki/XML_Namespace/client' xmlns:ped='http://en.wikipedia.org/wiki/XML_Namespace/ped'> <ID_number>1232654</ID_number> <name>Navn</name> <phone>99999999</phone> <ordre:ordre> <order:ID_number>6523213</order:ID_number> <ped:article>Verktøykasse</ped:article> <order:price>187,90</order:price> </order:order> </client>

Unikhet til attributter

Ingen XML-elementer kan ha to attributter med samme utvidede navn. Følgende tilfelle vil bryte med denne begrensningen, siden begge attributtene til elementet vil ha samme utvidede navn ( http://en.wikipedia.org/wiki/XML_Namespace/ns:attribute ).

<?xml version="1.0"?> <root xmlns:ns1="http://en.wikipedia.org/wiki/XML_Namespace/ns" xmlns:ns2="http://en.wikipedia.org/wiki/XML_Namespace/ns"> <element ns1:attribute="hei" ns2:attribute="farvel" /> </root>

Eksterne lenker