Convierte DTD [Document Type Definition - Definición de Tipo de Documento] en formato de instancia XML [eXtensible Markup Language - Lenguaje de Marcado eXtensible]. Específicamente, convierte las definiciones de entidades y elementos del DTD [Document Type Declaration - Declaración de Tipo de Documento] a su representación en un archivo de instancia XML. Esto facilita trabajar con los datos de la estructura DTD como si fueran parte de un archivo XML estándar. La instancia XML puede tener un formato específico de DTD o un formato RELAX NG [lenguaje de esquema para XML].
Por ejemplo, un DTD puede tener esta estructura:
<!ELEMENT libro (titulo, autor, fecha)>
<!ELEMENT titulo (#PCDATA)>
<!ELEMENT autor (#PCDATA)>
<!ELEMENT fecha (#PCDATA)>
Esto define que un elemento <libro> debe contener obligatoriamente los elementos <titulo>, <autor> y <fecha>.
$ dtdinst archivo.dtd
Un ejemplo práctico, supongamos que se tiene el siguiente archivo libro.dtd:
<!ELEMENT biblioteca (libro+)>
<!ELEMENT libro (titulo, autor, fecha)>
<!ELEMENT titulo (#PCDATA)>
<!ELEMENT autor (#PCDATA)>
<!ELEMENT fecha (#PCDATA)>
<!ATTLIST libro id ID #REQUIRED>
$ dtdinst libro.dtd
El archivo xml resultante podría verse así:
<dtd>
<element name="biblioteca">
<content type="element" model="libro+"/>
</element>
<element name="libro">
<content type="element" model="(titulo, autor, fecha)"/>
<attribute name="id" type="ID" use="required"/>
</element>
<element name="titulo">
<content type="#PCDATA"/>
</element>
<element name="autor">
<content type="#PCDATA"/>
</element>
<element name="fecha">
<content type="#PCDATA"/>
</element>
</dtd>