Ondersteuning voor naamruimten in de DOM
Het XML Document Object Model (DOM) is volledig naamruimtebewust. Alleen naamruimtebewuste XML-documenten worden ondersteund. Het World Wide Web Consortium (W3C) geeft aan dat DOM-toepassingen die niveau 1 implementeren, niet-naamruimtebewust kunnen zijn en dom level 2-functies naamruimtebewust zijn. Alle functies in de XML DOM zijn echter naamruimtebewust, ongeacht of de methode afkomstig is van de aanbeveling niveau 1 of niveau 2 DOM.
In een niet-naamruimtebewuste instelling setAttribute("A:b", "123")
, zoals opgegeven in de aanbeveling domniveau 1, resulteert bijvoorbeeld niet in een kenmerk met een voorvoegsel van A
en een lokale naam van b
. Dit resulteert in een kenmerk met de waarde A:b
.
In een naamruimtebewuste omgeving resulteert de aanroep van het DOM-niveau 2 setAttribute("A:b", "123")
in een kenmerk met een voorvoegsel van A
en een lokale naam van b
. Dit is hoe de DOM van Microsoft .NET Framework werkt.
Voor alle methoden die een naamparameter gebruiken, nemen deze methoden daarom ook een voorvoegsel om de naam in aanmerking te nemen. De naamparameter, zoals de A:b
in de methode setAttribute DOM Level 1, wordt als volgt geparseerd:
Als er geen dubbele punt (:) tekens zijn, wordt de lokale naam ingesteld op de
name
parameter en zijn het voorvoegsel en de naamruimte-URI lege tekenreeksen.Als er een dubbele punt wordt gevonden, wordt de naam gesplitst in twee delen op basis van de positie van het eerste dubbele punt. Het voorvoegsel wordt ingesteld op de tekenreeks die is gevonden vóór de dubbele punt en de lokale naam wordt ingesteld op de tekenreeks die na de dubbele punt is gevonden. Voor methoden die geen naamruimte-URI-waarde gebruiken, wordt de naamruimte-URI niet omgezet en blijft deze ingesteld op een lege tekenreeks. Anders wordt de naamruimte-URI ingesteld op de tekenreeks die aan de methode wordt doorgegeven. Als het voorvoegsel niet is gedefinieerd, mislukken de eigenschappen Save en InnerXml en OuterXml.