XDocument.DocumentType Eigenschap

Definitie

Hiermee haalt u de documenttypedefinitie (DTD) voor dit document op.

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

Waarde van eigenschap

Een XDocumentType met de DTD voor dit document.

Voorbeelden

In het volgende voorbeeld wordt een document gemaakt dat een XDocumentType.

Visual Basic biedt geen ondersteuning voor documenttypen binnen letterlijke XML-tekens. Het is echter mogelijk om een document te maken dat een documenttype bevat door eerst het document te maken met XML-letterlijke waarden en vervolgens een XDocumentType knooppunt te maken en toe te voegen op de juiste plaats in de XML-structuur.

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)

In dit voorbeeld wordt de volgende uitvoer gegenereerd:

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

Opmerkingen

LINQ naar XML biedt beperkte ondersteuning voor DTD's.

U kunt een XML-structuur vullen met een XML-document dat een DTD bevat. De XML-structuur bevat vervolgens een DocumentType knooppunt. Wanneer u de structuur serialiseert of opslaat, wordt de DTD ook geserialiseerd. LINQ naar XML breidt alle entiteiten in de DTD uit. Wanneer u de XML-structuur serialiseert of opslaat, worden de entiteitsverwijzingen niet opgeslagen; In plaats daarvan worden de knooppunten opgeslagen door de entiteitsverwijzingen vervangen door de tekst van de entiteit.

Als de DTD standaardkenmerken bevat, worden de kenmerken in de XML-structuur gemaakt als gewone kenmerken.

LINQ naar XML valideert standaard geen document op basis van de DTD. Als u een document wilt valideren op basis van een DTD, maakt u een XmlReader document dat wordt gevalideerd op basis van een DTD en maakt u vervolgens een XML-structuur op basis van de XmlReader.

Van toepassing op

Zie ook