Naamruimten beheren in een XML-document
XML-naamruimten koppelen element- en kenmerknamen in een XML-document aan aangepaste en vooraf gedefinieerde URI's. Als u deze koppelingen wilt maken, definieert u voorvoegsels voor naamruimte-URI's en gebruikt u deze voorvoegsels om element- en kenmerknamen in XML-gegevens te kwalificeren. Naamruimten voorkomen conflicten tussen elementen en kenmerken en maken het mogelijk om elementen en kenmerken van dezelfde naam anders te verwerken en te valideren.
Naamruimten declareren
Als u een naamruimte wilt declareren voor een element, gebruikt u het xmlns:
kenmerk:
xmlns:<name>=<"uri">
waar <name>
is het voorvoegsel van de naamruimte en <"uri">
is de URI die de naamruimte identificeert. Nadat u het voorvoegsel hebt declareren, kunt u het gebruiken om elementen en kenmerken in een XML-document te kwalificeren en deze te koppelen aan de naamruimte-URI. Omdat het voorvoegsel van de naamruimte in een document wordt gebruikt, moet het kort zijn.
In dit voorbeeld worden twee BOOK
elementen gedefinieerd. Het eerste element wordt gekwalificeerd door het voorvoegsel, mybook
en het tweede element wordt gekwalificeerd door het voorvoegsel. bb
Elk voorvoegsel is gekoppeld aan een andere naamruimte-URI:
<mybook:BOOK xmlns:mybook="http://www.contoso.com/books.dtd">
<bb:BOOK xmlns:bb="urn:blueyonderairlines" />
</mybook:BOOK>
Als u wilt laten zien dat een element deel uitmaakt van een bepaalde naamruimte, voegt u het voorvoegsel van de naamruimte eraan toe. Als een Author
element bijvoorbeeld deel uitmaakt van de mybook
naamruimte, wordt dit gedeclareerd als <mybook:Author>
.
Bereik van declaratie
Een naamruimte is van kracht vanaf het declaratiepunt tot het einde van het element waarin deze is gedeclareerd. In dit voorbeeld is de naamruimte die in het BOOK
element is gedefinieerd, niet van toepassing op elementen buiten het BOOK
element, zoals het Publisher
element:
<Author>Joe Smith</Author>
<BOOK xmlns:book="http://www.contoso.com">
<title>My Wonderful Day</title>
<price>$3.95</price>
</BOOK>
<Publisher>
<Name>MSPress</Name>
</Publisher>
Een naamruimte moet worden gedeclareerd voordat deze kan worden gebruikt, maar deze hoeft niet boven aan het XML-document te worden weergegeven.
Wanneer u meerdere naamruimten in een XML-document gebruikt, kunt u één naamruimte definiëren als de standaardnaamruimte om een schoner uitziend document te maken. De standaardnaamruimte wordt gedeclareerd in het hoofdelement en is van toepassing op alle niet-gekwalificeerde elementen in het document. Standaardnaamruimten zijn alleen van toepassing op elementen, niet op kenmerken.
Als u de standaardnaamruimte wilt gebruiken, laat u het voorvoegsel en de dubbele punt uit de declaratie op het element weg:
<BOOK xmlns="http://www.contoso.com/books.dtd">
...
</BOOK>
Naamruimten beheren
In de XmlNamespaceManager klasse wordt een verzameling naamruimte-URI's en de bijbehorende voorvoegsels opgeslagen en kunt u naamruimten uit deze verzameling opzoeken, toevoegen en verwijderen. In bepaalde contexten is deze klasse vereist voor betere prestaties van XML-verwerking. De klasse gebruikt XmlNamespaceManager bijvoorbeeld XsltContext voor XPath-ondersteuning.
De naamruimtebeheerder voert geen validatie uit voor de naamruimten, maar gaat ervan uit dat voorvoegsels en naamruimten al zijn geverifieerd en voldoen aan de W3C-naamruimtenspecificatie .
Notitie
LINQ TO XML in C# en Visual Basic worden niet gebruikt XmlNamespaceManager om naamruimten te beheren. Zie Werken met XML-naamruimten (C#) en werken met XML-naamruimten (Visual Basic) in de LINQ-documentatie voor informatie over het beheren van naamruimten bij het gebruik van LINQ naar XML.
Hier volgen enkele beheer- en opzoektaken die u met de XmlNamespaceManager klasse kunt uitvoeren. Volg de koppelingen naar de referentiepagina voor elke methode of eigenschap voor meer informatie en voorbeelden.
Tot | Gebruik |
---|---|
Een naamruimte toevoegen | AddNamespace Methode |
Een naamruimte verwijderen | RemoveNamespace Methode |
De URI voor de standaardnaamruimte zoeken | DefaultNamespace Eigenschap |
De URI zoeken voor een naamruimtevoorvoegsel | LookupNamespace Methode |
Het voorvoegsel voor een naamruimte-URI zoeken | LookupPrefix Methode |
Een lijst met naamruimten ophalen in het huidige knooppunt | GetNamespacesInScope Methode |
Bereik van een naamruimte | PushScope en PopScope methoden |
Controleren of een voorvoegsel is gedefinieerd in het huidige bereik | HasNamespace Methode |
De naamtabel ophalen die wordt gebruikt om voorvoegsels en URI's op te zoeken | NameTable Eigenschap |