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
Значение свойства
Значение, String содержащее системный идентификатор для определения типа документа (DTD).
Примеры
В следующем примере создается XML-документ, ссылающийся на внешний частный DTD. 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.