example entre ejemplo diferencia xml xsd

entre - xml schema ejemplo



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

SIMPLE EJEMPLO DE XML:

<school> <firstname>John</firstname> <lastname>Smith</lastname> </school>

XSD DE ARRIBA XML:

<xs:element name="school"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>

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.

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



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.


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.


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.



Toma un ejemplo

<root> <parent> <child_one>Y</child_one> <child_two>12</child_two> </parent> </root>

y diseña un xsd para eso:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="root"> <xs:complexType> <xs:sequence> <xs:element name="parent"> <xs:complexType> <xs:sequence> <xs:element name="child_one" type="xs:string" /> <xs:element name="child_two" type="xs:int" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>


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 <child_two> aparece en otro nodo <parent> , 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 <xsd:any> 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 <month> , 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 ...