XDocument.DocumentType Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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 .