XDocumentType.SystemId プロパティ

定義

このドキュメント型定義 (DTD) のシステム識別子を取得または設定します。

public:
 property System::String ^ SystemId { System::String ^ get(); void set(System::String ^ value); };
public string SystemId { get; set; }
public string? SystemId { get; set; }
member this.SystemId : string with get, set
Public Property SystemId As String

プロパティ値

このドキュメント型定義 (DTD) のシステム識別子を含む String

次の例では、外部プライベート DTD を参照する XML ドキュメントを作成します。 DTD には内部サブセットがありません。 XDocumentType コンストラクターの呼び出しには、外部プライベート DTD の使用が反映されます。 内部サブセットの null を渡します。

string pubsDtd =
@"<!ELEMENT Pubs (Book+)>
<!ELEMENT Book (Title, Author)>
<!ELEMENT Title (#PCDATA)>
<!ELEMENT Author (#PCDATA)>";
File.WriteAllText("Pubs.dtd", pubsDtd);

string target = "xml-stylesheet";
string data = "href=\"mystyle.css\" title=\"Compact\" type=\"text/css\"";

XDocument doc = new XDocument(
    new XDocumentType("Pubs", null, "Pubs.dtd", null),
    new XElement("Pubs",
        new XElement("Book",
            new XElement("Title", "Artifacts of Roman Civilization"),
            new XElement("Author", "Moreno, Jordao")
        ),
        new XElement("Book",
            new XElement("Title", "Midieval Tools and Implements"),
            new XElement("Author", "Gazit, Inbar")
        )
    ),
    new XComment("This is another comment.")
);
doc.Declaration = new XDeclaration("1.0", "utf-8", "true");
doc.Save("Pubs.xml");

// Validate Pubs.xml against Pubs.dtd.
XmlReaderSettings xrs = new XmlReaderSettings();
xrs.ProhibitDtd = false;
xrs.ValidationType = ValidationType.DTD;
xrs.ConformanceLevel = ConformanceLevel.Auto;
XmlReader xr = XmlReader.Create("Pubs.xml", xrs);
XDocument doc2 = XDocument.Load(xr);

XDocumentType dt = doc2.Document.DocumentType;
Console.WriteLine("SystemId:{0}", dt.SystemId);
Dim pubsDtd As String = _
    "<!ELEMENT Pubs (Book+)>" & Environment.NewLine & _
    "<!ELEMENT Book (Title, Author)>" & Environment.NewLine & _
    "<!ELEMENT Title (#PCDATA)>" & Environment.NewLine & _
    "<!ELEMENT Author (#PCDATA)>"
File.WriteAllText("Pubs.dtd", pubsDtd)

Dim target As String = "xml-stylesheet"
Dim data As String = "href='mystyle.css' title='Compact' type='text/css'"

Dim doc As XDocument = _
    <?xml version='1.0'?>
    <Pubs>
        <Book>
            <Title>Artifacts of Roman Civilization</Title>
            <Author>Moreno, Jordao</Author>
        </Book>
        <Book>
            <Title>Midieval Tools and Implements</Title>
            <Author>Gazit, Inbar</Author>
        </Book>
    </Pubs>
    <!--This is another comment.-->

doc _
.FirstNode _
.AddBeforeSelf(New XDocumentType("Pubs", Nothing, "Pubs.dtd", Nothing))

doc.Declaration = New XDeclaration("1.0", "utf-8", "true")
doc.Save("Pubs.xml")

' Validate Pubs.xml against Pubs.dtd.
Dim xrs As XmlReaderSettings = New XmlReaderSettings()
xrs.ProhibitDtd = False
xrs.ValidationType = ValidationType.DTD
xrs.ConformanceLevel = ConformanceLevel.Auto
Dim xr As XmlReader = XmlReader.Create("Pubs.xml", xrs)
Dim doc2 As XDocument = XDocument.Load(xr)

Dim dt As XDocumentType = doc2.Document.DocumentType
Console.WriteLine("SystemId:{0}", dt.SystemId)

この例を実行すると、次の出力が生成されます。

SystemId:Pubs.dtd

注釈

XML ドキュメントで外部プライベート DTD を使用する場合、このプロパティには外部 DTD のプライベート識別子が含まれます。

適用対象

こちらもご覧ください