次の方法で共有


XmlNode.BaseURI プロパティ

現在のノードのベース URI を取得します。

Public Overridable ReadOnly Property BaseURI As String
[C#]
public virtual string BaseURI {get;}
[C++]
public: __property virtual String* get_BaseURI();
[JScript]
public function get BaseURI() : String;

プロパティ値

ノードの読み込み元の場所。ノードにベース URI がない場合は String.Empty。

解説

ネットワーク化した XML ドキュメントは、さまざまな W3C 標準包含機構を使用して集約されたデータのチャンクで構成されるため、異なる場所からのノードを含んでいます。 BaseURI は、ノードが存在していた元の位置を通知します。

このプロパティの値は、ノード型によって異なります。たとえば、Document ノードの場合は、 XmlDocument オブジェクトの位置を返します。外部 EntityReference ノードの子ノードは、エンティティ自体の位置を返します。たとえば、次の XML ドキュメントがあるとします。

<!DOCTYPE item [
<!ENTITY xyz SYSTEM "a/b.xml">
]>
<item num='123'>&xyz;</item>
   

外部エンティティ a/b.xml には XML テキスト <test>123</test> が含まれています。

ドキュメントが https://server/mydata.xml から読み込まれた場合、 BaseURI は次の値を返します。

NodeType 名前 BaseURI
Attribute num https://server/mydata.xml
Document #document https://server/mydata.xml
DocumentType item https://server/mydata.xml
Entity xyz https://server/mydata.xml
Element item https://server/mydata.xml
EntityReference xyz https://server/mydata.xml
Element test https://server/a/b.xml
Text #text https://server/a/b.xml

BaseURI はエンティティ参照の境界を検索するため、エンティティが展開された場合、この情報は保存されず、このプロパティは常に XmlDocument オブジェクトの位置を返します。

2 番目に、次の XML ドキュメントを例に示します。

<!DOCTYPE Mydata SYSTEM "https://localhost/doctype.dtd">
<baa>&xyz;</baa>

DTD ファイルには、次の内容が含まれています。

<!ENTITY xyz <E1>My Data</E1>
<!ELEMENT baa #PCDATA>
<!ATTLIST baa attr1 "woof">

XML ドキュメントが https://localhost/mydata.xml から読み込まれる場合、 BaseURI は各ノードに対して次を返します。

NodeType 名前 BaseURI
Document #document https://localhost/mydata.xml
DocumentType Mydata https://localhost/mydata.xml

XmlDocumentType.SystemId プロパティまたは XmlDocumentType.PublicId プロパティを使用すると、DTD ファイルの読み込み元を識別できます。

Element baa https://localhost/mydata.xml
Entity xyz https://localhost/doctype.dtd
EntityReference xyz https://localhost/mydata.xml
Attribute woof https://localhost/mydata.xml

メモ   既定の属性のベース URI は、その属性が属している要素のベース URI と同じです。

このプロパティは、DOM (Document Object Model) に対する Microsoft 拡張機能です。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

XmlNode クラス | XmlNode メンバ | System.Xml 名前空間