Home

Plantilla estilo manual de usuario

image

Contents

1. pertenece al espacio publico pertenece al espacio privado estandar http www w3 org 2001 XMLSchema http jorgesanchez net doc Ilustraci n 1 Esquema de funcionamiento de los XML Schemas 24 1 curso de administraci n de sistemas inform ticos en red autor Jorge Sanchez www jorgesanchez net El atributo schemaLocation acompa ado del prefijo asociado al espacio de nombres de XMLSchema indica la localizaci n del documento XMLSchema que contiene la definici n de las reglas a cumplir por el documento Es un par formado por el espacio de nombres que ser validado por el esquema y por la ruta al documento XMLSchema con extensi n xsd Se pueden indicar varios esquemas de validaci n por lo que habr a que indicar a qu espacio se aplica cada uno lt xml version 1 0 encoding UTF 8 gt lt documento xmlns doc http www jorgesanchez net doc xmlns img http www jorgesanchez net img xmlns xs http w3 org 2001 XMLSchema instance xs schemaLocation http www jorgesanchez net doc esquemaDoc xsd http www jorgesanchez net img esquemalmg xsd lt documento gt La direcci n del documento se ha puesto en estilo de ruta relativa que se calcula a partir de la direcci n del documento XML es decir el documento XMLSchema en el ejemplo estar en la misma carpeta del XML Pero lo habitual es que a los esquemas se acceda por URL completa por ejemplo http www obj com esq xsd Adem s podemos indica
2. Su nica pero muy discutible ventaja es que la validaci n est dentro del propio documento por lo que siempre viajan juntas la validaci n y el contenido del mismo Un documento XML que defina internamente su DTD simplemente escribe instrucciones DTD dentro del propio documento dentro de una etiqueta DOCTYPE La sintaxis es lt DOCTYPE ra z codigoDTD gt Dentro de los s mbolos y se especifican las instrucciones DTD Ejemplo lt xml version 1 0 encoding UTF 8 gt lt persona gt lt nombre gt Antonio lt nombre gt lt persona gt 8 1 curso de administraci n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net en un documento externo privado En este caso la validaci n se crea en un documento plantilla externa De modo que cuando un documento debe cumplir las reglas de la plantilla DTD se debe indicar la ruta sea relativa o absoluta a la misma La sintaxis de la etiqueta DOCTYPE que permite asignar un DTD privado a un documento XML es lt DOCTYPE ra z SYSTEM rutaURLalDTD gt Salvo que se desee crear un nico documento con una validaci n DTD lo l gico es utilizar la forma de DTD externa ya que de esa forma se pueden validar varios documentos a la vez La ruta puede ser absoluta y entonces se indica su URL lt DOCTYPE ra z SYSTEM http www empresa com docs dtd gt Pero puede ser relativa lt DOCTYPE ra z SYSTEM docs dtd gt En
3. Primitivos Los tipos m s b sicos de XML est n ya definidos por el propio lenguaje XML F Derivados Tipos de datos m s complejos creados a partir de los anteriores tipos de datos ya implementados tipos de datos primitivos Son los tipos b sicos de XML Sirven para formar los tipos derivados y tipos m s complejos Para usarlos basta indicarlos en el atributo type de una etiqueta element o attribute que son las que permiten crear elementos y atributos De esta forma 27 lenguajes de marcas y sistemas de gesti n de informaci n unidad 2 Validaci n XML lt xml version 1 0 encoding UTF 8 gt lt xs schema xmlns xs http www w3 org 2001 XMLSchema gt lt xs element name descripci n type xs string gt lt xs schema gt l c digo remarcado es el que indica que en los documentos XML basados en esta plantilla XMLSchema habr un elemento llamado descripci n que contendr datos de tipo string El hecho de que se use el prefijo xs es decir xs string es para indicar que es un tipo XML y por lo tanto usa el prefijo designado al espacio de nombres de XMLSchema Los tipos b sicos son textos string Representan textos con cualquier contenido excepto los s mbolos lt gt y las comillas para los que se usar la entidad correspondiente l gicos boolean S lo puede contener los valores verdadero o falso escritos como true o false o como 1 verdadero O falso n meros Mi intege
4. nimo El valor debe ser mayor o igual que el establecido por la etiqueta a trav s del atributo value e maxinclusive Establece un valor m ximo El valor debe ser menor o igual que el establecido por la etiqueta a trav s del atributo value Espacios en blanco Sirve para indicar la pol tica de manejo de espacios en blanco en los textos La etiqueta que lo controla es whiteSpace y tiene tres posibles valores para el atributo value e preserve No modificar espacios en blanco ni tabuladores ni saltos de l nea Es decir se les tendr en cuenta e replace Cada doble espacio o tabulador o salto de linea se cambia por un espacio al estilo del tipo predefinido normalizedString e collapse Como el anterior pero adem s elimina los espacios a izquierda y derecha Es muy til para usar en combinaci n con las propiedades de tama o de texto vistas anteriormente Ejemplo archivo prueba xsd lt xml version 1 0 encoding UTF 8 gt lt xs schema xmlns xs http www w3 0rg 2001 XMLSchema gt lt xs simpleType name tipo1 gt lt xs restriction base xs string gt lt xs whiteSpace value collapse gt lt xs restriction gt lt xs simpleType gt 33 lenguajes de marcas y sistemas de gestion de informacion unidad 2 Validaci n XML lt xs element name prueba type tipo1 gt lt xs schema gt En e archivo anterior se define un elemento llamado prueba que tiene un tipo que colapsa los espacios en blanco
5. XML lt xml version 1 0 encoding UTF 8 gt lt DOCTYPE directorio SYSTEM directorio dtd gt lt directorio gt lt persona nacionalidad Francesa id A1234 gt Vivian Maret lt persona gt lt persona id A789 gt Juan Martin lt persona gt lt persona sexo Hombre id A12 gt Rafael Diaz lt persona gt lt directorio gt 2 2 6 entidades Las entidades son elementos XML que permiten indicar abreviaturas de texto o referencias a elementos externos abreviadas o utilizar caracteres que de otra forma ser an inv lidos en el documento Se explican sus posibilidades entidades ya existentes En XML est n definidas las siguientes entidades entidad significado amp lt El s mbolo de menor lt amp gt El simbolo de mayor gt amp amp El ampersand amp amp apos La comilla simple amp quot La comilla doble Estas entidades no hay que declararlas en ningun DTD todos los analizadores de XML estandar conocen estas entidades Ejemplo lt autor gt Leopoldo Alas amp apos Clarin amp apos lt autor gt El texto PCDATA del autor es Leopoldo Alas Clar n asi se visualizar en el navegador 19 lenguajes de marcas y sistemas de gestion de informacion unidad 2 Validaci n XML entidades para referencias a caracteres especiales La etiqueta inicial lt xml permite indicar entre otras cosas el juego de caracteres que utiliza un documento XML normalmente Unicode U
6. caso de que sea verdadero ningun tipo derivado del definido puede modificar la propiedad establecida es decir si establecemos minLength tama o m nimo con valor ocho propiedad value y fixed true ning n tipo derivado del definido podr definir que el tama o m nimo sea inferior a 8 caracteres Es un atributo de uso opcional Las posibles restricciones que se pueden establecer son Hi Tama os de texto Indica tama os m ximos y m nimos que debe de tener el texto Ejemplo e minLength Indica el m nimo n mero de caracteres Eso lo hace mediante el atributo value en el que se indica un n mero con el tama o m nimo que deseamos e maxLength Indica un tama o m ximo de caracteres o de d gitos num ricos Usa el mismo atributo value e length Indica un tama o fijo de caracteres para el tipo Es decir si indicados length con value 9 el texto deber tener exactamente nueve caracteres Ejemplo lt xml version 1 0 encoding UTF 8 gt lt xs schema xmIns xs http www w3 org 2001 XMLSchema xmlns doc http www jorgesanchez net doc targetNamespace http www jorgesanchez net doc gt ent name titulo type doc nombresTipol gt En el ejemplo se define el tipo persona nombresTipo que permite textos entre 4 y 15 caracteres El hecho de declararle como derivado de normalizedString permite restringir que no considere en los textos mas de un espacio seguido ni los tabuladores ni saltos de
7. en un elemento Se realiza mediante estos simbolos Contenido opcional puede aparecer una sola vez o no aparecer Contenido opcional y repetible Es decir puede no aparecer y puede incluso aparecer varias veces Contenido obligatorio y repetible Tiene que aparecer e incluso puede aparecer varias veces Ejemplo lt ELEMENT pel cula t tulo direcci n argumento actor gt Seg n la instrucci n anterior el elemento pel cula consta de un t tulo uno o m s elementos de direcci n puede o no tener argumento y de varios a ning n actor adem s se tendr a que respetar ese orden 13 lenguajes de marcas y sistemas de gesti n de informaci n unidad 2 Validaci n XML Otro ejemplo pol gono dtd lt xml version 1 0 encoding UTF 8 gt lt ELEMENT pol gono coordX coordY nombre gt lt ELEMENT coordX PCDATA gt lt ELEMENT coordY PCDATA gt lt ELEMENT nombre PCDATA gt Con esa DTD seria valido el documento lt xml version 1 0 encoding UTF 8 gt lt DOCTYPE poligono SYSTEM poligono dtd gt lt poligono gt lt coordX gt 12 lt coordX gt lt coordY gt 13 lt coordY gt lt coordX gt 17 lt coordX gt lt coordY gt 23 lt coordY gt lt coordX gt 34 lt coordX gt lt coordY gt 56 lt coordY gt lt pol gono gt Pero tambi n lt xml version 1 0 encoding UTF 8 gt lt DOCTYPE poligono SYSTEM poligono dtd gt lt poligono gt lt nombre gt T
8. lt xs complexType lt xs choice gt lt xs element name negrita type xs string minOccurs 0 maxOccurs unbounded gt lt xs choice gt lt xs attribute name lenguaje type xs language gt lt xs complexType gt lt xs element gt Lo malo es que no se puede controlar el tipo de datos del texto interior Los elementos se controlan completamente pero el texto no uso de elementos y atributos globales Se trata de definir un elemento o un atributo para ser reutilizado en diferentes partes del documento La forma de utilizarlos es WE Definirlos en la zona global es decir no definirlos dentro de ning n otro componente 41 lenguajes de marcas y sistemas de gestion de informacion unidad 2 Validaci n XML M En el caso de los elementos no se pueden indicar los atributos minOccurs y maxOccurs para indicar la cardinalidad porque s lo tiene sentido dentro de otro elemento En el caso de los atributos no se puede utilizar el atributo use que indica la obligatoriedad de uso del atributo Una vez definidos donde se quieran reutilizar se define el elemento o atributo dentro del componente en el que se quiere colocar y no se le da nombre sino que se usa el atributo ref para indicar el nombre del elemento o atributo global Ejemplo lt xml version 1 0 encoding UTF 8 gt lt xs schema xmlns xs me www w3 org 2001 XMLSchema gt lt xs element name email gt lt xs simpleType gt lt xs restriction b
9. una u otra opci n pero s lo una Es decir tambi n seria valido lt xml version 1 0 encoding UTF 8 gt lt DOCTYPE articulo lt ELEMENT articulo id serie gt lt ELEMENT id PCDATA gt lt ELEMENT serie PCDATA gt 1 gt lt art culo gt lt serie gt X1238H lt serie gt lt art culo gt 12 1 curso de administraci n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net Si dentro de la lista de opciones aparece PCDATA ste debe de ser el primer elemento de la lista combinaciones Por supuesto puede haber combinaciones si tenemos un documento DTD llamado coordenada dtd con este contenido lt xml version 1 0 encoding UTF 8 gt lt ELEMENT coordenada longitud latitud coordUniversal gt lt ELEMENT longitud PCDATA gt lt ELEMENT latitud HPCDATA gt lt ELEMENT coordUniversal PCDATA gt Seria valido este documento lt xml version 1 0 encoding UTF 8 gt lt DOCTYPE coordenada SYSTEM coordenada dtd gt lt coordenada gt lt longitud gt 234 lt longitud gt lt latitud gt 23 lt latitud gt lt coordenada gt Seria valido tambi n lt xml version 1 0 encoding UTF 8 gt lt DOCTYPE coordenada SYSTEM coordenada dtd gt lt coordenada gt lt coordUniversal gt 1232332 lt coordUniversal gt lt coordenada gt cardinalidad La cardinalidad es el numero de veces que puede aparecer un determinado contenido
10. xs complexType gt En el ejemplo el elemento identificaci n consta de dos posibles elementos firma y c digo de los que s lo se podr incluir uno La etiqueta choice tambi n posee los atributos minOccurs y maxOccurs etiqueta all Se trata de una posibilidad similar a choice y sequence que se utiliza de la misma forma y que tiene como diferencia principal que los elementos que contiene pueden aparecer cero o una vez y adem s en el orden que quieran Ejemplo lt xs element name identificaci n gt lt xs complexType gt lt xs all gt lt xs element name firma type xs NCName gt lt xs element name c digo type xs NCName gt lt xs all gt lt xs complexType gt En este caso la firma y el codigo pueden aparecer o no aparecer los dos e incluso el orden sera indiferente Es una etiqueta muy potente que ahorra mucho trabajo Esta etiqueta tiene los atributos minOccurs y maxOccurs pero solo se puede indicar como valores cero o uno mezcla de elementos A veces los contenidos de un documento XML son extremadamente complejos y por eso se permite en los esquema colocar etiquetas choice dentro de etiquetas sequence y viceversa Y lo mismo ocurre con las etiquetas all Estas posibilidades permiten crear cualquier tipo de esquema por complejo que resulte Ejemplo lt xs element name correo gt lt xs complexType gt lt xs sequence gt lt xs element name remite type xs string gt lt xs element name para ty
11. y as en un documento XML que aplique este esquema por ejemplo lt xml version 1 0 encoding UTF 8 gt lt prueba xmlns xs http www w3 org 2001 XMLSchema instance xs noNamespaceSchemaLocation prueba xsd gt Este es el texto que deseo probar lt prueba Cuando mostremos el resultado en un programa que aplique el esquema por ejemplo en las ultimas versiones de Internet Explorer Firefox Safari o Chrome tendremos el contenido de la etiqueta prueba en esta forma Este es el texto que deseo probar Enumeraciones Limitan el contenido a una lista de valores Se realizan con una sucesi n de etiquetas enumeration Estas etiquetas se pueden combinar con las propiedades anteriores aunque no tiene sentido y no poseen atributo fixed De modo que si un tipo deriva de una enumeraci n podr volver a enumerar para indicar valores v lidos y estas deber n estar en la enumeraci n anterior una vez m s podremos restringir m s pero nunca menos Ejemplo de enumeraci n lt xs simpleType name sexoTipo gt lt xs restriction base xs NCName gt lt xs enumeration value Hombre gt lt xs enumeration value Mujer gt lt xs restriction gt lt xs simpleType gt Mediante este tipo s lo podremos elegir como valores Hombre o Mujer Plantillas pattern Permite establecer expresiones regulares es decir un texto con s mbolos especiales que permiten establecer expresiones que ha de cumplir el contenido Las expre
12. NI 8 cifras y un n mero ser a lt xs simpleType name dniTipo gt lt xs restriction base xs string gt lt xs whiteSpace value collapse lt xs pattern value 0 9 8 A Z lt xs restriction gt lt xs simpleType gt Ml enumeraciones Las realiza una etiqueta llamada enumeration que sirve para indicar los posibles valores que puede tomar un componente Por ejemplo lt xs simpleType name diasSemanaTipo gt lt xs restriction base xs string gt lt xs whiteSpace value collapse gt lt xs enumeration value Lunes gt lt xs enumeration value Martes gt lt xs enumeration value Mi rcoles gt lt xs enumeration value Jueves gt lt xs enumeration value Viernes gt lt xs enumeration value S bado gt lt xs enumeration value Domingo gt lt xs restriction gt lt xs simpleType gt 35 lenguajes de marcas y sistemas de gestion de informacion unidad 2 Validaci n XML definir tipos simples por lista Las listas permiten que un componente tenga como contenido una determinada lista de valores la construcci n de listas indica dos pasos 1 Crear un tipo simple de datos cuyo contenido es una etiqueta list la cual posee el atributo itemType para indicar el tipo de elementos de la lista Simplemente con ello e podr a establecer una lista valores separados por espacios de valores pertenecientes al tipo indicado 2 Crear el tipo ya definitivo de datos que contendr una etiqu
13. Pueden contener tanto texto como m s elementos La sintaxis de la etiqueta complexType admite se alar contenidos simples y compuestos Para los vacios y mixtos hay que utilizar se ver m s adelante atributos especiales en la etiqueta element Sin indicar nada especial compexType parte de que estamos definiendo contenidos complejos es decir elementos que contienen m s elementos Los elementos pueden contener atributos m s adelante se indica la forma de incorporarlos elementos vacios Para indicar que un elemento es vac o basta con no indicar valores e indicar el nombre del elemento sin indicar tipo de datos alguno Ejemplo lt xs element name casado gt lt xs complexType gt lt xs attribute name valor type xs string gt lt xs complexType gt lt xs element gt En este caso el elemento caso s lo dispone de un atributo llamado valor no ser posible meter ning n contenido en la etiqueta de casado Si no deseamos atributos aunque es muy extra o entonces simplemente no habr etiquetas attribute pero s todas las dem s definici n de contenidos con texto Se trata de usar la etiqueta lt xs element al estilo que se ha usado en los ejemplos Es decir se indica el nombre y el tipo de datos e incluso se pueden indicar atributos dentro del apartado complexType pero nunca se ponen elementos dentro de este elemento y as s lo se admitir por contenido el texto tipo PCDATA Ejemplo lt xs element
14. Q Centro Don Bosco Villamuriel de Cerrato creative commons Atribuci n NoComercial Compartirigual 3 0 Unported CC BY NC SA 3 0 Esto es un resumen f cilmente legible del Texto Legal la licencia completa http creativecommons org licenses by nc sa 3 0 legalcode Usted es libre de Compartir copiar distribuir ejecutar y comunicar p blicamente la obra hacer obras derivadas Bajo las condiciones siguientes Atribuci n Debe reconocer los cr ditos de la obra de la manera especificada por el autor o el licenciante pero no de una manera que sugiera que tiene su apoyo o que apoyan el uso que hace de su obra No Comercial No puede utilizar esta obra para fines comerciales Compartir bajo la Misma Licencia Si altera o transforma esta obra o genera una obra derivada s lo puede distribuir la obra generada bajo una licencia id ntica a sta 0006 Entendiendo que Renuncia Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor Dominio P blico Cuando la obra o alguno de sus elementos se halle en el dominio p blico seg n la ley vigente aplicable esta situaci n no quedar afectada por la licencia Otros derechos Los derechos siguientes no quedan afectados por la licencia de ninguna manera e Los derechos derivados de usos leg timos u otras limitaciones reconocidas por ley no se ven afectados por lo anterior Los derecho
15. TF8 Si deseamos indicar un caracter especial que no esta contenido en nuestro teclado conociendo su codigo en el juego de caracteres que utiliza el documento podemos especificarle con la sintaxis amp numero Donde el numero es el c digo del car cter en decimal En hexadecimal se puede hacer con amp numero Ejemplo lt calle gt Kantstra amp 223 e Berl n lt calle gt En el navegador este elemento apareceria como lt calle gt KantstraBe Berlin lt calle gt El numero se puede poner en hexadecimal si se antecede una x al nombre por ejemplo lt calle gt Kantstra amp EF e Berlin lt calle gt entidades generales Se usan como abreviaturas que apareceran en el documento XML La razon de su uso es facilitar la escritura de nombres repetitivos nombres de la empresa direcciones muy utilizadas La sintaxis para declarar una entidad de este tipo es lt ENTITY nombre texto gt Para usar en un documento XML la entidad declarada se usa amp nombre Ejemplo de declaraci n de una entidad lt ENTITY mayor Calle Mayor Principal gt uso en un documento XML lt direcci n gt amp mayor 18 lt direcci n gt La direcci n indicada es Calle Mayor Principal 18 Incluso se pueden indicar s mbolos que no son PCDATA al definir entidades 20 1 curso de administraci n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net lt ENTITY negCursiva lt strong gt lt em
16. abra REQUIRED indicando con ello que siempre hay que dar valor al atributo Ejemplo lt ATTLIST persona nacionalidad CDATA REQUIRED gt Un documento XML que utilice el elemento persona deber especificar obligatoriamente la nacionalidad Obviamente usando REQUIRED no se puede indicar un valor por defecto al no poder dejarse sin especificar el atributo valor opcional La palabra IMPLIED especificada en el atributo indicar a que dicho atributo puede quedarse sin valor es decir no posee valor por defecto pero puede quedarse sin especificar quedar a nulo por tanto lt ATTLIST persona nacionalidad CDATA IMPLIED gt En el ejemplo el atributo nacionalidad no es obligatorio especificarle puede quedar sin valor Nuevamente en este caso no se puede especificar un valor por defecto ser a absurdo tipos de atributo CDATA Como se coment antes los atributos de tipo CDATA permiten indicar como valor cualquier texto A diferencia de los datos PCDATA de los elementos los CDATA admiten cualquier car cter del tipo que sea 16 1 curso de administraci n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net ID Sirve para generar identificadores a los elementos Un identificador es un valor nico que tendr cada elemento y son muy usados en XML El valor de un atributo de tipo ID cumple estas reglas M El valor tiene que cumplir las mismas reglas que para especificar nombres XML Es de
17. al definido s lo se podr a utilizar en la zona resaltada Si fuera global se podr a utilizar en todo el documento 26 1 curso de administraci n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net 2 3 3 sintaxis de la definicion de un elemento En XML Schema la definicion de un elemento XML se realiza mediante la etiqueta element La sintaxis completa es lt xs element name nombre del elemento type tipo global de datos ref declaracion del elemento global id identificador form cualificaci n lt qualified o unqualified gt minOccurs n mero m nimo de veces maxOccurs m ximo n mero de veces default valor por defecto fixed valor fijo Al menos hay que indicar el nombre el tipo de datos tambi n es necesario indicarle casi siempre el resto de atributos s lo si se necesitan Por ejemplo se puede definir un elemento como lt xml version 1 0 encoding UTF 8 gt lt xs schema xmlns xs http www w3 org 2001 XMLSchema gt lt xs element name descripci n type xs string gt lt xs schema gt El elemento descripci n ser de tipo string Los tipos de datos en XML Schema son muchos y adem s permiten personalizar sus posibilidades para adaptarles a cualquier necesidad Poco a poco todos los atributos de la etiqueta element se ir n describiendo a lo largo del presente documento 2 3 4 tipos simples de datos Tenemos dos posibles variantes E
18. alquier valor incluidos s mbolos prohibidos en los PCDATA como lt gt t declarar atributos Esta declaraci n lt ATTLIST persona nacionalidad CDATA gt Significa que hemos definido el atributo nacionalidad correspondiente al elemento persona Que ser de tipo CDATA es decir texto normal As en un XML que se valide con el DTD en el que est la instrucci n anterior podremos lt persona nacionalidad espa ola gt valores por defecto Al declarar un atributo lo ltimo que se indica es la propiedad relativa al valor por defecto del atributo Se comentan a continuaci n sus posibilidades valor por defecto concreto Si al final de la declaraci n de un atributo aparece un valor concreto se entiende que ese ser el valor por defecto Es decir que se podr a no utilizar el atributo en un elemento y entonces dicho atributo tomar a dicho valor Por ejemplo supongamos que ste es el archivo directorio dtd lt xml version 1 0 encoding UTF 8 gt lt ELEMENT directorio persona gt lt ELEMENT persona PCDATA gt lt ATTLIST persona nacionalidad CDATA Espafnola gt Se define en l el atributo nacionalidad para el elemento persona como un atributo que contendra texto de todo tipo pero que por defecto toma el valor Espanola nacionalidad por defecto en dicho archivo Entonces este archivo XML sera valido lt xml version 1 0 encoding UTF 8 gt lt DOCTYPE directorio SYSTEM direc
19. annotation xs documentation y xs appInfo componentes locales y globales El orden de los elementos en un esquema no es significativo es decir las declaraciones se pueden hacer en cualquier orden Pero s que hay que tener en cuenta que dependiendo de d nde coloquemos la definici n de los elementos del esquema var a su mbito de aplicaci n Se distinguen dos posibilidades de declarar elementos En mbito global Se trata de los elementos del esquema que se coloquen dentro de la etiqueta ra z schema y que no est n dentro de ninguna otra Estos elementos se pueden utilizar en cualquier parte del esquema WE En mbito local Se trata de elementos definidos dentro de otros elementos En ese caso se pueden utilizar s lo dentro del elemento en el que est n inmersos y no en todo el documento Es decir si por ejemplo si dentro de la definici n de un atributo colocamos la definici n de un tipo de datos este tipo de datos s lo se puede utilizar dentro del elemento xs attribute en el que se encuentra la definici n del tipo de datos Ejemplo lt xml version 1 0 encoding UTF 8 gt lt xs schema xmIns xs http www w3 org 2001 XMLSchema xmins doc http www jorgesanchez net doc targetNamespace http www jorgesanchez net doc gt lt XS ent gt lt Definici n global lt xs element gt lt xs simpleType gt lt Definici n global lt xs simpleType gt lt xs schema gt El componente loc
20. aprender que est haci ndose muy popular No tiene tantas posibilidades con el XML Schema pero tiene una sintaxis muy sencilla Adem s admite a adir instrucciones de tipo XML Schema por lo que se convierte en una de las formas de validaci n m s completas Mi Schematron Permite establecer reglas que facilitan establecer las relaciones que han de cumplir los datos de un documento XML No es tan bueno para 7 lenguajes de marcas y sistemas de gestion de informacion unidad 2 Validaci n XML establecer el resto de reglas de validaci n orden de elementos tipos de datos 2 2 1 introducci n Es la t cnica m s veterana y en realidad procede de SGML el lenguaje base de XML Es indudablemente la m s utilizada pero tambi n la menos coherente con las reglas XML Su xito se debe a que ya era una forma de validaci n reconocida antes de la aparici n de XML por lo que muchisimo productos software la reconocen desde hace mucho y la compatibilidad con ellos ha determinado su xito 2 2 2 posibilidades de uso de DTD en el propio documento Se puede definir la estructura que debe cumplir un documento XML mediante c digo DTD insertado en el propio documento La desventaja evidente es que esta definici n s lo vale para dicho documento por lo que realmente no define tipos de documentos XML no es una plantilla en definitiva de definici n de documentos internos Por ello es la forma menos habitual de utilizar DTD
21. as etiquetas pertenecientes a XML Schema usar n el prefijo indicado en su espacio de nombres normalmente xs Adem s en la misma etiqueta se define el espacio de nombres al que se aplica el esquema Es decir normalmente un esquema XML se aplica a un espacio de nombres privado correspondiente a la entidad a la que se quiere aplicar el esquema Este espacio se puede declarar como espacio de nombres por defecto es lo habitual o usar un prefijo incluso se pueden indicar varios espacios de nombres s lo uno podr ser definido por defecto como mucho a los que aplicar el esquema Como siempre la etiqueta que declara el espacio de nombres es xmins Adem s el atributo targetNamespace permite indicar el espacio de nombres sobre el que se aplica el esquema si se aplica a varios espacios de nombres aparecer n separados con espacios que es decir a qu documentos se aplicar el esquema Ejemplos de etiquetas schema lt xs schema xmins xs http www w3 org 2001 XMLSchema xmlns http www jorgesanchez net doc targetNamespace http www jorgesanchez net doc gt En el ejemplo anterior las etiquetas correspondoentes al espacio estandar de XML Schema usaran el prefijo xs mientras que las etiquetas pertenecientes a los documentos XML correspondientes al espacio privado jorgesanchez net doc usaran el espacio de nombres por defecto lt xs schema xmins xs http www w3 org 2001 XMLSchema xmins doc http www jorgesanchez net doc targe
22. ase xs string gt lt xs pattern value A Za z 3 3 gt lt xs pattern gt lt xs restriction gt lt xs simpleType gt lt xs element gt lt xs element name trabajador gt lt xs complexType gt lt xs sequence gt lt xs element name nombre type xs string gt lt xs element Dues EL IDS type xsi string gt lt xs element ref email minOccurs 1 maxOccurs unbounded gt lt xs sequence gt lt xs complexType gt lt xs element gt lt xs schema gt En este caso se ha definido un elemento global llamado email que representa una direcci n de email dentro se define un tipo simple para restringir la forma en la que se deberia rellenar un email y que despu s el elemento trabajador la reutiliza para indicar los correos electr nicos de un trabajador Otros elementos podr an reutilizar esta misma definici n 2 3 7 grupos de elementos La etiqueta group permite realizar grupos de elementos y eso permite organizarse mejor a la hora de crear un esquema Dentro de cada grupo podemos utilizar etiquetas sequence choice y all de la misma forma que la vista anteriormente y as despu s utilizar el grupo en la forma deseada Muchas veces los grupos se definen de forma global y as se pueden utilizar en distintos elementos pero es posible definirles localmente suele tener menos inter s hacerlo en local Los grupos cuando se definen de forma global requieren indicar un nombre para ellos si se define
23. cir nada de espacios no pueden comenzar con un n mero y s lo admite letras n meros y el car cter de subrayado _ B No puede haber dos elementos con el mismo ID en un mismo documento XML En el DTD para cada elemento s lo puede indicarse un atributo como ID No puede haber dos atributos distintos en el mismo elemento que contengan IDs Los atributos ID s lo pueden indicar IMPLIED o REQUIRED en el apartado del valor por defecto Los IDs son especialmente tiles para las herramientas de maquetaci n an lisis y programaci n de aplicaciones XML Ya que permiten diferenciar de manera nica a cada elemento IDREF Los atributos IDREF contienen el valor de un ID de otro elemento Es decir ser una referencia a otro elemento Las reglas de los IDREFs son El valor de un IDREF debe cumplir las reglas para especificar nombres XML es l gico ya que contienen valores de tipo ID Debe existir un atributo ID en el documento XML cuyo valor coincida con el especificado en un IDREF de otro modo se har a referencia a un elemento inexistente y esto no est permitido La idea es poder relacionar elementos a trav s de atributos de tipo ID e IDREF Ejemplo de uso lt xml version 1 0 encoding UTF 8 gt lt Archivo directorio dtd gt lt ELEMENT directorio persona gt lt ELEMENT persona PCDATA gt lt ATTLIST persona id ID REQUIRED madre IDREF IMPLIED padre IDREF IMPLIED gt lt xml version 1 0 enc
24. en la pr ctica se usan igual que los anteriores al igual que en los primitivos cuando se usan en un esquema hay que a adir el prefijo del espacio de nombres del esquema por ejemplo xs normalizedString textos normalizedString Se basa en el tipo string Texto donde los caracteres de retorno de l nea tabulador y retorno de carro se convierten a espacios antes de procesar el esquema token Se basa en el anterior Textos en los que no hay m s de un espacio en blanco seguido ni tabuladores ni saltos de l nea en todos esos casos se convierte el texto a un nico espacio language Texto que contiene el nombre de un lenguaje seg n lo definido en la especificaci n oficial RFC 1766 Son los posibles valores de los atributos xml lang de XML 1 0 que coinciden con el formato normalizado de lenguajes habitual en las p ginas web por ejemplo el espa ol se codifica con es a veces con es ES el catal n ca el gallego gl el portugu s pt el euskera eu el ingl s en alem n de y franc s fr 29 lenguajes de marcas y sistemas de gestion de informacion unidad 2 Validaci n XML Name S lo admite nombres compatibles con la forma de poner nombres de XML Admite los dos puntos pero para manejar nombres con prefijo nombres cualificados el tipo id neo es QName NCName Nombres basado en Name pero sin admitir los dos puntos de los prefijos de espacios de nombres n meros integer Basado en number Representa n meros en
25. eta restriction a la cual como tipo base se indica el tipo simple de datos relacionado con la lista EN la restricci n se pueden indicar estas etiquetas usando el atributo value length Indica que la lista tendr un n mero exacto de valores minLength Indica que la lista tendr un n mero m nimo de valores maxLength Indica que la lista tendr un n mero m ximo de valores enumeration Posibles valores que puede tener la lista whiteSpace Gesti n de los espacios en blanco en cada elemento de la lista pattern Expresi n regular que debe cumplir cada elemento de la lista Es decir son las etiquetas ya conocidas pero que ahora se refieren a la lista Ejemplo lt xs simpleType name listaDecimales gt lt xs list itemType xs decimal gt lt xs simpleType gt lt xs simpleType name listaNotas gt lt xs restriction base listaDecimales gt lt xs minLength value 3 gt lt xs maxLength value 6 gt lt xs restriction gt lt xs simpleType gt Primero se define un tipo de lista listaDecimales simplemente indicando que ser una lista cuyos valores ser n n meros decimales Despu s se concreta la lista listaNotas de modo que ahora se indica que la lista constar de tres a seis n meros en el XML cada n mero ir separado por espacios definiciones locales de tipos Como se coment anteriormente los componentes de XML Schema pueden definirse en modo local o global En modo global cualquier otro compone
26. gt lt em gt lt strong gt gt El documento XML que utilice dicha entidad incluir todos los s mbolos y por lo tanto estar especificando etiquetas en el c digo Un uso muy interesante es usar entidades que hacen referencia a archivos externos mediante su direcci n URL por ejemplo lt ENTITY direcci nCompleta SYSTEM direccion txt gt Es la palabra SYSTEM la que indica que la entidad no es un texto sino que es el contenido de un archivo El uso de la entidad Edirecci nCompleta en un documento XML provocar que en dicho documento se a ada el contenido del archivo direcci n txt en la posici n exacta en la que est colocada la referencia a la entidad entidades de par metros S lo se pueden utilizar dentro del DTD no en el documento XML Su uso m s habitual es construir DTD utilizando las entidades definidas a fin de ahorrar trabajo al crear el propio DTD Su uso es similar a las entidades generales s lo que utilizan el simbolo en lugar del simbolo tt Al igual que las generales deben de ser declaradas antes de poder usarse lt ENTITY mayor Calle Mayor Principal gt Y su uso dentro del DTD por ejemplo lt ATTLIST persona direcci n CDATA mayor gt En este caso las comillas dobles son obligatorias porque los valores por defecto van entrecomillados como se ha visto anteriormente Las entidades de par metros pueden utilizar archivos externos ejemplo de DTD lt xml version 1 0 encod
27. ienen el mismo significado que en las DTD Derivan de NCName ENTITY ENTITIES Equivalente a los atributos XML 1 0 del mismo nombre Derivan de NCName NMTOKEN NMTOKENS Permiten indicar textos compatibles con los nombres XML Derivan de NCName NOTATION Es un tipo pensado para hacer anotaciones su funcionamiento es peculiar y no est pensado para ser usado como tipo b sico sino como base para crear tipos personales 30 1 curso de administraci n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net uso de tipos de datos en componentes de XMLSchema Para que un determinado componente del esquema como un elemento o un atributo use uno de los tipos se dispone del atributo type al que se le indicaria el tipo de datos Ejemplo lt xml version 1 0 encoding UTF 8 gt lt xs schema xmlns xs http www w3 org 2001 XMLSchema xmlns doc http www jorgesanchez net doc targetNamespace http www jorgesanchez net doc gt lt xs element name documento type xs NCName gt lt xs element name contenido type xs string gt lt xs element name precio type xs decimal gt lt xs schema gt En el ejemplo se trata de las primeras lineas de un codigo XMLSchema donde se definen tres elementos cada uno de los cuales con un tipo distinto Observar el uso del prefijo xs asignado al espacio de nombres de XMLSchema antes del nombre del tipo de datos definir tipos simples personales La s
28. ing UTF 8 gt lt ENTITY directorio SYSTEM directorio dtd gt directorio lt ELEMENT empresa raz nSocial direcci n gt lt ELEMENT raz nSocial PCDATA gt De esta forma se construye un DTD con el contenido ya especificado en otro DTD En el ejemplo las empresas constan de elementos raz nSocial y de directorio El elemento directorio no se define sino que su descripci n est especificada en directorio dtd No obstante el uso m s habitual es definir una entidad para utilizar c digo com n en el propio DTD por ejemplo supongamos que dos elementos profesor y alumno comparten atributos comunes Entonces este c digo simplifica la definici n de los atributos de esos elementos 21 lenguajes de marcas y sistemas de gestion de informacion unidad 2 Validaci n XML 2 3 1 XML Schema y DTD Los DTD en realidad son una reminiscencia del lenguaje SGML que permite un mecanismo de validaci n para XML al ser ste un subconjunto de SGML Por ello se plante en torno a 1999 una sintaxis que permitiera m s capacidades de validaci n y que fuera m s coherente con el lenguaje XML Hoy en d a es la arquitectura predominante para la validaci n ya que se usa en XQuery y sobre todo en los servicios Web ventajas de los esquemas gt TT La sintaxis es XML por lo que son analizables como cualquier otro documento XML Soportan ntegramente los espacios de nombres Permiten validaciones de da
29. intaxis general es lt xs simpleType name nombre gt definici n del tipo lt xs simpleType gt definir tipos por uni n Se trata de utilizar dentro del tipo de datos una etiqueta llamada union que permite unir las definiciones de dos tipos de datos Por ejemplo lt xs simpleType name gMonthC gt lt xs union memberTypes xs gMonth xs gMonthDay gt lt xs simpleType gt Cuando a cualquier elemento del esquema se le asigne el tipo gMonthC se podr n especificar datos en formato gMonth y en formato gMonthDay establecer tipos simples por restricci n Permiten establecer reglas complejas que deben de cumplir los datos En este caso dentro de la etiqueta simpleType se indica una etiqueta restriction dentro de la cual se establecen las posibles restricciones Sintaxis lt xs simpleType name nombre gt lt xs restriction base tipo gt definici n de la restricci n lt xs restriction gt lt xs simpleType gt El atributo base sirve para indicar en qu tipo nos basamos al definir la restricci n es decir de qu tipo estamos creando este derivado El apartado restriction pueden tener numerosas etiquetas que permiten establecer las restricciones deseadas al tipo 31 lenguajes de marcas y sistemas de gestion de informacion unidad 2 Validaci n XML Las etiquetas interiores a restriction disponen de un atributo llamado fixed que solo puede valer verdadero true o falso false En
30. linea de otro modo casi siempre se superaria el minimo de cuatro quiza incluso fuera mejor derivar de NCNames que es a n mas restrictivo AS L lt xs elem 32 1 curso de administraci n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net MB D gitos m ximos Parecido al anterior pero trabajando con n meros Indica las posibles cifras que puede tener el n mero e totalDigits N mero m ximo de d gitos del n mero incluyendo los decimales El atributo value indica el n mero m ximo deseado e fractionDigits M ximo numero de decimales que puede tener el numero lt xs simpleType name tipo1 gt lt xs restriction base xs decimal gt lt xs totalDigits value 6 gt lt xs fractionDigits value 2 gt lt xs restriction gt lt xs simpleType gt lt xs element name para type tipo1 gt En el ejemplo los elementos que utilicen el tipo1 definido podr n escribir n meros de hasta seis cifras incluidos HA M ximos y m nimos num ricos Restringe valores num ricos asignando topes a los mismos Sirve para n meros y para valores de tiempo o duraci n Se hace con e minExclusive Establece un valor m nimo El valor debe ser mayor que el establecido por la etiqueta a trav s del atributo value e maxExclusive Establece un valor maximo El valor debe ser menor que el establecido por la etiqueta a trav s del atributo value e mininclusive Establece un valor m
31. lt xs element ref documento gt lt xs element ref documentoRef gt lt xs choice gt lt xs complexType gt lt xs element gt lt xs schema gt Se define en el ejemplo un grupo de atributos globales que se llama infoDoc y que esta formado por tres atributos lenguaje tama o y t tulo que se definen completamente en el grupo Despu s dos elementos documento y documentoRef utilizan el grupo de atributos como si fuera un solo atributo De modo que un XML basado en este esquema y v lido podr a ser lt xml version 1 0 encoding UTF 8 gt lt documentos xmins xs http www w3 org 2001 XMLSchema instance xs noNamespaceSchemaLocation correo xsd gt lt documento lenguaje es tama o 123 titulo Informe 32 gt lt documento lenguaje es tama o 34 t tulo Alta 34 gt lt documentoRef lenguaje es referencia 3234 t tulo Informe 56 gt lt documentos gt 44
32. mar dos valores yes En caso de el documento XML no utilice DTD externa 9 lenguajes de marcas y sistemas de gesti n de informaci n unidad 2 Validaci n XML no Cuando el documento obligatoriamente hace uso de DTD externa 2 2 3 definiciones en un DTD En un c digo DTD tanto externo como interno se pueden definir Los elementos que se pueden utilizar en un documento XML En esta definici n se indica adem s que pueden contener dichos elementos Los atributos que pueden poseer los elementos Adem s incluso indicando sus posibles valores v lidos Entidades que puede utilizar el documento XML 2 2 4 elementos Mediante un DTD podemos especificar elemento que se puede utilizar en un XML se define en su DTD mediante una etiqueta ELEMENT La sintaxis de la misma es lt ELEMENT nombre tipo gt El nombre es el identificador que tendr el elemento en el documento XML hay que recordar que se distingue entre may sculas y min sculas El tipo indica el funcionamiento del elemento relativo al contenido que puede tener A continuaci n se indican las posibilidades de este par metro tipos de contenido en los elementos EMPTY Significa que el elemento no podr tener contenido alguno es un elemento vac o como la etiqueta br de las p ginas web Ejemplo de definici n de elemento vac o lt ELEMENT l nea EMPTY gt Cuando se indica como tipo la palabra EMPTY se indica que el elemento no
33. n de forma local no Cuando un elemento desea incorporar un grupo global utiliza la etiqueta group y con el atributo ref indicar a el nombre del elemento global 42 1 curso de administraci n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net definido anteriormente Pueden contener los atributos minOccurs maxOccurs para indicar las veces que puede repetirse el grupo en el elemento que le contiene Ejemplo lt xml version 1 0 encoding UTF 8 gt lt xs schema xmlns xs http www w3 o0rg 2001 XMLSchema gt lt xs group name seccionesCorreo gt lt xs sequence gt lt xs element name remite type xs string gt lt xs element name para type xs string minOccurs 1 maxOccurs unbounded gt lt xs choice gt lt xs element name cc type xs string minOccurs 1 maxOccurs unbounded gt lt xs element name cco type xs string minOccurs 1 maxOccurs unbounded gt lt xs choice gt lt xs sequence gt lt xs group gt lt xs element name correo gt lt xs complexType gt lt xs sequence gt lt xs group ref s lt xs element name contenido type xs string gt lt xs sequence gt lt xs complexType gt lt xs element gt lt xs schema gt 2 3 8 grupos de atributos La idea es la misma que con los grupos de elementos facilitar la escritura del codigo del esquema Se trata de definir lo logico es de forma global una serie de atributos que utiliza
34. n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net Como se observa la P es obligatoria y la T sirve para separar los valores de fecha de los valores hora dateTime Representa fechas seg n el formato ISO 8601 secci n 5 4 El formato es yyyy mm ddThh mm ss por ejemplo 1998 07 12T16 30 00 000 12 de julio de 1998 a las 16 30 La T es obligatoria para separar la fecha de la hora time Representa horas en el formato hh mm ss date Representa fecha en formato yyyy mm dd gYearMonth Representa un mes y un a o en formato yyyy mm gYear Representa un a o usando cuatro cifras gMonthDay Representa un mes y un d a en formato mm dd gDay Representa un d a Hay que hacerlo indicando tres guiones por delante por ejemplo 12 Hi gMonth Representa un mes en formato mm por ejemplo 05 especiales Ml anyURI Representa una direcci n URI Por ejemplo http www jorgesanchez net La URI puede ser absoluta o relativa QName Nombre cualificado Representa un nombre XML valido para identificar nombres incluyendo el prefijo de espacio de nombres Por ejemplo doc cabecera E Notation Representa notaciones de estilo NOTATION XML 1 0 segunda edici n S lo se debe utilizar para crear tipos de datos derivados de ste anyType No restringe el contenido en modo alguno tipos de datos derivados Son datos que se han definido a partir de los anteriores pero forman parte de XMLSchema es decir que
35. n diferentes elementos y asi mejorar el mantenimiento del esquema XML Los grupos de atributos se declaran con attributeGroup al definir se utiliza el nombre y al usarle en un elemento se hace referencia a dicho nombre mediante la etiqueta ref Ejemplo lt xs schema xmlns xs http www w3 org 2001 XMLSchema gt lt xs attribute name lenguaje type xs language use required gt lt xs attribute name tama o gt lt xs simpleType gt lt xs restriction base xs positiveInteger gt lt xs minExclusive value 20 gt lt xs maxExclusive value 200 gt lt xs restriction gt 43 lenguajes de marcas y sistemas de gestion de informacion unidad 2 Validaci n XML lt xs simpleType gt lt xs attribute gt lt xs attribute name t tulo type xs string use required gt lt xs attributeGroup gt lt xs element name documento gt lt xs complexType gt lt xs simpleContent gt lt xs extension base xs string gt lt xs attributeGroup ref infoDoc gt lt xs extension gt lt xs simpleContent gt lt xs complexType gt lt xs element gt lt xs element name documentoRef gt lt xs complexType gt lt xs attributeGroup ref infoDoc gt lt xs attribute name referencia type xs positiveInteger use required gt lt xs complexType gt lt xs element gt lt xs element name documentos gt lt xs complexType gt lt xs choice minOccurs 1 maxOccurs unbounded gt
36. n el ejemplo dentro de una etiqueta persona obligatoriamente debe de existir una etiqueta nombre una y solo una No s lo se pueden indicar nombres de elementos como contenido concreto la indicacion PCDATA significa que el elemento podra contener texto literal tan largo como se desee 11 lenguajes de marcas y sistemas de gesti n de informaci n unidad 2 Validaci n XML secuencias En el caso de indicar una lista de elementos separados por comas por ejemplo lt xml version 1 0 encoding UTF 8 gt lt DOCTYPE persona lt ELEMENT persona nombre apellidos edad gt lt ELEMENT nombre PCDATA gt lt ELEMENT apellidos 4PCDATA gt lt ELEMENT edad PCDATA gt 1 gt lt persona gt lt nombre gt Antonio lt nombre gt lt apellidos gt P rez lt apellidos gt lt edad gt 35 lt edad gt lt persona gt Indica que el elemento contendr la lista de elementos indicada la cual deber estar en el mismo orden de la secuencia Es decir en el ejemplo los apellidos no se podr an poner delante del nombre elecciones Los elementos pueden contener elementos opcionales puede aparecer uno u otro Ejemplo lt xml version 1 0 encoding UTF 8 gt lt DOCTYPE articulo lt ELEMENT articulo id serie gt lt ELEMENT id PCDATA gt lt ELEMENT serie PCDATA gt I gt lt articulo gt lt id gt 16 lt id gt lt articulo gt La barra vertical indica que el elemento puede contener
37. name nombre type xs string gt definici n de contenidos con texto y atributos En este caso se indica que el elemento posee contenido simple en la etiqueta complexType dentro de la cual se indican los atributos mientras que es la etiqueta del contenido simple simpleContent la que poseer el tipo de datos para el contenido del elemento Hay dos formas de indicar contenido simple por extensi n mediante etiqueta extension y por restricci n etiqueta restriction Los atributos se deben indicar en el apartado extension que es el encargado de indicar los tipos Ejemplo lt xs element name documento gt lt xs complexType gt lt xs simpleContent gt lt xs extension base xs string gt lt xs attribute name idioma type xs string gt lt xs extension gt 38 1 curso de administraci n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net lt xs simpleContent gt lt xs complexType gt lt xs element gt En el ejemplo documento es un elemento de tipo string texto que contiene un atributo llamado idioma tambi n string Es un poco enrevesado pero es necesario hacerlo as definici n de contenidos compuestos Como se ha comentado antes los contenidos compuestos se refieren a los elementos que contienen otros elementos pero nunca texto libre Hay tres posibles tipos de elementos a contener secuencias elecciones y contenidos libres all Adem s se pueden incor
38. nte le puede utilizar en modo local s lo aquel que contiene la definici n Los datos simples se pueden crear por ejemplo en un elemento y as se aplican s lo a dicho elemento Ejemplo lt xs element name elemento1 gt 36 1 curso de administraci n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net MERO lt xs element gt El tipo simple declarado ni siquiera tiene nombre ya que no se utilizar fuera del elemento elemento7 2 3 5 atributos Los atributos se definen parecido a los elementos Su sintaxis de definici n es lt xs attribute name nombre del elemento type tipo global de datos ref declaraci n del elemento global form cualificaci n lt qualified o unqualified gt id identificador default valor por defecto fixed valor fijo use uso lt prohibited optional o required gt Los atributos s lo pueden asignarse a los elementos mediante tipos complejos de datos El uso hace referencia a si al atributo no se le puede asignar ning n valor en el documento XML valor prohibited si su uso es opcional valor optional o si es obligatorio darle valor 2 3 6 tipos compuestos Los tipos de datos del apartado anterior s lo sirven para indicar contenidos simples que contienen s lo informaci n en el interior de elementos o bien para indicar posibles valores a los atributos Los tipos compuestos permiten definir contenido
39. nto XMLSchema necesitamos definir los dos espacios de nombres el correspondiente al documento XML que se suele usar sin abreviatura es decir como espacio por defecto y el espacio de nombres de XML Schema que suele utilizar el prefijo xs aunque se puede utilizar otro Adem s es necesario indicar d nde est el archivo XMLSchema que contiene las reglas de validaci n que se aplican al documento Esto se hace gracias al atributo llamado schemaLocation perteneciente al espacio de nombres del esquema por lo que se usa normalmente como xs schemaLocation Ejemplo lt xml version 1 0 encoding UTF 8 gt lt documento xmins http www jorgesanchez net doc xmins xs http w3 org 2001 XMLSchema instance lt documento gt Se indica el espacio por defecto de nombres en el documento coincide con el declarado en el propio archivo del esquema se indica el espacio de nombres correspondiente al esquema siempre es la misma direcci n de Internet y se asocia a este espacio el prefijo xs se puede elegir otro prefijo pero no es nada conveniente Documento XML Schema Documento XML esquema xsd doc12 xml lt xml version 1 0 gt lt xml version 1 0 gt lt schema xmins xs http www w3 org 2001 XMLSchema s xmlns http jorgesanchez net doc www w3 org 2001 XMLSchema instance targetNamespace http jorgesanchez net doc gt anchez net doc c digo XMLSchema lt schema gt
40. o y que este elemento obligatoriamente debe contener los elementos nombre fabricante y precio Esas reglas no se refieren a que el documento est bien formado son reglas m s complejas y que permitir n al documento que sea v lido Para ello se crea un documento que contendr las reglas que deben de cumplir los XML que se basen en l De modo que un documento deber indicar qu plantilla de reglas utiliza y deber cumplirlas a rajatabla para considerarse v lido As explicado parece que la validaci n supone un problema pero en realidad es una ventaja con la validaci n tenemos la seguridad de que los documentos cumplen unas reglas m s concretas y de esa forma es f cil establecer un protocolo en las empresas para sus documentos De hecho cuando un documento XML cumple estrictamente las reglas generales de creaci n XML se dice que est bien formado cuando adem s sigue las reglas de un documento de validaci n entonces se dice que es v lido Las t cnicas m s populares para validar documentos son DTD Document Type Definition Validaci n por documentos de definici n de tipos Se utilizaba en el lenguaje SGML y de ah debe su popularidad Es la m s utilizada pero tiene numerosas voces cr ticas porque su sintaxis no es XML MH XML Schema o esquemas XML Mucho m s coherente con el lenguaje XML es la aconsejada actualmente pero todav a no tiene una implantaci n al 100 M Relax NG Es una notaci n sencilla y f cil de
41. oding UTF 8 gt lt Archivo directorio1 xml gt lt DOCTYPE directorio SYSTEM directorio dtd gt lt directorio gt lt persona id p1 gt Pedro lt persona gt lt persona id p2 gt Marisa lt persona gt lt persona id p3 madre p2 padre p1 gt Carmen lt persona gt lt directorio gt Carmen es la hija de Pedro y Marisa segun el codigo anterior ya que los atributos padre y madre de tipo IDREF contienen los ID de Pedro y Marisa 17 lenguajes de marcas y sistemas de gestion de informacion unidad 2 Validaci n XML IDREFS Igual que el anterior s lo que permite indicar varias referencias que deben existir en el documento XML a otros ID separadas por espacios Ejemplo lt xml version 1 0 encoding UTF 8 gt lt Archivo directorio dtd gt lt ELEMENT directorio persona gt lt ELEMENT persona PCDATA gt lt ATTLIST persona id ID REQUIRED padres IDREFS IMPLIED gt lt xml version 1 0 encoding UTF 8 gt lt Archivo directorio1 xml gt lt DOCTYPE directorio SYSTEM directorio dtd gt lt directorio gt lt persona id p1 gt Pedro lt persona gt lt persona id p2 gt Marisa lt persona gt lt persona id p3 padres p1 p2 gt Carmen lt persona gt lt directorio gt NMTOKEN El valor del atributo sera un texto que cumplira las reglas para nombres XML Se usa en atributos donde se entiende que CDATA permite demasiadas libertades de esta forma al meno
42. pe xs string minOccurs 1 maxOccurs unbounded gt lt xs choice gt lt xs element name cc type xs string minOccurs 1 maxOccurs unbounded gt lt xs element name cco type xs string minOccurs 1 maxOccurs unbounded gt lt xs choice gt lt xs sequence gt lt xs complexType gt lt xs element gt 40 1 curso de administraci n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net En el ejemplo el elemento correo consta de tres elementos remite para y un tercero que puede ser cc o cco a adir atributos En los apartados complexType los atributos del elemento se definen al final del apartado complexType justo antes de cerrarle Ejemplo lt xs element name persona gt lt xs complexType gt lt xs sequence gt lt xs element name nombre type xs string gt lt xs element name apellidos type xs string gt lt xs sequence gt lt xs complexType gt lt xs element gt Las personas contienen dos elementos en secuencia nombre y apellidos y dos atributos uno opcional sexo que s lo pueden tomar los valores Hombre o Mujer y uno obligatorio para la fecha de nacimiento contenidos mixtos Es el caso m s complejo Se trata de elementos que contienen otros elementos y adem s texto e incluso atributos Para permitir esta posibilidad hay que marcar el atributo mixed de la etiqueta complexType a true Ejemplo lt xs element name documento gt
43. porar atributos secuencias Dentro de un elemento es habitual indicar su contenido como una secuencia de elementos Esto se permite con la etiqueta sequence dentro de la cual se a aden etiquetas element para indicar los elementos que entran en la secuencia Ejemplo lt xs simpleType name emailT gt lt xs restriction base xs string gt lt xs pattern value A Za z 3 3 gt lt xs restriction gt lt xs simpleType gt lt xs element name email gt lt xs complexT lt xs complexType gt lt xs element gt En el ejemplo el elemento email esta compuesto de cuatro elementos El remite que tiene obligatoriamente que aparecer una vez el para que aparecera al menos una vez y que puede aparecer tantas veces como se desee y los apartados opcionales CC y CCO que pueden aparecer repetidos La etiqueta sequence posee los atributos minOccurs y maxOccurs para indicar que el bloque de la secuencia se puede repetir elecciones Sirven para permitir elegir uno de entre varios elementos Su funcionamiento es el mismo que en las secuencias pero en este caso se utiliza una etiqueta llamada choice 39 lenguajes de marcas y sistemas de gestion de informacion unidad 2 Validaci n XML Ejemplo lt xs element name identificaci n gt lt xs complexType gt lt xs choice gt lt xs element name firma type xs NCName gt lt xs element name c digo type xs NCName gt lt xs choice gt lt
44. puede tener contenido pero si podra contener atributos si se especifican en el DTD Los elementos definidos con EMPTY solo pueden utilizarse de esta forma lt linea gt lt linea gt o bien lt linea gt ANY Permite cualquier contenido en el elemento sin restricciones de ning n tipo Es decir puede contener texto otro tipo de datos y cualquier etiqueta Adem s puede tener atributos 10 1 curso de administraci n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net Ejemplo lt xml version 1 0 gt lt DOCTYPE persona lt ELEMENT persona nombre apellidos gt lt ELEMENT nombre PCDATA gt lt ELEMENT apellidos ANY gt 1 gt lt persona gt lt nombre gt Jorge lt nombre gt lt apellidos gt S nchez Asenjo lt nombre gt Jorge lt nombre gt lt apellidos gt lt persona gt Al definir apellidos como elemento ANY permite incluso que dentro haya una etiqueta nombre Puesto que un DTD se usa para restringir la escritura de un tipo de documentos XML el uso de ANY debe de ser muy cauteloso elemento concreto En los elementos se puede indicar claramente un contenido concreto para el mismo Dicho contenido se indica entre par ntesis Ejemplo lt xml version 1 0 encoding UTF 8 gt lt DOCTYPE persona lt ELEMENT persona nombre gt lt ELEMENT nombre PCDATA gt I lt persona gt lt nombre gt Antonio lt nombre gt lt persona gt E
45. r Permite utilizar n meros enteros W float Permite utilizar n meros decimales en formato de coma flotante de precisi n simple El separador decimal es el punto Ejemplos de valores 1 2 3 4 123 124 76 1E 3 significa 1000 1 45E 4 significa 14500 1 45E 4 significa 0 000145 es decir 1 45 10 INF infinito INF menos infinito NaN significa Not a Number no es n mero para n meros no v lidos double N meros decimales en formato de coma flotante de precisi n doble Es decir el mismo tipo de n meros pero con mejor precisi n decimal Representa n meros decimales en coma fija Ocupan m s internamente pero se representan de forma exacta No admite los valores INF NaN ni tampoco el formato cient fico hexBinary Representa n meros binarios codificados en notaci n hexadecimal Ml base64Binary Representa n meros binarios usando base 64 fechas Se basan en la especificaci n ISO 8601 BB duration Representa duraciones de tiempo en formato ISO 8601 secci n 5 3 PnYnMnDThms Donde todos los signos n son n meros Ejemplos de valores e P1Y significa Un ano e P1Y2M significa un a o y dos meses e P1Y2M3Dsignifica un a o y dos meses y tres dias e P3D significa tres d as e P1Y2M3DT12H30M40 5S significa un a o dos meses tres d as doce horas treinta minutos y cuarenta segundosy medio e PT12H30M40 5S doce horas treinta minutos y cuarenta segundosy medio 28 1 curso de administraci
46. r un esquema para un documento pero sin que dicho esquema utilice espacio de nombres Por ejemplo el esquema podr a tener esta cabecera archivo esquema 1 xsd lt xml version 1 0 encoding UTF 8 gt lt xs schema xmlns xs http www w3 org 2001 XMLSchema gt lt xs element name descripci n type xs string gt lt xs schema gt El archivo XML Schema anterior no indica ningun espacio de nombres al que aplicarse Un documento que hiciera referencia al esquema podria ser lt xml version 1 0 encoding UTF 8 gt lt descripci n xmIns xs http www w3 org 2001 XMLSchema instance xs noNamespaceSchemaLocation esquemai xsd gt lt descripci n gt El atributo noNameSchemaLocation permite indicar un esquema para el documento sin que ste utilice espacio de nombres alguno lo cual no es nada aconsejable pero vale para hacer pruebas partes de un esquema Ml Elementos definidos con etiquetas xs element Para indicar los elementos permitidos en los documentos que sigan el esquema Atributos etiqueta xs attribute ES Mi Tipos simples que permiten definir los tipos simples de datos que podr utilizar el documento XML Lo hace la etiqueta xs simpleType ES Tipos complejos mediante la etiqueta xs complexType 25 lenguajes de marcas y sistemas de gestion de informacion unidad 2 Validaci n XML Hi Documentaci n informaci n utilizable por aplicaciones que manejen los esquemas Etiquetas xs
47. riangulo lt nombre gt lt poligono gt 2 2 5 declaraci n de atributos Los atributos permiten a adir informaci n a un elemento Un atributo no puede constar de m s atributos y cada atributo s lo puede aparecer una vez en cada elemento sintaxis de la declaraci n de atributos Los atributos se declaran mediante la etiqueta ATTLIST sintaxis lt ATTLIST elemento nombreAtributo tipo presencia valorPorDefecto gt Donde HB elemento Es el nombre del elemento que podr utilizar el atributo nombreAtributo Es el identificador del atributo que estamos declarando y que debe de cumplir las reglas de identificadores de XML ES El tipo Es el tipo de valores que podemos asignar al atributo ES presencia Indica las caracter sticas de los valores que puede tomar el atributo si es obligatorio si hay valor por defecto 14 1 curso de administraci n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net E valorPorDefecto Permite dar un valor que el atributo tomar en el documento XML en caso de que no se le d en el mismo ning n valor al atributo Tambi n indica si es necesario rellenar o no el atributo o bien si es opcional CDATA Para indicar el tipo de valores de un atributo se usa la palabra CDATA para indicar que el atributos contiene texto CDATA es el acr nimo de Character DATA A diferencia de PCDATA su contenido no es procesado lo que significa que puede contener cu
48. s m s complejos Puesto que lo normal es que los elementos de un documento XML puedan contener otros elementos y por supuesto atributos es l gico que la mayor a de elementos indiquen mediante tipos compuestos su contenido Los datos simples son apropiados para indicar el tipo de contenido de los atributos o bien para indicar el contenido de los elementos simples lo que en DTD ser an elementos s lo con contenido APCDATA Al igual que los datos simples los compuestos pueden ser globales o locales En el caso de ser locales no se indica un nombre atributo name y entonces s lo se podr n utilizar para el elemento en el que se definieron Los globales se pueden utilizar para distintos elementos y por lo tanto requieren que se indique su nombre Los tipos compuestos se definen con la etiqueta complexType En esa etiqueta podemos utilizar diferentes modelos de definici n de contenidos En realidad los elementos XML desde el punto de vista de la sintaxis XML Schema pueden tener cuatro tipos de contenido Contenido simple Simple Content S lo admite texto en su interior y no otros elementos son los elementos definidos en DTD como PCDATA E Vac os Empty No pueden contener ni m s elementos dentro ni texto 37 lenguajes de marcas y sistemas de gestion de informacion unidad 2 Validaci n XML Contenido compuesto Complex Content Pueden contener otros elementos pero no PCDATA Contenido mixto Mixed Content
49. s morales del auto Derechos que pueden ostentar otras personas sobre la propia obra o su uso como por ejemplo derechos de imaaen o de orivacidad Ww 2 1 documentos XML bien formados y validaci n 7 2 2 validaci n por DTD 8 2 2 1 introducci n 8 2 2 2 posibilidades de uso de DTD 8 2 2 3 definiciones en un DTD 10 2 2 4 elementos 10 2 2 5 declaraci n de atributos 14 2 2 6 entidades 19 2 3 Validaci n por XML Schema 22 2 3 1 XML Schema y DTD 22 2 3 2 estructura de los esquemas 22 2 3 3 sintaxis de la definici n de un elemento 27 2 3 4 tipos simples de datos 27 2 3 5 atributos 37 2 3 6 tipos compuestos 37 2 3 7 grupos de elementos 42 2 3 8 grupos de atributos 43 5 En el tema anterior se dispusieron las bases del funcionamiento de XML En ellas se indic lo que se consideraba un documento XML bien formado Los documentos bien formados aseguran que las reglas de XML se cumplen y que no hay ninguna incoherencia al usar el lenguaje Sin embargo no es suficiente porque podr amos definir documentos que utilizaran los elementos que quisi ramos sin restricci n En la realidad los elementos y los atributos que se pueden utilizar y la manera de disponerles en el documento es fundamental para mantener una mayor homogeneidad Una empresa puede decidir que los documentos internos para describir el software que utiliza la empresa deben poseer como elemento ra z un elemento llamado software y no otr
50. s sabremos que es un texto donde solo existiran letras numeros y el simbolo _ es decir un texto que cumple las reglas para nombres XML NMTOKENS El atributo puede contener varios valores de tipo NMTOKEN separados por espacios ENTITY El valor de un atributo sera una entidad de la cual se indica el nombre Mas adelante se explica el uso de las entidades ENTITIES El valor del atributo sera una lista de nombres de entidades separadas por espacios enumeraci n En este caso el valor del atributo debe de ser uno de una lista de valores posibles cada uno de los cuales se separa del siguiente mediante el simbolo Ejemplo lt ATTLIST persona sexo Hombre Mujer REQUIRED gt Las personas s lo podr n especificar como sexo Hombre o Mujer y nada m s lt persona sexo Var n gt Javier Ruiz lt persona gt El c digo anterior XML fallar a ya que el atributo sexo no admite el valor Var n 18 1 curso de administraci n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net declaraci n de varios atributos en la misma etiqueta Se usa muy habitualmente para indicar de forma c moda todos los atributos de un determinado elemento lt xml version 1 0 encoding UTF 8 gt lt ELEMENT directorio persona gt lt ELEMENT persona PCDATA gt lt ATTLIST persona nacionalidad CDATA Espanola sexo Hombre Mujer IMPLIED id ID REQUIRED gt Para ese documento DTD seria valido este
51. siones regulares son bien conocidas por casi todos los programadores y dan una potencia incre ble para establcer restricciones de texto avanzadas lo que las hace muy utilizadas Las plantillas se manejan con etiquetas pattern a las que en el atributo value se indica un texto con s mbolos especiales que especifica la expresi n a cumplir Los s mbolos que se pueden utilizar son Simbolo Significado texto tal Hace que solo se pueda escribir ese texto Por ejemplo si se cual indica Hombre la restricci n ser escribir como valor posible 34 1 curso de administraci n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net S mbolo Significado exactamente el texto Hombre xyz Permite elegir entre los caracteres x y O Z xyz Prohibe usar cualquiera de los caracteres entre corchetes Vale cualquier car cter de la a ala Z Inicio de l nea Final de l nea Repite acepta el car cter precedente una o m s veces Acepta el car cter precedente 0 o m s veces Acepta el car cter precedente una o m s veces nj Acepta exactamente n repeticiones del car cter precedente n Acepta al menos n repeticiones del car cter precedente n o Acepta entre n y n repeticiones del car cter precedente Permite indicar los caracteres especiales Por ejemplo Y representa el car cter circunflejo para que sea tomado como texto y no como c digo especial Por ejemplo la validaci n para un dato tipo D
52. tNamespace http www jorgesanchez net doc gt En este caso XMLSchema usaran el prefijo xs mientras que las etiquetas definidas en el esquema usaran el prefijo doc ya asociado a su espacio por defecto lt xs schema xmins xs http www w3 org 2001 XMLSchema xmins doc http www jorgesanchez net doc xmins img http www jorgesanchez net img targetNamespace http www jorgesanchez net doc http www jorgesanchez net img gt En este caso las etiquetas XMLSchema usaran el espacio por defecto de nombres mientras que se definen dos espacios de nombres asociados a los prefijos doc e img ambos tambi n indicados en el targetNamespace eso indica que el esquema se aplicara a documentos pertenecientes a ambos espacios de nombres La razon de repetir la URI de los espacios de nombres reside en que los atributos xmlins y targetNamespace no sirven para lo mismo el primero declara espacios de nombre y el segundo sirve para indicar a qu tipo de documentos se aplicar n las reglas del esquema Aunque en la pr ctica ciertamente el contenido de ambos atributos se refiera a lo mismo 23 lenguajes de marcas y sistemas de gesti n de informaci n unidad 2 Validaci n XML asociar un esquema a un documento XML Para que un documento XML siga las reglas definidas en un esquema no disponemos de etiqueta DOCTYPE en su lugar utilizamos atributos especiales en el elemento ra z del documento XML Primero al igual que en el docume
53. teros tanto positivos como negativos nonPositivelnteger Basado en integer Representa n meros enteros que no son positivos es decir cero y negativos negativelnteger Basado en integer Representa n meros enteros negativos no vale el cero nonNegativelnteger Basado en integer Representa n meros enteros que no son negativos es decir cero y positivos positivelnteger Representa n meros enteros positivos puros no vale el cero long Basado en integer Representa n meros enteros de alto rango de 9223372036854775898 a 9223372036854775897 Los integer representan n meros a n m s largos unsignedLong Basado en long Representa n meros enteros de alto rango pero usando s lo los positivos y el cero int Representa n meros enteros de medio rango de 2147483648 a 2147483647 unsignedint Representa n meros enteros de medio rango pero usando s lo los positivos y el cero short Representa n meros enteros de bajo rango de 32768 a 32767 unsignedShort Representa n meros enteros de medio rango pero usando s lo la parte positiva de cero a 65535 byte Representa n meros enteros peque os de 128 a 127 unsignedByte Representa n meros enteros peque os positivos de cero a 255 equivalentes a atributos DTD Est n basados en los tipos XML 1 0 y s lo pueden utilizarse en atributos para mantener la compatibilidad con DTD ID IDREF e IDREFS Equivalente a los atributos del mismo tipo de XML 1 0 t
54. tonces se busca al archivo DTD desde el directorio donde se encuentra el archivo XML que queremos validar en el ejemplo el archivo docs dtd debe encontrarse en el mismo directorio que el archivo que contiene ese codigo DOCTYPE En ambos casos se puede a adir c digo DTD para en ese documento concreto a adir instrucciones de validaci n Ejemplo lt DOCTYPE ra z SYSTEM http www empresa com docs dtd lt ELEMENT nombre PCDATA gt gt DTD externo de tipo PUBLIC Se entiende que SYSTEM se utiliza cuando el documento DTD es privado Si se trata de un documento de uso p blico entonces se usa PUBLIC La sintaxis ser a lt DOCTYPE ra z PUBLIC nombreDTD DTD_URL gt La ra z sigue siendo el nombre del elemento ra z El nombreDTD es el nombre p blico que se le da al DTD en cuesti n Si disponemos de un repositorio de DTDs p blicos como ocurre en entornos de trabajo como Oxygene por ejemplo le cargar a sin ir a Internet Si el nombreDTD no es reconocido se usa la direcci n URL para descargarlo y utilizarlo Ejemplo lt DOCTYPE html PUBLIC W3C DTD XHTML 1 0 Strict EN http www w3 org TR xhtml1 DTD xhtml1 strict dtd gt Este es el DOCTYPE para una p gina web escrita en XHTML 1 0 estricto utilizada para validar miles de p ginas web atributo standalone de la etiqueta de cabecera La etiqueta lt xml de cabecera de todo documento XML posee un atributo llamado standalone que puede to
55. torio dtd gt lt directorio gt lt persona nacionalidad Francesa gt Vivian Maret lt persona gt lt persona gt Juan Martin lt persona gt lt directorio gt Entonces para Vivian Maret se ha indicado explicitamente la nacionalidad pero no se ha usado el atributo para Juan Martin por lo que tomar la nacionalidad espa ola 15 lenguajes de marcas y sistemas de gesti n de informaci n unidad 2 Validaci n XML valores fijos Se puede utilizar el t rmino FIXED antes de indicar un valor fijo paraun atributo En ese caso en ning n documento XML se podr modificar dicho atributo Ejemplo lt xml version 1 0 encoding UTF 8 gt lt ELEMENT directorio persona gt lt ELEMENT persona PCDATA gt lt ATTLIST persona nacionalidad CDATA FIXED Espa ola gt El atributo nacionalidad no podra tomar ningun valor que no sea el valor Espanola impidiendo tomar otra nacionalidad En la practica este tipo de atributos no se usa demasiado s lo se usa en el caso de que la presencia o no de dicho atributo en un elemento sea determinante Es el caso del atributo noshade del elemento hr del lenguaje HTML hr sirve para dibujar una l nea en una p gina web la l nea se dibuja en relieve salvo que aparezca el atributo noshade ya que hace que la l nea sea plana Por eso a noshade s lo se le puede dar un valor la propia palabra noshade lt hr noshade noshade gt valores requeridos En este caso se usa la pal
56. tos avanzadas Proporcionan una mayor facilidad para crear validaciones complejas y reutilizables Soportan conceptos avanzados como herencia y sustituci n de tipos desventajas de los esquemas Tr Son m s complejas de entender que las DTD Presentan m s incompatibilidades con software que las DTD No permiten definir entidades Tecnolog as como SAX o DOM tienen utilidades especiales para las DTD pero no para los esquemas 2 3 2 estructura de los esquemas Un esquema es un documento XML al que se le coloca la extensi n xsd Al ser un archivo XML tiene la estructura habitual de todo documento XML con la obligaci n de que el elemento raiz se llame schema etiqueta schema La etiqueta schema identifica la ra z de un documento XML Schema En esta etiqueta se declara el espacio de nombres est ndar que utilizan los esquemas y que permite diferenciar las etiquetas XML del esquema respecto a las del documento XML el cual se puede definir como el espacio de nombres por defecto definir un prefijo xs para l es la forma habitual o bien definir un prefijo xsd Es decir estas tres posibilidades W lt schema xmlns http www w3 org 2001 XMLSchema gt lt xs schema xmlns xs http www w3 org 2001 XMLSchema gt lt xsd schema xmins xsd http www w3 org 2001 XMLSchema gt 22 1 curso de administraci n de sistemas inform ticos en red autor Jorge S nchez www jorgesanchez net A partir de ah l

Download Pdf Manuals

image

Related Search

Related Contents

article presse - Remorques Charnoud  Philips 46677416317 Data Sheet  complete live underwater video camera system VERSION 3  SERVICE MANUAL  Samsung Galaxy A7 用户手册  20:30 - centre chorégraphique national de Caen en Normandie  明書 妻 合栓据付説 渡しください)  Akupressurmatte  

Copyright © All rights reserved.
Failed to retrieve file