Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 |