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