XDocument.DocumentType Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera definicję typu dokumentu (DTD) dla tego dokumentu.
public:
property System::Xml::Linq::XDocumentType ^ DocumentType { System::Xml::Linq::XDocumentType ^ get(); };
public System.Xml.Linq.XDocumentType DocumentType { get; }
public System.Xml.Linq.XDocumentType? DocumentType { get; }
member this.DocumentType : System.Xml.Linq.XDocumentType
Public ReadOnly Property DocumentType As XDocumentType
Wartość właściwości
Element XDocumentType zawierający dtD dla tego dokumentu.
Przykłady
Poniższy przykład tworzy dokument zawierający element XDocumentType.
Visual Basic nie obsługuje typów dokumentów w literałach XML. Istnieje jednak możliwość utworzenia dokumentu zawierającego typ dokumentu przez utworzenie dokumentu przy użyciu literałów XML, a następnie utworzenie i dodanie węzła XDocumentType w odpowiednim miejscu w drzewie XML.
string internalSubset = @"<!ELEMENT Pubs (Book+)>
<!ELEMENT Book (Title, Author)>
<!ELEMENT Title (#PCDATA)>
<!ELEMENT Author (#PCDATA)>";
string target = "xml-stylesheet";
string data = "href='mystyle.css' title='Compact' type='text/css'";
XDocument doc = new XDocument(
new XComment("This is a comment."),
new XProcessingInstruction(target, data),
new XDocumentType("Pubs", null, null, internalSubset),
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");
Console.WriteLine(doc);
doc.Save("test.xml");
Dim internalSubset = _
"<!ELEMENT Pubs (Book+)>" & Environment.NewLine & _
"<!ELEMENT Book (Title, Author)>" & Environment.NewLine & _
"<!ELEMENT Title (#PCDATA)>" & Environment.NewLine & _
"<!ELEMENT Author (#PCDATA)>"
Dim doc As XDocument = _
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!--This is a comment.-->
<?xml-stylesheet href='mystyle.css' title='Compact' type='text/css'?>
<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.Nodes().Skip(1).First().AddAfterSelf(New XDocumentType("Pubs", Nothing, Nothing, internalSubset))
Console.WriteLine(doc)
Ten przykład generuje następujące wyniki:
<!--This is a comment.-->
<?xml-stylesheet href='mystyle.css' title='Compact' type='text/css'?>
<!DOCTYPE Pubs [<!ELEMENT Pubs (Book+)>
<!ELEMENT Book (Title, Author)>
<!ELEMENT Title (#PCDATA)>
<!ELEMENT Author (#PCDATA)>]>
<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.-->
Uwagi
LINQ to XML zapewnia ograniczoną obsługę jednostek DTD.
Drzewo XML można wypełnić dokumentem XML zawierającym dtD. Drzewo XML będzie następnie zawierać DocumentType węzeł. Po serializacji lub zapisaniu drzewa będzie również serializowany identyfikator DTD. LINQ to XML rozszerzy wszystkie jednostki w dtD. Podczas serializacji lub zapisywania drzewa XML odwołania do jednostki nie są zapisywane; Zamiast tego węzły są zapisywane przy użyciu odwołań do jednostek zastąpionych tekstem jednostki.
Jeśli dtD zawiera atrybuty domyślne, atrybuty są tworzone w drzewie XML jako zwykłe atrybuty.
Domyślnie LINQ to XML nie weryfikuje dokumentu na podstawie jego dtD. Aby zweryfikować dokument na podstawie dtD, utwórz element XmlReader , który zostanie zweryfikowany na podstawie dtD, a następnie utwórz drzewo XML na podstawie elementu XmlReader.