XDocument.DocumentType Propriedade

Definição

Obtém a DTD (Definição de Tipo de Documento) desse documento.Gets the Document Type Definition (DTD) for this document.

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

Valor da propriedade

XDocumentType

Um XDocumentType que contém a DTD deste documento.A XDocumentType that contains the DTD for this document.

Exemplos

O exemplo a seguir cria um documento que contém um XDocumentType .The following example creates a document that contains an XDocumentType.

Visual Basic não oferece suporte a tipos de documento em literais XML.Visual Basic does not support document types within XML literals. No entanto, é possível criar um documento que contenha um tipo de documento primeiro criando o documento usando literais XML e, em seguida, criando e adicionando um XDocumentType nó no local apropriado na árvore XML.However, it is possible to create a document that contains a document type by first creating the document using XML literals, and then creating and adding an XDocumentType node in the appropriate place in the XML tree.

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)  

Esse exemplo gera a saída a seguir:This example produces the following output:

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

Comentários

LINQ to XML fornece suporte limitado para DTDs.LINQ to XML provides limited support for DTDs.

Você pode preencher uma árvore XML com um documento XML que contém um DTD.You can populate an XML tree with an XML document that contains a DTD. Em seguida, a árvore XML conterá um DocumentType nó.The XML tree will then contain a DocumentType node. Quando você serializa ou salva a árvore, o DTD também será serializado.When you serialize or save the tree, the DTD will also be serialized. LINQ to XML expandirá todas as entidades no DTD.LINQ to XML will expand any entities in the DTD. Quando você serializa ou salva a árvore XML, as referências de entidade não são salvas; em vez disso, os nós são salvos com as referências de entidade substituídas pelo texto da entidade.When you serialize or save the XML tree, the entity references are not saved; instead, the nodes are saved with the entity references replaced by the text of the entity.

Se o DTD contiver atributos padrão, os atributos serão criados na árvore XML como atributos comuns.If the DTD contains default attributes, the attributes are created in the XML tree as ordinary attributes.

Por padrão, LINQ to XML não valida um documento com base em seu DTD.By default, LINQ to XML does not validate a document based on its DTD. Para validar um documento com base em um DTD, crie um XmlReader que será validado com base em um DTD e, em seguida, crie uma árvore XML a partir do XmlReader .To validate a document based on a DTD, create an XmlReader that will validate based on a DTD, and then create an XML tree from the XmlReader.

Aplica-se a

Confira também