XDocument.DocumentType Eigenschaft

Definition

Ruft die Dokumenttypdefinition (DTD) für dieses Dokument ab.

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

Eigenschaftswert

XDocumentType

Ein XDocumentType, der die DTD für dieses Dokument enthält.

Beispiele

Im folgenden Beispiel wird ein Dokument erstellt, das ein XDocumentType.

Visual Basic unterstützt keine Dokumenttypen innerhalb von XML-Literalen. 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.

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 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 XML bietet eingeschränkte Unterstützung für DTDs.

Sie können eine XML-Struktur mit einem XML-Dokument füllen, das eine DTD enthält. Die XML-Struktur enthält dann einen DocumentType Knoten. Wenn Sie die Struktur serialisieren oder speichern, wird die DTD auch serialisiert. LINQ to XML erweitern alle Entitäten in der DTD. Wenn Sie die XML-Struktur serialisieren oder speichern, werden die Entitätsverweise nicht gespeichert; Stattdessen werden die Knoten mit den Entitätsverweise gespeichert, die durch den Text der Entität ersetzt werden.

Wenn die DTD Standardattribute enthält, werden die Attribute in der XML-Struktur als normale Attribute erstellt.

Standardmäßig überprüft LINQ to XML ein Dokument basierend auf dessen DTD nicht. Um ein Dokument basierend auf einer DTD zu überprüfen, erstellen Sie eine XmlReader , die basierend auf einer DTD überprüft wird, und erstellen Sie dann eine XML-Struktur aus der XmlReader.

Gilt für

Siehe auch