Omówienie przestrzeni nazw (LINQ to XML)
W tym artykule przedstawiono nazwy XML, przestrzenie nazw XML, prefiksy przestrzeni nazw XML oraz XName klasy i XNamespace .
Nazwy XML są często źródłem złożoności programowania XML. Nazwa XML składa się z przestrzeni nazw XML (nazywanej również identyfikatorem URI przestrzeni nazw XML) i nazwą lokalną. Przestrzeń nazw XML jest podobna do przestrzeni nazw w programie .NET. Umożliwia ona unikatowe kwalifikacje nazw elementów i atrybutów, aby uniknąć konfliktów nazw między różnymi częściami dokumentu XML. Po zadeklarowaniu przestrzeni nazw XML możesz wybrać lokalną nazwę, która musi być unikatowa tylko w tej przestrzeni nazw.
Innym aspektem nazw XML są prefiksy przestrzeni nazw XML, które powodują większość złożoności nazw XML. Te prefiksy umożliwiają utworzenie skrótu dla przestrzeni nazw XML, co sprawia, że dokument XML jest bardziej zwięzły i zrozumiały. Jednak znaczenie prefiksu XML zależy od kontekstu, co zwiększa złożoność. Na przykład prefiks aw
XML może być skojarzony z jedną przestrzenią nazw XML w części drzewa XML i z inną przestrzenią nazw w innej części.
Jedną z zalet używania linQ to XML w języku C# jest to, że nie trzeba używać prefiksów XML. Gdy LINQ to XML ładuje lub analizuje dokument XML, każdy prefiks XML jest rozpoznawany jako odpowiadający mu przestrzeń nazw XML. Następnie podczas pracy z dokumentem, który używa przestrzeni nazw, prawie zawsze uzyskujesz dostęp do przestrzeni nazw za pośrednictwem identyfikatora URI przestrzeni nazw, a nie za pośrednictwem prefiksu przestrzeni nazw. Gdy deweloperzy pracują z nazwami XML w LINQ to XML, zawsze pracują z w pełni kwalifikowaną nazwą XML (czyli przestrzenią nazw XML i nazwą lokalną). Jednak linQ to XML umożliwia pracę z prefiksami przestrzeni nazw i kontrolowania ich w razie potrzeby.
W przypadku używania linQ to XML z literałami Visual Basic i XML należy używać prefiksów przestrzeni nazw podczas pracy z dokumentami w przestrzeniach nazw.
W linQ to XML klasa reprezentująca nazwy XML to XName. Nazwy XML są często wyświetlane w interfejsie API LINQ to XML i wszędzie tam, gdzie jest wymagana nazwa XML, znajdziesz XName parametr. Jednak rzadko pracujesz bezpośrednio z elementem XName. XName zawiera niejawną konwersję z ciągu.
Aby uzyskać więcej informacji, zobacz tematy XNamespace oraz XName.