Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
XDocument.DocumentType-Eigenschaft
Ruft die Dokumenttypdefinition (DTD) für dieses Dokument ab.
Assembly: System.Xml.Linq (in System.Xml.Linq.dll)
Eigenschaftswert
Typ: System.Xml.Linq.XDocumentTypeEin XDocumentType, der die DTD für dieses Dokument enthält.
LINQ to XML bietet beschränkte Unterstützung für DTDs.
Sie können eine XML-Struktur mit einem XML-Dokument auffü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 ebenfalls serialisiert. LINQ to XML erweitert 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 durch den Text der Entität ersetzten Entitätsverweisen gespeichert.
Wenn die DTD Standardattribute enthält, werden die Attribute in der XML-Struktur als gewöhnliche Attribute erstellt.
Standardmäßig werden Dokumente nicht von LINQ to XML anhand ihrer DTD validiert. Um ein Dokument anhand einer DTD zu validieren, erstellen Sie einen XmlReader, der eine Validierung anhand einer DTD durchführt, und erstellen Sie dann eine XML-Struktur aus dem XmlReader.
Im folgenden Beispiel wird ein Dokument erstellt, das einen XDocumentType enthält.
Visual Basic unterstützt keine Dokumenttypen in XML-Literalen. Es kann jedoch ein Dokument erstellt werden, das einen Dokumenttyp enthält, indem zunächst das Dokument mithilfe von XML-Literalen erstellt wird und dann ein XDocumentType-Knoten erstellt und an der entsprechenden Position in der XML-Struktur 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");
Mit diesem Beispiel wird die folgende Ausgabe erzeugt:
<!--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.-->
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.