Your SlideShare is downloading. ×
Lm xml schema
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Lm xml schema

81
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
81
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Lenguajes de marcas: XMLXML-Schema: 1. Introducción
  • 2. 1. IntroducciónLimitaciones de las DTD.Para definir el contenido uso de PCDATANecesidad de concretar más.Ej: En geografía la localización: latitud, longitud y errorLatitud y longitud: 6 cifras decimales y rangos de -90 a 90 y de-180 a 180El error de localización debe ser un entero no negativo.
  • 3. 1. IntroducciónAsegurar que restricciones como las del ejemplo se cumplen: unmecanismo que asegure la validez de los correspondientesvalores. Un DTD no lo puede hacer.Surgió la idea de generalizar las DTDs utilizando la propiasintaxis XML: Esquemas XML son la alternativa actualPor tanto, para validar un documento XML se recurre a otrosdocumentos llamados Esquemas XML.La idea perseguida es contar con un vocabulario XML quepermita expresar las reglas que estructuran los documentosXML de forma que a partir de los Esquemas se puedan definirunos documentos instancia que usen este vocabulario.
  • 4. 1. IntroducciónPretende:Especificar tanto la estructura de los documentos instanciacomo el tipo de dato de cada elemento/atributo,de forma que por un lado, se dicen cosas del tipo “este elementocontiene tales subelementos, que a su vez contiene estos otros,etc.”,y otras del tipo “este elemento es un entero cuyo rango va de 90 a+90”.
  • 5. 1.2. De una DTD a un esquemaEjemplo de DTD, que identificamos por libreria.dtd
  • 6. 1.2. De una DTD a un esquemaA partir de ella veamos su correspondiente sintaxis comoEsquema : librería.xsd.…………..
  • 7. 1.2. De una DTD a un esquema
  • 8. 1.2. De una DTD a un esquema
  • 9. 1.2. De una DTD a un esquema
  • 10. 1.3. De un XML a un esquemaLos Esquemas se elaboran con el objetivo de obtener un patrónMuchas veces se hace a partir de un determinado documento XMLya usado y probado.El objetivo: tratar de definirlo con la máxima generalidad para queotros documentos se adapten al Esquema obtenido y el documentoque ha servido de muestra acabe siendo una instancia.
  • 11. 1.3. De un XML a un esquemaEj: Documento XMLmiatlas.xml
  • 12. 1.3. De un XML a un esquemaLa DTD correspondiente a este documento es :el resultado de generalizar miatlas.xml a un Esquema XML
  • 13. 1.3. De un XML a un esquemaPara usar este esquema atlas.xsd dentro del documento inicialmiatlas.xml
  • 14. 2. Conceptos de esquemas XMLCaracterísticas:Su elemento raíz es schemaschema incorpora distintos espacios de nombres y atributos.los elementos y tipos de datos usados pertenecen al espacio denombres declarado en :xmlns:xsd=http://www.w3.org/2001/XMLShemacuyo prefijo es xsd (XML Shema Definition ), aunque tambiénse suele usar xd.Por medio de targetNamespace se indican los elementosespecíficos de un determinado espacio de nombres usado por elEsquema, pudiéndose usar un espacio de nombres por defecto.Con el uso de Esquemas se produce un doble proceso de validaciónun documento XML se valida respecto al Esquema yéste a su vez es un documento que se valida de acuerdo conlas reglas del analizador de Esquemas.
  • 15. 2. Conceptos de esquemas XMLCaracterísticas:Los elementos para declarar elementos y atributos son element yattribute.estos elementos y atributos tienen al menos un nombre y untipo de dato debidamente definidos.
  • 16. 2.1 Declaraciones y definicionesPara definir la estructura y tipos de datos que soportadocumento instancia, se usan:los elementos simpleType ( contiene sólo datos y ningún elementohijo )Y complexType ( contiene además elementos hijo y atributos ).Un Esquema es un documento XML que incorpora declaracionesy definiciones.Se declaran los elementos y atributos que se van a representar enel documento instancia,y se definen las componentes que van a ser objeto de uso y no derepresentación, como son los tipos de datos.
  • 17. 2.1 Declaraciones y definicionesUna vez declarados, los elementos y atributos pueden serobjeto de referencias dentro de distintos contextos o ámbitos,cada vez que se quiera referenciar este elemento se recurre alatributo ref de element
  • 18. 3. Espacios de nombres en esquemasEn un Esquema aparece una diversidad de espacios denombres, con funciones distintas en cada caso;En el primer ejemplo, se observa que en atlas.xsd aparecen:Xmlns:xsd=http://www.w3.org/2001/XMLShema:indica que los elementos y tipos de los datos usados ( schema,element, complexType, sequence, string, bolean, integer)provienen del espacio de nombres http://.../XMLShema.targetNamespace=http://www.atlas.org :indica que los elementos definidos en este Esquema concreto (Atlas, Pais, Nombre, Capital, Población, Extensión ) pertenecenal espacio de nombres indicado, que llamaremos de destino(target), y que obviamente se pasa al documento instanciapara su uso correspondiente.
  • 19. 3. Espacios de nombres en esquemasxmlns=http://www.atlas.org :indica el espacio de nombres por defecto del Esquema, queserá : http://www.atlas.org,de forma que cuando aparece una referencia como ref=”Pais”sin ningún prefijo, se sabe que se refiere a la declaración delelemento Pais en este espacio de nombres.En cuanto al documento instancia miatlas.xml:Aparece la declaraciónxmlns:xsi=http://www.w3.org/3001/XMLSchemainstanceque se encarga de pasar del espacio de nombres del Esquemaal espacio de nombres de la instancia: relaciona el documentoinstancia con su correspondiente Esquema.
  • 20. 3. Espacios de nombres en esquemasPor tanto existen espacios de nombres con distintos cometidos :El que define los Esquemas:xmlns:xsd=http://www.w3.org/2001/XMLShema.El ( los ) de destino ( targetNamespace ) específicos del esquemaconstruido al que se refieren los correspondientes documentosinstancia.El “por defecto” que puede ser o no uno de los dos anteriores.El que permite usar el Esquema en el documento instancia.Un Esquema opcionalmente puede especificar un espacio denombres por defecto, por lo que es éste el que está implícitoen cualquier referencia que no incluya ningún prefijo.
  • 21. 3. Espacios de nombres en esquemasEl espacio de nombres por defecto se aplica sólo a referenciasen un Esquemay por tanto estos espacios por defecto no tienen impacto en susdocumentos instancia.Es habitual usar el espacio de nombres indicado portargetNamespace como espacio de nombres por defecto:
  • 22. 3. Espacios de nombres en esquemasRepasemos el encabezado del documento instanciaAl declarar http://www.atlas.org sin prefijo, el resultado pordefecto es indicar al validador de Esquemas donde pertenecenlos elementos usados en esta instancia.A continuación se dice que se usa el espacio de nombres:http://www.w3.org/2001/XMLSchemainstancey finalmente SchemaLocation indica que el espacio de nombreshttp://www.atlas.org está definido en atlas.xsd.
  • 23. 4. Composición de un esquemaA construción dun esquema baséase en catro estruturasprincipais:Declaración de elementos .- Serve para asociar o nome dunelemento a un tipo predefinido, a un tipo simple ou a un tipocomplexo.Declaración de atributos .- Serve para asociar o nome dunatributo a un tipo simple (o valor dos atributos só pode contertexto).
  • 24. 4. Composición de un esquemaDefinición de Tipos simples .- Permítennos definir novos tiposbaseados nos tipos simples predefinidos, aplicándolles certasrestricións.Definición de Tipos complexos .- Serven para definir novostipos de datos cuxos valores constan de atributos e/ou elementos
  • 25. 4.1. Tipos simples predefinidosA continuación podemos ver algúns dos tipos simplesincorporados (primitivos e derivados) máis utilizados.
  • 26. 4.1. Tipos simples predefinidosDebemos ter en conta:Cun número real utilizaremos o punto como separador decimal.O tipo boolean (xs:boolean) permite introducir true ou 1, e false ou0, indistintamente.Cunha data (xs:date) utilizaremos o formato "AAAA-MM-DD".Cunha hora (xs:time) utilizaremos o formato "hh:mm:ss".Cunha data e hora conxuntas (xs:dateTime) utilizaremos o formatoespecificado no estándar ISO-8601. Simplificando, poñeremosprimeiro a data e logo a hora separados por unha T. Por exemplo:2010-04-14T00:19:25
  • 27. 4.2. Declaración dun elementoA declaración dun elemento XML utiliza a etiqueta <xs:element...>.Dependendo da utilización do elemento no documento, podedeclararse dalgún dos seguintes xeitos:Baseados nun tipo predefinidoOs elementos baseados nun tipo simple predefinido só podenconter texto que cumpra as restricións do tipo no que se basea.Non se permiten nin (sub)elementos nin atributos.Ej:
  • 28. 4.2. Declaración dun elementoA declaración dun elemento XML utiliza a etiqueta <xs:element...>.Dependendo da utilización do elemento no documento, podedeclararse dalgún dos seguintes xeitos:Baseados nun tipo predefinidoOs elementos baseados nun tipo simple predefinido só podenconter texto que cumpra as restricións do tipo no que se basea.Non se permiten nin (sub)elementos nin atributos.Ej:
  • 29. 4.2. Declaración dun elementoBaseados nun Tipo Simple definido polo usuarioOs elementos baseados nun tipo simple só poden conter textoque cumpra as restricións impostas polo tipo simple definidopolo usuario.Non se permiten nin (sub)elementos nin atributos.É igual que no caso dos tipos predefinidos (que se considerantipos simples), pero especificando a maiores as condicións quedeben cumprir os datos.A definición do tipo simple pódese realizar no interior dadeclaración do elemento, polo que quedaría oculta ao resto doesquema:
  • 30. 4.2. Declaración dun elementoOu fora, para poder utilizarse en varias declaracións:Baseados nun Tipo Complexo definido polo usuarioCando un elemento conteña atributos e/ou sub-elementos noseu contido, entón será necesario crear un tipo complexo.A declaración dun elemento baseado nun tipo complexo éexactamente igual á dun tipo simple, trocando<xs:simpleType> por <xs:complexType>.A diferenza é, evidentemente, a propia declaración destestipos.
  • 31. 4.2. Declaración dun elementoNa declaración dun elemento <xs:element ... > podemosespecificar diversos atributos que nos permitirán configuralo dexeito adecuado:name: o nome do elemento, o que se usará nos documentos XMLencerrado entre os símbolos <>.type: o nome do tipo de datos do contido do elemento. Como xase comentou pode ser un tipo predefinido, un tipo simple ou untipo complexo.maxOccurs: número máximo de veces que o elemento podeaparecer dentro do elemento que á súa vez o contén.O seu valor debe ser de tipo nonNegativeIntegerou ben a cadea unbounded para que non teña límite.Por defecto é 1.
  • 32. 4.2. Declaración dun elementominOccurs: número mínimo de veces que o elemento debeaparecer dentro do elemento que á súa vez o contén.O seu valor debe ser de tipo nonNegativeInteger.Se especificamos o valor 0 convértese nun elemento opcional.Por defecto é 1.default: é o valor predeterminado para o contido do elemento, seeste non se especifica no documento (non compatible con fixed)fixed: o seu valor é automaticamente asignado ao contido doelemento, sen poder cambiarse no documento (non compatible condefault).
  • 33. 4.2. Declaración dun elementoref: o seu valor é o nome doutro elemento definido no esquema(ou noutro esquema especificando o seu espazo de nomes).Se especificamos este atributo, a definición do elemento nonpode conter ademais os atributos default, fixed ou type (entreoutros), nin conter os elementos <simpleType> ou<complexType>.Ej:
  • 34. 4.3 Declaración de tipos simplesPermítennos definir novos tipos baseados nos tipos simplespredefinidos, aplicándolles certas restricións.O seu valor sempre é de tipo texto e non poden conter marcas(<>) doutros elementos, nin atributos.Existen tres mecanismos para crear tipos simples baseados entipos simples predefinidos ou á súa vez noutros tipos simples:restricións,listas eunións.
  • 35. 4.3 Declaración de tipos simples:RestricciónsAo definir un tipo simple podemos especificar, non só o tipo dedato que se espera no contido dos elementos e os atributos,senón unha gran variedade de restricións.As restricións sempre se aplican sobre un tipo existente(denominado tipo base), e permiten restrinxir o conxunto dosseus posibles valores.A súa sintaxe é a seguinte.
  • 36. 4.3 Declaración de tipos simples:RestricciónsAs posibles restricións sobre un tipo base son:length: lonxitude da cadea ou número de elementos da listaminLength: lonxitude mínimamaxLength: lonxitude máximapattern: encaixar cunha expresión regularenumeration: os valores do tipo só poden ser os especificadoswhiteSpace: controla a normalización dos espazos brancos (tabs, etc.)maxInclusive: valor superior incluídomaxExclusive: valor superior excluídominInclusive: valor inferior incluídominExclusive: valor inferior excluídototalDigits: máximo número de díxitos (nos tipos numéricos)fractionDigits: máximo número de díxitos decimales
  • 37. 4.3 Declaración de tipos simples:RestricciónsDependendo do tipo base poderáselle aplicar un posibleconxunto de restricións.Por exemplo, as restricións sobre un tipo string son: length,minLength, maxLength, pattern, enumeration e whitespace.As restricións sobre un tipo de datos integer son: totalDigits,pattern, whitespace, enumeration, maxInclusive, maxExclusive,minInclusive e minExclusive.
  • 38. 4.3 Declaración de tipos simples:Restriccións. EjemplosNota de la primera evaluación entre 1 y 10Nivel bajo medio o altoMatrícula tipo 1111CFSCódigo cliente de 8 caracteresCódigo cliente de 8 caracteres que sean o letras o numeros sóloNombre de usuario que tenga entre 6 y15 digitos.
  • 39. 4.3 Declaración de tipos simples:Restriccións. Ejemplos
  • 40. 4.3 Declaración de tipos simples:Restriccións. Ejemplos
  • 41. 4.3 Declaración de tipos simples:Listas.Unha lista consiste nunha secuencia de valores dun certo tipo,separada por espazos.Ej:
  • 42. 4.3 Declaración de tipos simples:Listas.As listas non sempre son un bo recurso debido a que se perdenas vantaxes do formato XML.Adoita ser mellor idea:
  • 43. 4.3 Declaración de tipos simples:Unións.Unha unión é unha estrutura que nos pemite unir nun único tipovalores con distintos tipos de datos.A súa sintaxe é.
  • 44. 4.3 Declaración de tipos simples:Unións.Ej:
  • 45. 4.4 Tipos complejosSon aqueles elementos XML que, ademais de poder teratributos, o seu contido pode ter outros elementos e/ou contidotextual
  • 46. 4.4 Tipos complejosDECLARACIÓN DE ATRIBUTOS DENTRO DE UN ELEMENTO DETIPO COMPLEJODebido a que os atributos só poden igualarse a valores de tiposimple, a súa definición poderase facer dos seguintes xeitos
  • 47. 4.4 Tipos complejosEjemplo:
  • 48. 4.4 Tipos complejosEjemplo:
  • 49. 4.4 Tipos complejosDECLARACIÓN DE ELEMENTOS CON SUBELEMENTOSO contido dun elemento pode conter á súa vez outroselementos.Para especificar as súas características podemos utilizar algunhadas seguintes estruturas:a estrutura <xs:sequence>a estrutura <xs:all>a estrutura <xs:choice>a estrutura <xs:any>
  • 50. 4.4 Tipos complejosDECLARACIÓN DE ELEMENTOS CON SUBELEMENTOSSecuencia ordenada: a estrutura <xs:sequence>Todos os elementos que conteña a estrutura terán que ir nodocumento na orde indicada.Ejemplo:
  • 51. 4.4 Tipos complejosDECLARACIÓN DE ELEMENTOS CON SUBELEMENTOSSecuencia desordenada: a estrutura <xs:all>Similar á anterior pero onde todos os elementos que conteña aestrutura terán que aparecer, aínda que non importa a súa orde.A diferenza da estrutura anterior, os elementos deben aparecercomo máximo unha vez, é dicir, o atributo minOccurs doselementos só pode estar a 0 ou a 1 e maxOccurs só pode estar a 1(si se especifica).
  • 52. 4.4 Tipos complejosDECLARACIÓN DE ELEMENTOS CON SUBELEMENTOSSecuencia ordenada: a estrutura <xs:choice>Elixirase un só dos elementos indicados dentro da estrutura.Ejemplo:
  • 53. 4.4 Tipos complejosDECLARACIÓN DE ELEMENTOS CON SUBELEMENTOSSecuencia desordenada: a estrutura <xs:any>A estrutura <xs:any> permite que o esquema acepte nese lugarcalquera elemento e o seu contido.Ten atributos para, por exemplo, aceptar únicamente elementos decertos espazos de nomes, ou ben que a validación sexa máis oumenos ríxida en devanditos contidos.
  • 54. 4.4 Declaración de tipos complejos:Ej: