¿Cuál es la diferencia entre XML y XSD?

¿Cuál es la diferencia entre Extensible Markup Language (XML) y XML Schema (XSD)?

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.

Toma un ejemplo

  Y 12   

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 el archivo XSD debe definirse con un solo tipo de datos. [en el ejemplo anterior, para aparece en otro nodo , no se puede definir el tipo de datos que no sea int.
3) No 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 permite, pero tiene sus propias reglas. Permanecer lo que lleva al error de validación. He intentado por un enfoque similar, y ciertamente no fue exitoso, aquí está el Q & A

lo que es posible con XSD:
1) Puede probar la jerarquía correcta de los nodos XML. [xsd define qué hijo debe estar bajo qué padre, etc., que se contará como error, en el ejemplo anterior, child_two no puede ser el hijo inmediato de root, pero es hijo de la etiqueta “principal” 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 , los datos posibles pueden ser uno de los 12 meses … por lo que debe definir todos los 12 meses en un nuevo tipo de datos escribiendo todos los nombres de 12 meses como valores de enumeración … la validación muestra un error si el XML de entrada contiene cualquier otro valor que estos 12 valores ..]
4) Puede poner la restricción sobre la ocurrencia de los elementos, usando minOccurs y maxOccurs, los valores predeterminados son 1 y 1.

.. y muchos más …

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 del software y del hardware.
Mejora las siguientes cosas.
-Compartir datos.
-Plataforma independiente.
-Aumentar la disponibilidad de datos.

Diferencias

  1. XSD está basado y escrito en XML.

  2. XSD define elementos y estructuras que pueden aparecer en el documento, mientras que XML no.

  3. XSD garantiza que los datos se interpreten correctamente, mientras que XML no.

  4. Un documento XSD se valida como XML, pero lo contrario puede no ser siempre cierto.

  5. XSD es mejor para detectar errores que XML.

Un XSD define los elementos que se pueden usar en los documentos, en relación con los datos reales con los que se codificará.
por ejemplo:
Una fecha que se expresa como 1/12/2010 puede significar 12 de enero o 1 de diciembre. Al declarar un tipo de datos de fecha en un documento XSD, se garantiza que sigue el formato dictado por XSD.

XML versus XSD

XML define la syntax de los elementos y atributos para estructurar datos en un documento bien formado .

XSD (también conocido como Esquema XML) , como DTD antes, potencia la e X tensabilidad en XML al permitir al usuario definir el vocabulario y la gramática de los elementos y atributos en un documento XML válido .

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 tanto, especifica cuáles son los posibles campos y qué tamaño van a tener.

Un archivo XML es una instancia de XSD ya que usa las reglas definidas en el XSD.

SIMPLE EJEMPLO DE XML:

  John Smith  

XSD DE ARRIBA XML:

         

Aquí:

tipo complejo : denota que contiene otros elementos. tipo simple : denota que no contienen otros elementos.

tipo: cadena, decimal, entero, booleano, fecha, hora,

En palabras simples, xsd es otra forma de representar y validar datos XML con el tipo específico. Con la ayuda de atributos adicionales, podemos realizar múltiples operaciones. realizar cualquier tarea en xsd es más simple que xml.

XML tiene una aplicación mucho más amplia que f.ex. HTML. No tiene una “aplicación” intrínseca o predeterminada. Entonces, aunque a usted realmente no le importe que las páginas web también se rijan por lo que está permitido, por parte del autor, probablemente quiera definir con precisión lo que un documento XML puede y no 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 puede “enchufarse” a herramientas de procesamiento de texto como PHP. Por lo tanto, no solo puede manipular los datos en sí, sino también cambiar y documentar fácilmente la estructura, e incluso autogenerar los frontales.

Visto así, XSD es el “pegamento” o “middleware” entre los datos (XML) y las herramientas de procesamiento de datos.