• No se han encontrado resultados

Relax NG. Pablo Prol Sobrado Alexandre Ramilo Conde

N/A
N/A
Protected

Academic year: 2021

Share "Relax NG. Pablo Prol Sobrado Alexandre Ramilo Conde"

Copied!
19
0
0

Texto completo

(1)

Relax NG

Pablo Prol Sobrado

(2)

Índice

1. Introducción

2. Relax NG

a. ¿Qué es Relax NG?

b. Diferencias y similitudes

c. Modelo de datos

d. Sintaxis XML vs. compacta

3. Elementos

4. Referencias

(3)

1. Introducción

● Validación XML: ¿Cómo?

● Varias soluciones:

○ DTD

○ XML Schemas (XSD)

○ Relax NG

(4)

2a. ¿Qué es Relax NG?

● Lenguaje de esquema XML basado en

gramática

● Fusión de RELAX y TREX

● Especifica un modelo de:

○ Estructura

○ Contenido

● En comparación, es simple

● Documento = Objeto

(5)

2b. Diferencias y similitudes

● Simplifica DTDs en general y XSDs en

particular

● No es oficial de W3C, ni siquiera una

recomendación

● No tiene <simpleType> ni <complexType>

● No tiene <minOccurs> ni <maxOccurs>

● Posee elementos y etiquetas especiales

(Número requerido de apariciones, tipo de

dato de un elemento...)

● Similitudes: Tipos de datos, expresiones

regulares, namespaces

(6)

2c. Modelo de datos

Un elemento consta de:

● Nombre

● Contexto

● Conjunto de atributos

(7)

2d. Sintaxis XML vs. compacta

Sintaxis XML

<element name="date"

xmlns="http://relaxng.org/ns/structure/1.0">

<text />

</ element>

Sintaxis compacta

element date { text }

(8)

3. Elementos

● <element>

○ Debe de tener la keyword

name

○ <element name="date"></ element>

○ element date { }

● <attribute>

○ En sintaxis XML,

text

es hijo por defecto

○ <attribute name="type" />

○ En sintaxis compacta, necesita la keyword

text

(9)

3. Elementos

● <empty>

○ Pueden tener atributos, pero no texto ni hijos

○ Si no hay atributos en un elemento, se debe

especificar

○ <element name="date"><empty /></ element>

○ element date { empty }

namespace

○ <element name="date"

ns="http://www.example.com/ns" xmlns="http://relaxng.

org/ns/structure/1.0">

(10)

3. Elementos

● <optional> = ? (En DTD y compacta)

● <oneOrMore> = + (En DTD y compacta)

● <zeroOrMore> = * (En DTD y compacta)

● <choice> = | (En DTD y compacta)

(11)

3. Elementos

<element name="dates"> <choice>

<group>

<element name=day"><text /></ element> <element name="month"><text /></ element> </ group>

<oneOrMore>

<element name="date"><text /></ element> </ oneOrMore>

</ choice> </ element>

element dates { (element day { text }, element month { text }) | element date { text }* }

(12)

3. Elementos

● <define>

○ Similar al complexType

○ Sin conflictos por culpa de nombres (Entre definición

y elemento, p.ej.)

○ <define name="date">

<element name="day"><text />< /element>

<element name="month"><text />< /element>

</ define>

○ date = element day { text }, element month { text }

○ Si se emplea, también se debe usar <grammar> y

<start>

(13)

3. Elementos

● <grammar>

○ Al usar <define>, se convierte en el elemento

principal del schema

● <start>

○ Similar a DOCTYPE

<grammar xmlns="http://relaxng.org/ns/structure/1.0"> <start> <ref name="date" /> </ start> <define name="date"> </ define> </ grammar>

(14)

3. Elementos

Datatypes

○ Soporte para tipos de datos en librerías externas

<element name="year" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <data type="gYear"> <param name="minInclusive">2002</param> <param name="maxInclusive">2005</param> </data> </element>

(15)

3. Elementos

● Enumeraciones

<element name="day" xmlns="http://relaxng.org/ns/structure/1.0"> <choice> <value>m</value> <value>w</value> <value>f</value> </choice> </element> element day { "m" | "w" | "f" }

(16)

3. Elementos

● Listas

<element name="vertex" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <list> <data type="float"/> <data type="float"/> <data type="float"/> </list> </element>

(17)

4. Referencias

● Web de Relax NG (

http://relaxng.org/

)

● Especificación de Relax NG en Oasis (

https:

//www.oasis-open.org/committees/relax-ng/spec-20010811.html

)

● Validación XML en la Wikipedia en español

(

http://es.wikipedia.org/wiki/Validaci%C3%

B3n_XML

)

● Relax NG en la Wikipedia en inglés (

http:

//en.wikipedia.org/wiki/RELAX_NG

)

(18)

4. Referencias

● "Relax NG" de

Eric van der Vlist

(

http:

//books.xmlschemata.org/relaxng/page2.

html

)

● "Relax NG, A Schema Language for XML"

de

Michael Fitzgerald

(

http://www.slideshare.

net/booksoverdue/relax-ng-a-schema-language-for-xml

)

● "XML Schema y DTDs" de

Luis Alvarado

(

http://www.programacion.

(19)

Relax NG

Pablo Prol Sobrado

Alexandre Ramilo Conde

¡Gracias por vuestra atención!

¿Preguntas?

Referencias

Documento similar

Debido al riesgo de producir malformaciones congénitas graves, en la Unión Europea se han establecido una serie de requisitos para su prescripción y dispensación con un Plan

Como medida de precaución, puesto que talidomida se encuentra en el semen, todos los pacientes varones deben usar preservativos durante el tratamiento, durante la interrupción

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

En nuestra opinión, las cuentas anuales de la Entidad Pública Empresarial Red.es correspondientes al ejercicio 2010 representan en todos los aspectos significativos la imagen fiel

En nuestra opinión, las cuentas anuales de la Entidad Pública Empresarial Red.es correspondientes al ejercicio 2012 representan en todos los aspectos

La Intervención General de la Administración del Estado, a través de la Oficina Nacional de Auditoría, en uso de las competencias que le atribuye el artículo 168

La Intervención General de la Administración del Estado, a través de la Oficina Nacional de Auditoría, en uso de las competencias que le atribuye el artículo

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de