Skip to content

Archives

  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021

Categories

  • No hay categorías
Trend RepositoryArticles and guides
Articles

Un ejemplo XSD

On septiembre 29, 2021 by admin

Este capítulo demostrará cómo escribir un esquema XML. También aprenderá que un esquema se puede escribir de diferentes maneras.

  • Un documento XML
  • Crear un esquema XML
  • Divide el esquema
  • Usar tipos con nombre

Un documento XML

Veamos este documento XML llamado «shiporder.xml»:

Crear un esquema XML

Ahora queremos crear un esquema para el documento XML anterior.

Empezamos abriendo un nuevo fichero que llamaremos «shiporder.xsd». Para crear el esquema podríamos simplemente seguir la estructura del documento XML y definir cada elemento según lo encontremos. Empezaremos con la declaración XML estándar seguida del elemento xs:schema que define un esquema:

<?xml version=»1.0″ encoding=»UTF-8″ ?>
<xs:schema xmlns:xs=»http://www.w3.org/2001/XMLSchema»>
…
</xs:schema>

En el esquema anterior utilizamos el espacio de nombres estándar (xs), y el URI asociado a este espacio de nombres es la definición del lenguaje Schema, que tiene el valor estándar de http://www.w3.org/2001/XMLSchema.

A continuación, tenemos que definir el elemento «shiporder». Este elemento tiene un atributo y contiene otros elementos, por lo que lo consideramos como un tipo complejo. Los elementos hijos del elemento «shiporder» están rodeados por un elemento xs:sequence que define una secuencia ordenada de subelementos:

<xs:element name=»shiporder»>
<xs:complexType>
<xs:sequence>
…
</xs:sequence>
</xs:complexType>
</xs:element>

Entonces tenemos que definir el elemento «orderperson» como un tipo simple (porque no contiene ningún atributo ni otros elementos). El tipo (xs:string) lleva el prefijo del espacio de nombres asociado a XML Schema que indica un tipo de datos de esquema predefinido:

<xs:element name=»orderperson» type=»xs:string»/>

A continuación, tenemos que definir dos elementos que son del tipo complejo: «shipto» y «item». Comenzamos definiendo el elemento «shipto»:

Con los esquemas podemos definir el número de ocurrencias posibles para un elemento con los atributos maxOccurs y minOccurs. maxOccurs especifica el número máximo de ocurrencias para un elemento y minOccurs especifica el número mínimo de ocurrencias para un elemento. El valor por defecto para maxOccurs y minOccurs es 1!

Ahora podemos definir el elemento «item». Este elemento puede aparecer varias veces dentro de un elemento «shiporder». Esto se especifica estableciendo el atributo maxOccurs del elemento «item» en «unbounded», lo que significa que puede haber tantas apariciones del elemento «item» como el autor desee. Observe que el elemento «note» es opcional. Lo hemos especificado estableciendo el atributo minOccurs a cero:

Ahora podemos declarar el atributo del elemento «shiporder». Como se trata de un atributo obligatorio, especificamos use=»required».

Nota: Las declaraciones de atributos deben ir siempre en último lugar:

<xs:attribute name=»orderid» type=»xs:string» use=»required»/>

Aquí está el listado completo del fichero de esquema llamado «shiporder.xsd»:

Divide el esquema

El método de diseño anterior es muy sencillo, pero puede ser difícil de leer y mantener cuando los documentos son complejos.

El siguiente método de diseño se basa en definir primero todos los elementos y atributos, y luego referirse a ellos utilizando el atributo ref.

Aquí está el nuevo diseño del fichero de esquema («shiporder.xsd»):

Usar tipos con nombre

El tercer método de diseño define clases o tipos, que nos permite reutilizar las definiciones de los elementos. Esto se hace nombrando los elementos simpleTypes y complexTypes, y luego apuntando a ellos a través del atributo type del elemento.

Aquí está el tercer diseño del fichero de esquema («shiporder.xsd»):

El elemento de restricción indica que el tipo de datos se deriva de un tipo de datos del espacio de nombres W3C XML Schema. Así, el siguiente fragmento significa que el valor del elemento o atributo debe ser un valor de cadena:

<xs:restriction base=»xs:string»>

El elemento restriction se utiliza más a menudo para aplicar restricciones a los elementos. Observe las siguientes líneas del esquema anterior:

<xs:simpleType name=»orderidtype»>
<xs:restriction base=»xs:string»>
<xs:pattern value=»{6}»/>
</xs:restriction>
</xs:simpleType>

Esto indica que el valor del elemento o atributo debe ser una cadena, debe tener exactamente seis caracteres seguidos y esos caracteres deben ser un número del 0 al 9.

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Archivos

  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021

Meta

  • Acceder
  • Feed de entradas
  • Feed de comentarios
  • WordPress.org
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress