XDocument.DocumentType XDocument.DocumentType XDocument.DocumentType XDocument.DocumentType Property

Definition

Ruft die Dokumenttypdefinition (DTD) für dieses Dokument ab.Gets the Document Type Definition (DTD) for this document.

public:
 property System::Xml::Linq::XDocumentType ^ DocumentType { System::Xml::Linq::XDocumentType ^ get(); };
public System.Xml.Linq.XDocumentType DocumentType { get; }
member this.DocumentType : System.Xml.Linq.XDocumentType
Public ReadOnly Property DocumentType As XDocumentType

Eigenschaftswert

Ein XDocumentType, der die DTD für dieses Dokument enthält.A XDocumentType that contains the DTD for this document.

Beispiele

Im folgenden Beispiel wird ein Dokument erstellt, das XDocumentTypeein enthält.The following example creates a document that contains an XDocumentType.

Visual Basic unterstützt keine Dokumenttypen innerhalb von XML-Literalen.Visual Basic does not support document types within XML literals. Es ist jedoch möglich, ein Dokument zu erstellen, das einen Dokumenttyp enthält, indem zuerst das Dokument mithilfe von XML-Literalen erstellt und dann ein XDocumentType -Knoten an der entsprechenden Stelle in der XML-Struktur erstellt und hinzugefügt wird.However, it is possible to create a document that contains a document type by first creating the document using XML literals, and then creating and adding an XDocumentType node in the appropriate place in the XML tree.

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)  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

<!--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.-->  

Hinweise

LINQ to XMLLINQ to XMLbietet eingeschränkte Unterstützung für DTDs.provides limited support for DTDs.

Sie können eine XML-Struktur mit einem XML-Dokument auffüllen, das eine DTD enthält.You can populate an XML tree with an XML document that contains a DTD. Die XML-Struktur enthält dann einen DocumentType -Knoten.The XML tree will then contain a DocumentType node. Wenn Sie die Struktur Serialisieren oder speichern, wird die DTD ebenfalls serialisiert.When you serialize or save the tree, the DTD will also be serialized. LINQ to XMLLINQ to XMLerweitert alle Entitäten in der DTD.will expand any entities in the DTD. Wenn Sie die XML-Struktur Serialisieren oder speichern, werden die Entitäts Verweise nicht gespeichert. Stattdessen werden die Knoten mit den Entitäts verweisen gespeichert, die durch den Text der Entität ersetzt werden.When you serialize or save the XML tree, the entity references are not saved; instead, the nodes are saved with the entity references replaced by the text of the entity.

Wenn die DTD Standard Attribute enthält, werden die Attribute in der XML-Struktur als gewöhnliche Attribute erstellt.If the DTD contains default attributes, the attributes are created in the XML tree as ordinary attributes.

In der Standard LINQ to XMLLINQ to XML Einstellung überprüft ein Dokument nicht anhand seiner DTD.By default, LINQ to XMLLINQ to XML does not validate a document based on its DTD. Zum Validieren eines Dokuments, das auf einer DTD basiert XmlReader , erstellen Sie ein-Element, das anhand einer DTD validiert wird, und erstellen XmlReaderSie dann eine XML-Struktur aus dem.To validate a document based on a DTD, create an XmlReader that will validate based on a DTD, and then create an XML tree from the XmlReader.

Gilt für:

Siehe auch