
/** 
' Forma de llamar a un DTD externo  
' Escribir la siguiente instrucción justo debajo de la declaración <?xml version="1.0" encoding="UTF-8"?> 
'  <!DOCTYPE biblioteca SYSTEM "IniSystem.Xml.dtd">  
' 
' Elementos  
'  Ejemplo :<!ELEMENT ArchivoINIXml (DublinCore, dc.description, Secciones)>
'  Declara que el elemento (ArchivoINIXml) debe contener los elementos  (DublinCore, dc.description, Secciones)>, y en ese orden específico. 
'  El Carácter '*' indica (cero o más repeticiones)   
'  la palabra clave (EMPTY) se utiliza para declarar elementos que NO pueden contener contenido interno.  
' 
' Atributos  
'  (#PCDATA): Estos elementos están definidos para contener texto sin formato (Parsed Character Data),
'   lo que significa que pueden contener cualquier texto.  
'  (CDATA) permite cualquier tipo de datos de caracteres, incluyendo 
'  texto, números, símbolos y caracteres especiales.
'   No se aplican restricciones especiales a los valores del atributo.  
' 
' Valores de los atributos  
'  (#REQUIRED). El atributo es de carácter obligatorio.  
'  (#IMPLIED). El atributo es opcional.  
'  El atributo (ID) debe ser un identificador único en todo el documento.  
'  Además, el valor de un atributo de tipo ID debe cumplir con las reglas de los NMTOKENs,  
'  que son cadenas de caracteres que solo pueden contener  
'  letras minúsculas, letras mayúsculas, números, puntos(.), 
'  guiones medios (-), guiones bajos (_), o el carácter dos puntos (:). 
'  Ten en cuenta también que un valor de ID debe comenzar con una letra. 
'  El atributo IDREF hace referencia al valor de un atributo ID existente en otro elemento. 
' 
' 
' ---------------------------------------------------------------------- 
'  La DTD (en fichero independiente
' ----------------------------------------------------------------------
'    <!-- Declara que el elemento (ArchivoINIXml) debe contener los elementos
'         (DublinCore, dc.description, Secciones), y en ese orden específico.-->
'    <!ELEMENT ArchivoINIXml (DublinCore, dc.description, Secciones)>
' 
'    <!-- 
'    El elemento(DublinCore) puede estar  ('*' cero o más repeticiones) 
'    debe contener el elemento (link) que puede estar  ('*' cero o más repeticiones) 
'    el elemento(link) debe contener el atributo (rel) y el atributo (href) 
'    Modificadores:
'    (EMPTY) El elementos NO puede tener contenido interno. 
'    (CDATA) El atributo permite cualquier tipo de datos de caracteres 
'    (#IMPLIED). El atributo es opcional.
'    -->
'    <!ELEMENT DublinCore (link)*>
'    <!ELEMENT link EMPTY>
'    <!ATTLIST link rel CDATA #IMPLIED>
'    <!ATTLIST link href CDATA #IMPLIED>
' 
'    <!-- Declara que el elemento (dc.description) debe contener los elementos
'         (dc.title, dc.creator, dc.format, dc.language, dcterms.created, dcterms.modified), y en ese orden específico.-->
'    <!ELEMENT dc.description (dc.title, dc.creator, dc.format, dc.language, dcterms.created, dcterms.modified) >
' 
'    <!-- El elemento (dc.title) tiene el modificador (#PCDATA):
'         puede contener texto sin formato (Parsed Character Data), lo que significa que pueden contener cualquier texto.-->
'    
' 
'    <!ELEMENT dc.title (#PCDATA)>
'    <!-- El elemento (dc.creator) esta definido como (#PCDATA): lo que significa que pueden contener cualquier texto. 
'         Tiene un atributo (scheme) con los modificadores 
'         (CDATA) El atributo permite cualquier tipo de datos de caracteres 
'         (#IMPLIED). El atributo es opcional.
'     -->
'    <!ELEMENT dc.creator (#PCDATA)>
'    <!ATTLIST dc.creator scheme CDATA #IMPLIED>
'    <!-- Las mismas consideraciones que para el elemento  ((dc.creator)) -->
'    <!ELEMENT dc.format (#PCDATA)>
'    <!ATTLIST dc.format scheme CDATA #IMPLIED>
'    <!ELEMENT dc.language (#PCDATA)>
'    <!ATTLIST dc.language scheme CDATA #IMPLIED>
'    <!ELEMENT dcterms.created (#PCDATA)>
'    <!ATTLIST dcterms.created scheme CDATA #IMPLIED>
'    <!ELEMENT dcterms.modified (#PCDATA)>
'    <!ATTLIST dcterms.modified scheme CDATA #IMPLIED>
' 
'    <!-- 
'    El elemento(Secciones) puede estar  ('*' cero o más repeticiones) 
'    debe contener el elemento (Sección) que puede estar  ('*' cero o más repeticiones) 
'    El elemento(Sección), tiene el atributo (IdSeccion) que identifica de quien son los datos
'    El atributo(IdSeccion) tiene los modificadores 
'    (#REQUIRED). El atributo es de carácter obligatorio.  
'    (ID) debe ser un identificador único en todo el documento
'    El elemento(Sección) debe contener el elemento (Clave)
'    El elemento(Clave) Tiene un atributo llamado (Key)
'    que identifica el tipo de dato que se guarda
'    -->
'    <!ELEMENT Secciones (Sección)*>
'    <!ELEMENT Sección (Clave)*>
'    <!ATTLIST Sección IdSeccion ID #REQUIRED>
'    <!ELEMENT Clave (#PCDATA)>
'    <!ATTLIST Clave Key CDATA #REQUIRED>
'
'
'/Eof 
*/ 

