¿Cuál es la diferencia entre el lenguaje de marcado extensible (XML) y el esquema XML (XSD)?
111
En realidad, el XSD es XML en sí mismo. Su propósito es validar la estructura de otro documento XML. El XSD no es obligatorio para ningún XML, pero asegura que el XML podría usarse para algunos propósitos particulares. El XML solo contiene datos en formato y estructura adecuados.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="QuoteRequestID" type="xs:unsignedLong" minOccurs="0" /> </xs:schema>
pero terminé obteniendo el error:Error!!! The 'minOccurs' attribute cannot be present.
Toma un ejemplo
y diseña un xsd para eso:
Lo que no es posible con XSD: me gustaría escribirlo primero ya que la lista es muy pequeña
1) No puede validar un nodo / atributo usando el valor de otro nodo / atributo.
2) Esta es una restricción: un elemento definido en un archivo XSD debe definirse con un solo tipo de datos. [en el ejemplo anterior, para
<child_two>
aparecer en otro<parent>
nodo, el tipo de datos no se puede definir más que int.3) No se puede ignorar la validación de elementos y atributos, es decir, si un elemento / atributo aparece en XML, debe estar bien definido en el XSD correspondiente. Aunque el uso de lo
<xsd:any>
permite, tiene sus propias reglas. Mantener lo que conduce al error de validación. Intenté un enfoque similar, y ciertamente no tuve éxito, aquí están las preguntas y respuestaslo que es posible con XSD:
1) Puede probar la jerarquía adecuada de los nodos XML. [xsd define qué hijo debe pertenecer a qué padre, etc., permaneciendo cuál se contará como error, en el ejemplo anterior, child_two no puede ser el hijo inmediato de root, pero es el hijo de la etiqueta "parent", que a su vez es un hijo del nodo "raíz", hay una jerarquía ..]
2) Puede definir el tipo de datos de los valores de los nodos. [en el ejemplo anterior, child_two no puede tener ningún otro dato que el número]
3) También puede definir tipos de datos personalizados, [ejemplo, para el nodo
<month>
, los datos posibles pueden ser uno de los 12 meses ... así que debe definir todos los 12 meses en un nuevo tipo de datos escribiendo todos los nombres de los 12 meses como valores de enumeración.4) Puede poner la restricción en la ocurrencia de los elementos, usando minOccurs y maxOccurs, los valores predeterminados son 1 y 1.
.. y muchos más ...
fuente
<root> <A>A</A> <B/> <C/> </root>
y si Node lo<A>
es<A>B</A>
, entonces haga<B>
obligatorio, si<A>C</A>
luego haga<C>
obligatorio.XSD:
XSD (Definición de esquema XML) especifica cómo describir formalmente los elementos en un documento de Lenguaje de marcado extensible (XML).
Xml:
XML fue diseñado para describir datos . Es independiente tanto del software como del hardware.
Mejora las siguientes cosas.
-Compartir datos.
-Plataforma independiente.
-Aumentar la disponibilidad de Datos.
Diferencias:
XSD está basado y escrito en XML.
XSD define elementos y estructuras que pueden aparecer en el documento, mientras que XML no.
XSD garantiza que los datos se interpreten correctamente, mientras que XML no.
Un documento XSD se valida como XML, pero es posible que lo contrario no siempre sea cierto.
XSD es mejor para detectar errores que XML.
Un XSD define elementos que se pueden utilizar en los documentos, relacionados con los datos reales con los que se codificará.
por ejemplo:
una fecha expresada como 1/12/2010 puede significar el 12 de enero o el 1 de diciembre. La declaración de un tipo de datos de fecha en un documento XSD garantiza que siga el formato dictado por XSD.
fuente
XML frente a XSD
XML define la sintaxis de elementos y atributos para estructurar datos en undocumento bien formado .
XSD (también conocido como XML Schema) , como antes DTD, potencia latensibilidade X en XML al permitir al usuario definir el vocabulario y la gramática de los elementos y atributos en un documento XML válido .
fuente
EJEMPLO XML SIMPLE:
XSD DEL XML ARRIBA (Explicado):
Aquí:
xs: element : define un elemento.
xs: sequence : indica que los elementos secundarios solo aparecen en el orden mencionado.
xs: complexType : indica que contiene otros elementos.
xs: simpleType : indica que no contienen otros elementos.
tipo: cadena, decimal, entero, booleano, fecha, hora,
Con la ayuda de atributos adicionales, podemos realizar múltiples operaciones.
Realizar cualquier tarea en xsd es más simple que xml.
fuente
Básicamente, un archivo XSD define cómo se verá el archivo XML. Es un archivo de esquema que define la estructura del archivo XML. Por lo que especifica cuáles son los campos posibles y qué tamaño van a tener.
Un archivo XML es una instancia de XSD, ya que utiliza las reglas definidas en XSD.
fuente
XML tiene una aplicación mucho más amplia que f.ex. HTML. No tiene una "aplicación" intrínseca o predeterminada. Por lo tanto, si bien es posible que no le importe que las páginas web también se rijan por lo que está permitido, desde el lado del autor, probablemente desee definir con precisión lo que un documento XML puede y no puede contener.
Es como diseñar una base de datos.
Lo que pasa con las tecnologías XML es que son de naturaleza textual. Con XSD, significa que tiene un marco de definición de estructura de datos que se puede "conectar" a herramientas de procesamiento de texto como PHP. Por lo tanto, no solo puede manipular los datos en sí, sino que también puede cambiar y documentar la estructura con mucha facilidad, e incluso generar automáticamente interfaces.
Visto así, XSD es el "pegamento" o "middleware" entre los datos (XML) y las herramientas de procesamiento de datos.
fuente