Sdílet prostřednictvím


Správa jmenných prostorů v dokumentu XML

Obory názvů XML přidružují názvy elementů a atributů v dokumentu XML k vlastním a předdefinovaným identifikátorům URI. Chcete-li vytvořit tato přidružení, definujete předpony pro identifikátory URI oboru názvů a tyto předpony použijete ke kvalifikaci názvů elementů a atributů v datech XML. Prostory názvů zabraňují kolizím názvů elementů a atributů a umožňují, aby prvky a atributy se stejným názvem byly zpracovány a ověřovány odlišně.

Deklarace jmenných prostorů

Chcete-li deklarovat obor názvů u elementu xmlns: , použijte atribut:

xmlns:<name>=<"uri">

kde <name> je předpona oboru názvů a <"uri"> je identifikátor URI, který identifikuje obor názvů. Po deklaraci předpony ji můžete použít ke kvalifikaci prvků a atributů v dokumentu XML a jejich přidružení k identifikátoru URI prostoru názvů. Vzhledem k tomu, že se předpona oboru názvů používá v celém dokumentu, měla by mít krátkou délku.

Tento příklad definuje dva BOOK prvky. První prvek je kvalifikovaný předponou mybooka druhý prvek je kvalifikovaný předponou, bb. Každá předpona je spojena s jiným identifikátorem URI oboru názvů:

<mybook:BOOK xmlns:mybook="http://www.contoso.com/books.dtd">  
    <bb:BOOK xmlns:bb="urn:blueyonderairlines" />
</mybook:BOOK>

K označení, že prvek je součástí určitého jmenného prostoru, přidejte k němu předponu tohoto prostoru. Například pokud Author prvek patří do mybook oboru názvů, je deklarován jako <mybook:Author>.

Rozsah deklarace

Obor názvů je účinný od bodu deklarace až do konce prvku, ve který byl deklarován. V tomto příkladu se obor názvů definovaný v elementu BOOK nevztahuje na elementy mimo BOOK element, například element Publisher :

<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>  

Obor názvů musí být deklarován před jeho použitím, ale nemusí se zobrazovat v horní části dokumentu XML.

Pokud v dokumentu XML používáte více oborů názvů, můžete definovat jeden obor názvů jako výchozí obor názvů a vytvořit tak přehlednější dokument. Výchozí obor názvů je deklarován v kořenovém elementu a vztahuje se na všechny nekvalifikované prvky v dokumentu. Výchozí obory názvů se vztahují pouze na elementy, nikoli na atributy.

Chcete-li použít výchozí obor názvů, vynecháte předponu a dvojtečku z deklarace elementu:

<BOOK xmlns="http://www.contoso.com/books.dtd">  
...
</BOOK>

Správa oboru názvů

Třída XmlNamespaceManager ukládá kolekci identifikátorů URI oboru názvů a jejich předpon a umožňuje vyhledávat, přidávat a odebírat obory názvů z této kolekce. V určitých kontextech je tato třída nutná k lepšímu výkonu zpracování XML. XsltContext Například třída používá XmlNamespaceManager pro podporu XPath.

Správce oboru názvů neprovádí žádné ověření oborů názvů, ale předpokládá, že předpony a obory názvů jsou již ověřeny a odpovídají specifikaci oborů názvů W3C .

Poznámka:

LINQ TO XML v C# a ve Visual Basic se nepoužívají XmlNamespaceManager ke správě oborů názvů. Informace o správě oborů názvů při použití LINQ to XML najdete v tématu Práce s obory názvů XML (C#) a Práce s obory názvů XML (Visual Basic).

Zde jsou některé z úloh správy a vyhledávání, které můžete provádět s třídou XmlNamespaceManager. Další informace a příklady najdete na odkazech na referenční stránku pro každou metodu nebo vlastnost.

Do Používání
Přidat obor názvů metoda AddNamespace
Odeberte obor názvů metoda RemoveNamespace
Najděte identifikátor URI pro výchozí obor názvů DefaultNamespace vlastnost
Najděte URI pro předponu oboru názvů metoda LookupNamespace
Najděte předponu pro identifikátor URI oboru názvů metoda LookupPrefix
Získej seznam oborů názvů v aktuálním uzlu metoda GetNamespacesInScope
Nastavit obor názvů metody PushScope a PopScope
Kontrola, jestli je předpona definovaná v aktuálním oboru metoda HasNamespace
Získání tabulky názvů používané k vyhledání předpon a identifikátorů URI NameTable vlastnost

Viz také