Average rating:

En este artículo vamos a analizar el modo en que uno puede crear un esquema de XML. Con el fin de comprender XML (eXtensible Markup Language) Esquemas vamos a revisar los fundamentos de XML en esta introducción. Usted se espera que tengan una comprensión básica de XML para este cómo-a.

XML- El lenguaje de marcas extensible es un texto basado en la cruz-plataforma es un lenguaje que le permite almacenar los datos (como las direcciones en una libreta de direcciones) de una manera estructurada. El documento XML se espera que tenga la sintaxis correcta. Por lo tanto, al hacer los documentos XML que debe estar bien formado. Un bien formado documento tiene el texto siguiente:

  • Cerrado etiquetas (<hello> </ hola> o <hi />)
  • Un elemento del atributo debe ser encerrado entre comillas dobles (<candy price="0.50">)
  • XML es sensible a mayúsculas y minúsculas. En otras palabras, el comienzo y el final etiqueta debe utilizar el mismo caso

Un ejemplo muy simple de un documento XML que figura a continuación es para una tienda de golosinas menú.

<? xml version = "1.0" encoding = "UTF-8">
<candystore>
<candy>
<productName company="XYZ"> lollipops </ nombre>
<id> 634847 </ id>
<price> 0.50 </ precio>
</ caramelos>
<candy>
<productName company="ABC"> Cecas </ nombre>
<id> 634812 </ id>
<price> 0.75 </ precio>
</ caramelos>
</ candystore>

La primera declaración es la instrucción de procesamiento. Se le dice al analizador que estamos trabajando con una particular versión de XML. El resto del documento se compone de nuestros elementos y etiquetas. En el ejemplo anterior el elemento "nombre" tiene un atributo de la "empresa". Una excelente manera de recordar es un atributo de pensar en ello como una propiedad que puede tener algo. Un dulce tiene un nombre. El nombre está asociado con una empresa particular.

En nuestro cómo-a que vamos a tomar el ejemplo anterior y crear un esquema de XML para el mismo que definirá las normas para saber cómo nuestro elemento de contenido, o datos en otras palabras, se debe dar. (Por ejemplo, ¿qué formato se espera para nuestro ID? ¿Puede tener caracteres alfabéticos?)

Esquema de XML - un esquema XML de metadatos declara que asigna un tipo particular, ya sea simple o compleja, a los elementos y sus atributos en un documento XML.

Step 1:

Echemos un vistazo de nuevo a nuestro ejemplo de la tienda de golosinas.

<? xml version = "1.0" encoding = "UTF-8">
<candystore>
<candy>
<productName company="XYZ"> lollipops </ nombre>
<id> 634847 </ id>
<price> 0.50 </ precio>
</ caramelos>
<candy>
<productName company="ABC"> Cecas </ ProductName>
<id> 634812 </ id>
<price> 0.75 </ precio>
</ caramelos>
</ candystore>

Nuestro candystore elemento tiene dos caramelos sub-elementos. Cada elemento tiene dulces los subelementos de nombre, id, y el precio. También tiene un atributo llamado empresa. Cuando la construcción de reglas de sintaxis que debe definir las limitaciones para el formato de nuestros datos. Estas limitaciones pueden ser sobre la base de los datos de cómo va a ser utilizada. Si, por ejemplo, nuestra dulce de la ID debe caber en un producto de factura dentro de los 6 personajes que luego ayudará a determinar nuestras limitaciones. Hágase algunas preguntas sobre sus datos:

1. ¿Tiene los datos tienen que ser sólo cifras o letras alfabético?
2. ¿Tiene los datos tienen que ser una cierta duración? O un mínimo o máximo de duración, más concretamente,?
3. ¿Tiene los datos tienen que tener un atributo particular o subelemento especificado? ¿O son opcionales?

Ahora que tenemos algunas ideas sobre qué cuestiones podemos preguntarnos, podemos avanzar. Vamos a construir un conjunto de normas antes de empezar a crear nuestro código de esquema XML.

1. El nombre de los dulces es necesario.
2. El nombre de la empresa puede haber más de 30 caracteres de longitud. Es opcional.
3. La ID debe estar dígitos y todos deben ser exactamente 6 dígitos de largo. Es necesario.
4. El precio es obligatorio.

Step 2:

Con nuestra lista de las normas ahora podemos crear nuestro esquema. En primer lugar tenemos que presentar una declaración de nuestros nombres llamado xsd. Podríamos utilizar cualquier nombre que queremos como candyxsd, pero xsd es corto y fácil de entender. El término xsd será utilizado como un prefijo a lo largo de nuestro esquema para especificar nuestros nombres.

<? xml version = "1.0" encoding = "UTF-8">
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

Dentro de su esquema es necesario definir cada elemento como un tipo particular. Existen 2 tipos que puede utilizar:

Simple:
<xsd:element name=" nameofelement "type=" nameofbuilt-insimpletype ">

o

<xsd:simpleType name=" nameofSimpleType ">
derivados de tipo de limitaciones ...
</ xsd: simpleType>

Complejo:
<xsd:complexType name=" nameofComplexType ">
<xsd:sequence>
elementos ...
</ xsd: secuencia>
</ xsd: complexType>

La diferencia entre los 2 es bastante simple. Un tipo simple no puede tener atributos de elemento o contenido.

En el paso 3 vamos a lo largo de los construidos en los tipos simples.

Step 3:

Ahora que está familiarizado con los tipos de elemento, veamos un par de la tecnología en los tipos.

  • fecha
  • cadena
  • decimal
  • tiempo
  • entero, largo, int, positiveInteger, dobles, flotador

Puedes ver la lista completa de los incorporados en los tipos simples.

Con un built-in tipo podemos crear un tipo simple como el precio o la ID que no tiene un atributo o un subelemento.

<xsd:element name="price" type="xsd:decimal" />
<xsd:element name="id" type="positiveInteger"/>

Step 4:

La imagen ilustra a la estructura de nuestro XML Schema. Tenemos que construir su complejo de los tipos y añadir las limitaciones en el tamaño de nuestro precio y el id. Para asegurarse de que nuestro nombre de usuario y la empresa tiene un atributo particular formato que vamos a crear 2 tipos de simple. Vamos a asignar ID el tipo de idType. El atributo empresa se le asignará el tipo de companyType.

<xsd:simpleType name="idType">
<xsd:restriction base="xsd:positiveInteger">
<xsd:totalDigits value="6"/>
</ xsd: restricción>
</ xsd: simpleType>

<xsd:simpleType name="companyType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="30"/>
</ xsd: restricción>
</ xsd: simpleType>

La etiqueta de restricción en el tipo de elemento simple que nos permite declarar la información relativa a nuestro sencillo del tipo de faceta. Una faceta limita un tipo simple. Podemos afirmar cosas como la forma en que el total de dígitos de un valor numérico a la longitud mínima para nuestra cadena de valor. Asegúrese de hacer referencia a la incorporada en los tipos simples facetasde la lista. La base atributo especifica qué tipo de restricciones pueden aplicarse. En otras palabras, no sería válido utilizar maxLength con todos los valores numéricos como decimal o doble. La faceta totalDigits es para eso.

Step 5:

Ahora usted necesita para construir el complejo de los tipos que contendrá todos los demás. Si de recordar antes, su complejo puede tener tipos de sub-elementos y atributos. Nuestro candystore elemento tiene el caramelo sub-elemento. El dulce elemento tiene tres sub-elementos (ProductName, el precio, y id). El ProductName elemento tiene un atributo, por lo que debe ser construido para dar cabida a ella y su valor.

Nuestra tienda de golosinas de todo elemento contiene:

<xsd:element name="candystore" type="candystoreType"/>
<xsd:complexType name="candystoreType">
<xsd:sequence>
<xsd:element name="candy" type="candyType" minOccurs="0" maxOccurs="unbounded"/>
</ xsd: secuencia>
</ xsd: complexType>

En primer lugar, declarar candystore un elemento que es un complexType. Si ustedes recordarán nuestros dulces elemento se puede repetir tantas veces como desee. Ahí es donde nuestros atributos minOccurs y maxOccurs pulg Ellos vienen especificar el máximo y el mínimo de apariciones. Di, por ejemplo, que sólo quería que una sola vez o no a todos. Luego minOccurs podría ser 0 y maxOccurs sería 1.Our dulces sub-elemento se declara como un tipo llamado candyType. Esta es una muy grande.

<xsd:complexType name="candyType">
<xsd:sequence>
ProductName elemento de ir aquí ... Se explica a continuación ...
<xsd:element name="id" type="idType" minOccurs="1" maxOccurs="1"/>
<xsd:element name="price" type="xsd:decimal" minOccurs="1" maxOccurs="1"/>
</ xsd: secuencia>
</ xsd: complexType>

¿Te acuerdas de la simpleType información para nuestra ID? Aquí se refiere a su tipo que se llamaba idType.

Aquí está el elemento del producto que se redujo a cabo desde arriba por lo que podría explicarse.

<xsd:element name="productName" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="company" type="companyType"/>
</ xsd: ampliación>
</ xsd: simpleContent>
</ xsd: complexType>
</ xsd: elemento>

En el elemento de las etiquetas del producto que declarar un complexType. Tenemos que ser capaces de poner en una cadena de valor para el elemento ProductName por lo que debemos declarar una simpleContent tipo. Esto nos permitirá tener restricciones o ampliaciones en nuestro texto basado complexType. Si no adoptar estas medidas, entonces no sería capaz de poner el texto por el nombre de los dulces entre las etiquetas del producto. En nuestro caso queremos ser capaces de poner en una cadena de valor. Además, tenemos una extensión de nuestro atributo llamado empresa que debe ser declarado. El atributo base para la extensión elemento especifica por encima de nuestra built-in tipo de datos (es decir, cadena, largo, etc), un simpleType, o complexType. Una vez que ponemos todos juntos ya lo tienes hecho!

Asegúrese de que su archivo XSD tiene esta en la parte superior:

<? xml version = "1.0" encoding = "UTF-8">
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

Y el xsd: esquema de ventaja debe ser cerrado con </ xsd: esquema> en la final después de todo.

Lleve a su archivo XSD terminado y el nombre que candystore.xsd. Es válido y bien formado.

Step 6:

Nuestro paso final es aplicar nuestro esquema de XML original a nuestro archivo XML.

candystore.xml

<? xml version = "1.0" encoding = "UTF-8">
<candystore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="candystore.xsd">
<candy>
<productName company="XYZ"> lollipops </ ProductName>
<id> 634847 </ id>
<price> 0.50 </ precio>
</ caramelos>
<candy>
<productName company="ABC"> Cecas </ ProductName>
<id> 634812 </ id>
<price> 0.75 </ precio>
</ caramelos>
</ candystore>

candystore.xsd

<? xml version = "1.0" encoding = "UTF-8">
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="candystore" type="candystoreType"/>
<xsd:complexType name="candystoreType">
<xsd:sequence>
<xsd:element name="candy" type="candyType" minOccurs="0" maxOccurs="unbounded"/>
</ xsd: secuencia>
</ xsd: complexType>

<xsd:complexType name="candyType">
<xsd:sequence>
<xsd:element name="productName" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="company" type="companyType"/>
</ xsd: ampliación>
</ xsd: simpleContent>
</ xsd: complexType>
</ xsd: elemento>
<xsd:element name="id" type="idType" minOccurs="1" maxOccurs="1"/>
<xsd:element name="price" type="xsd:decimal" minOccurs="1" maxOccurs="1"/>
</ xsd: secuencia>
</ xsd: complexType>

<xsd:simpleType name="idType">
<xsd:restriction base="xsd:positiveInteger">
<xsd:totalDigits value="6"/>
</ xsd: restricción>
</ xsd: simpleType>
<xsd:simpleType name="companyType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="30"/>
</ xsd: restricción>
</ xsd: simpleType>
</ xsd: esquema>

Nota: Asegúrese de que todo su esquema XML está dentro de la <xsd:schema> </ xsd: esquema> etiquetas.