XDocument.DocumentType Vlastnost

Definice

Získá definici typu dokumentu (DTD) pro tento dokument.

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

Hodnota vlastnosti

XDocumentType

A XDocumentType obsahující DTD pro tento dokument.

Příklady

Následující příklad vytvoří dokument, který obsahuje XDocumentType.

Visual Basic nepodporuje typy dokumentů v literálech XML. Dokument, který obsahuje typ dokumentu, je však možné vytvořit nejprve vytvořením dokumentu pomocí literálů XML a následným vytvořením a přidáním XDocumentType uzlu na příslušném místě ve stromu 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)  

Tento příklad vytvoří následující výstup:

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

Poznámky

LINQ to XML poskytuje omezenou podporu disků DTD.

Strom XML můžete naplnit dokumentem XML, který obsahuje DTD. Strom XML pak bude obsahovat DocumentType uzel. Při serializaci nebo uložení stromu bude DTD také serializován. LINQ to XML rozbalí všechny entity v DTD. Při serializaci nebo uložení stromu XML se odkazy na entity neuloží; místo toho se uzly ukládají s odkazy na entity nahrazené textem entity.

Pokud DTD obsahuje výchozí atributy, atributy se ve stromu XML vytvoří jako běžné atributy.

Ve výchozím nastavení LINQ to XML neověřuje dokument na základě jeho DTD. Pokud chcete ověřit dokument založený na DTD, vytvořte XmlReader ten, který se ověří na základě DTD, a pak ze stromu XmlReaderXML .

Platí pro

Viz také