Deficiencias de DTD
No utiliza la sintaxis XML.
Las restricciones no se pueden aplicar a los datos de los caracteres.
Los modelos de valor de atributo son simplistas.
Los datos de caracteres y las expresiones regulares no se pueden combinar.
No acepta el espacio de nombres.
Modulación y reutilización insuficientes.
No hay posibilidad de evolución, extensión o herencia de los esquemas.
No hay un solo modelo de documentación.
No se puede indicar el contenido dependiente del contexto o el diseño de atributos.
El mecanismo de atributo ID es demasiado simple: no hay ningún tipo de ID.
Sin valor predeterminado para elementos (solo para atributos).
No hay expresiones de "cualquier elemento" o "ningún atributo".
No se puede decir cuántas apariencias están permitidas en un artículo.
DTD VS. XSD
Los documentos XML pueden hacer referencia a los esquemas DTD o XML.
<?xml version="1.0"?>
<aviso>
<para>Koldo</para>
<quien>Miren</quien>
<titulo>Recuerdo</titulo>
<cuerpo>No os olvidéis de mi!</cuerpo>
</aviso>
<!DOCTYPE aviso SYSTEM "aviso.dtd">
<!ELEMENT aviso(para, quien, titulo, cuerpo)>
<!ELEMENT para (#PCDATA)>
<!ELEMENT quien (#PCDATA)>
<!ELEMENT titulo (#PCDATA)>
<!ELEMENT cuerpo (#PCDATA)>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="aviso">
<xs:complexType>
<xs:sequence>
<xs:element name="para" type="xs:string" />
<xs:element name="quien" type="xs:string" />
<xs:element name="titulo" type="xs:string" />
<xs:element name="cuerpo" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
"Aviso" es un elemento complejo (tipo complejo) porque es un elemento principal de otros elementos.
"para", "quién", "cabeza", "cuerpo", "nota", y los simples (tipos simples), es decir, no son los padres de otros elementos.
Los esquemas XML describen la estructura de un documento XML. XML Schema es una alternativa a la DTD. Fue creado para responder a los límites de la DTD. Un esquema XML es un mecanismo para verificar la validez de un documento XML. DTD es otra opción para no usar y tiene algunas ventajas sobre ellos.
Es un documento XML; Por lo tanto, se puede verificar que esté bien formado.
Existe un amplio catálogo de tipos de datos detallado de antemano para los elementos y atributos que se pueden expandir o reducir para generar nuevos tipos.
Determine el detalle exacto de la cardinalidad de un artículo; Es decir, cuántas veces un documento puede aparecer en un documento XML.
Le permite combinar varios diccionarios (juegos de etiquetas), gracias a los nombres.
Bases y características de diseño:
Están escritos en XML. ¡Hay un esquema para esquema!
Una expresión mayor que la DTD.
Mecanismos estructurales y de reducción de datos.
Espacios de nombres.
Tipos de datos predefinidos.
Orientación de objetos en el sistema de tipo.
Modularidad: la posibilidad de integrar y canjear esquemas.
Cardenales Restricciones.
Se especifica el rango de atributo ID / IDREF o el dominio.
Para especificar atributos de caracteres y atributos aceptables, expresiones regulares.
Un esquema XML es un documento XML que debe cumplir algunas reglas:
Su elemento raíz se denomina <esquema>.
Su nombre debe ser: http://www.w3.org/2001/XMLSchema. Hay un prefijo no definido o común xs: o xsd:. En este libro, se usará xs:
Por lo tanto, este será el esquema XML más simple:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
simple.xsd
Un esquema está vinculado a un documento XML en el documento XML; Para ello, xmlns: xsi y xsi: noNamespaceSchemaLocation se insertan como el atributo del elemento raíz, si los esquemas no están vinculados a espacios de nombres. Si el esquema estaba vinculado a un lugar de nombre, se utilizaría el atributo xsi: schemaLocation.
Conseguir un XML con XSD
En la terminología del esquema, los documentos XML son instancias de ellos; En resumen, son objetos del molde (es decir, del esquema).
<?xml version="1.0" encoding="UTF-8"?>
<simple xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="simple.xsd">
Es dificil escribir un texto simple
</simple>
Por lo tanto, hay un nombre de lugar en los documentos XML, que tiene sentido cuando se trabaja con esquemas que están vinculados.
En el elemento raíz del documento XML en el ejemplo de ejemplo, se encontró la declaración de nombre http://www.w3.org/2001/XMLSchema-instance vinculada a este prefijo: xsi.
A continuación, y en el mismo elemento raíz, se declara un atributo de este nombre de lugar, xsi: noNamespaceSchemaLocation = "simple.xsd", que permite asociar el documento XML con el esquema simple.xsd.
También hay otros atributos de ese nombre de lugar, y ocasionalmente se usan en documentos XML (o instancias de esquema). Son los siguientes
xsi: schemaLocation: localización de un esquema vinculado a un nombre de lugar.
xsi: noNamespaceSchemaLocation: localización de un esquema que no tiene un marcador de posición.
Los diagramas espaciados pueden expresarse.
Se insertarán los componentes que permitirán un esquema XML para validar documentos XML. Los documentos XML se denominan instancia del esquema. Estos son los componentes esenciales:
xs:schema
xs:element
xs:attribute