Transcript Internet

3a. XML: DTD y XML Schema
Gestión de Sistemas en Internet
Universidad Antonio de Nebrija, 2003/04
Justo N. Hidalgo Sanz
Por qué XML
08/07/2015
Internet - XML
2
Definición


eXtensible Markup Language
Lenguaje de marcas basado en texto.
– Proviene de SGML.

Las etiquetas se utilizan para identificar datos.
 Marcas (markup): conjunto de etiquetas.
 <message>
–
–
–
–

<to>[email protected]</to>
<from>[email protected]</from>
<subject>Aprendizaje de XML</subject>
<text>Hoy comienza el capítulo de XML</text>
</message>
08/07/2015
Internet - XML
3
Características

Las etiquetas pueden contener atributos:
– <message [email protected][email protected]
– subject=“Aprendizaje de XML">
– <text>Hoy comienza el capítulo de XML</text>
– </message>

Un documento XML ha de estar bien formado.
 Empty tags: <flag/>
 Comentarios: <!-- comentario -->
08/07/2015
Internet - XML
4
Importancia de XML






Texto plano.
Identificación de datos: la jerarquía lo permite.
Estilo: XSL (eXtensible Stylesheet Language).
Traduce tags XML a otros tags XML.
Mucha capacidad de enlace.
Fácil procesamiento debido a que está bien
formado.
Jerárquica.
08/07/2015
Internet - XML
5
Posibles usos de XML

Procesado de datos tradicional
– Integración de sistemas

Programación basada en documentos
– Generalización máxima de las aplicaciones

Archivo
– Almacenamiento de información

Binding
– Almacenamiento de objetos
08/07/2015
Internet - XML
6
Especificaciones (I)

Recomendaciones W3C
– SAX (Simple API for XML)
 Acceso serializado a XML.
 Orientado a eventos.
– DOM (Document Object Model)
 Convierte un doc. XML en un árbol.
– DTD (Document Type Definition)
 Especifica los tipos de etiquetas que se pueden utilizar en un
documento XML.
– RDF
– Namespaces
– XSL
08/07/2015
Internet - XML
7
Especificaciones (II)

Especificaciones propuestas W3C
– RDF schema.

Working drafts W3C
– XLL (XML Link Language)


Xlink
Xpointer
– XHTML: HTML avanzado.
– XML Schema: DTD más avanzado.
08/07/2015
Internet - XML
8
Especificaciones (III)

“Notas” W3C
– Schema proposals: los DTDs no son jerárquicos.





!ELEMENT mailAddress (name, address, zipcode)>
!ELEMENT name (#PCDATA)>
!ELEMENT address (#PCDATA)>
!ELEMENT zipcode (#PCDATA)>
Si hiciera falta otro “name”...
– DDML/Xschema (Document Definition Markup Language)
– DCD (Document Content Description)
– SOX (Schema for Object-oriented XML)
08/07/2015
Internet - XML
9
Especificaciones (y IV)

Integración y comercio electrónico
– ICE (Information and Content Exchange)
– ebXML (Electronic Business with XML)
– cxml (Commerce XML)
– CBML (Common Business Library)
– UBL (Universal Business Library)
08/07/2015
Internet - XML
10
Escritura de un fichero XML (I)


Datos XML para una representación de
diapositivas.
Pasos:
1.
2.
Crear el fichero “slideSample.xml”
Escribir la declaración que identifica al fichero como
documento XML.
1.
<?xml version='1.0' encoding='us-ascii'?>.
1. ASCII US de 8 bits.
2. No se especifica como documento “standalone”, el parser
asume que puede contener referencias a otros documentos.
3.
08/07/2015
Añadir los comentarios adecuados.
Internet - XML
11
Escritura (II)

Todo fichero XML define un solo elemento (root):
el resto ha de estar contenido.
(<slideshow>...</slideshow>)
 Adición de atributos: características de un
elemento que no requieren ningún tipo de
estructura.
– <slideshow



title="Sample Slide Show“
date="Date of publication“
author="Yours Truly">
– </slideshow>
08/07/2015
Internet - XML
12
Escritura (y III)
<?xml version='1.0'
encoding='us-ascii'?>
<!-- A SAMPLE set of slides -->
<slideshow
<!-- OVERVIEW -->
<slide type="all">
title="Sample Slide Show“
date="Date of publication“
author=“[email protected]">
<title>Introduccion</title>
<!-- TITLE SLIDE -->
<item>Quien <em>necesita</em>
XML</item>
<slide type="all">
<title>¡Esto es XML!</title>
</slide>
08/07/2015
<item>XML es <em>util</em></item>
<item/>
</slide>
</slideshow>
Internet - XML
13
Esquemas

Todo XML tiene una estructura implícita.
 Si se conoce de antemano, XML sirve de
comunicación entre sistemas:
– METADATOS (información sobre los datos)

En la actualidad, existen dos esquemas:
– DTD
– XMLSchema
08/07/2015
Internet - XML
14
DTD (I)

Document Type Definition
– El prolog puede incluir un DTD
– Elementos: <!ELEMENT nombre_elemento
contenidos_válidos_elemento>
– Cualificadores:



?: opcional (0 ó 1)
*: 0 ó más.
+: 1 ó más.
– <!ELEMENT slideshow (slide+)>
08/07/2015
Internet - XML
15
DTD (II)

Texto y nested elements
– <!ELEMENT slideshow (slide+)>
– <!ELEMENT slide (title, item*)>
– <!ELEMENT title (#PCDATA)>
– <!ELEMENT item (#PCDATA | item)*>

PCDATA: parsed character data.
 CDATA: no “parseado”.
 Última línea: XML mixed-content model.
08/07/2015
Internet - XML
16
DTD (III)

Valores especiales de elementos:
– EMPTY: el elemento no tiene contenido.
– ANY: puede contener cualquier otro elemento
definido, o PCDATA.

Referencia de DTDs:
– <!DOCTYPE slideshow SYSTEM
"slideshow.dtd">
08/07/2015
Internet - XML
17
DTD (IV): definición de
atributos

Es útil definir qué valores son válidos para
cada atributo.
– <!ELEMENT slideshow (slide+)>
– <!ATTLIST slideshow
 title
CDATA #REQUIRED
 date
CDATA #IMPLIED
 author CDATA
"unknown">
– <!ELEMENT slide (title, item*)>
08/07/2015
Internet - XML
18
DTD (V)
1.
Tipo de dato:
1.
2.
3.
4.
5.
6.
7.
8.
08/07/2015
(valor1 | valor2 | ...): lista de valores separados.
CDATA
ID: nombre no compartido por otro atributo ID.
IDREF: referencia a un ID definido en otra parte del documento.
IDREFS: lista separada por espacios.
ENTITY: nombre de una entidad definida en el DTD.
ENTITIES.
NMTOKEN: nombre válido XML compuesto por letras,
números, etc.
Internet - XML
19
DTD (VI)
1.
2.
2.
NMTOKENS.
NOTATION: formato de datos no XML, como los utilizados
para ficheros de imágenes.
<!ATTLIST slide type (tech | exec | all) #IMPLIED>
Valor por defecto, o si el atributo se requiere o
no.
1.
2.
3.
4.
08/07/2015
#REQUIRED: el valor ha de ser especificado en el doc.
#IMPLIED: Si el valor no se especifica, tendrá uno por defecto.
“default”: valor por defecto.
#FIXED “fixed”: valor a utilizar; si el documento especifica
algún valor, ha de ser ESE.
Internet - XML
20
DTD (VII): referencia a
entidades externas

<!DOCTYPE slideshow SYSTEM
"slideshow.dtd" [
– <!ENTITY product "WonderWidget">
– <!ENTITY products "WonderWidgets">
– <!ENTITY copyright SYSTEM "copyright.xml">]>
<!ENTITY currentDate SYSTEM
"http://www.example.com/servlet/CurrentDate?fm
t=dd-MMM-yyyy">
 <!ENTITY % xhtml SYSTEM "xhtml.dtd">
%xhtml;

08/07/2015
Internet - XML
21
DTD (y VIII): ejemplo

Ajedrez
08/07/2015
Internet - XML
22
XMLSchema (I)

DTD no es un gran sistema de generación
de ficheros XML:
– No es orientado a objetos.
– No permite redefinición de elementos.
– Pobre en cuanto a definición de datos, rangos y
restricciones.
08/07/2015
Internet - XML
23
XMLSchema (II)

XMLSchema es un sistema más complejo.
– Usan sintaxis de XML, al contrario
que los DTDs.
– Permiten especificar los tipos de
datos.
– Son extensibles.
08/07/2015
Internet - XML
24
XMLSchema (y III)

Inicialmente propuesto por Microsoft.
 Recomendación oficial de la W3C desde
Mayo de 2001.
08/07/2015
Internet - XML
25
XMLSchema. Ejemplo Simple (I)

XML:
<?xml version="1.0"?>
<note>
<to>Churri</to>
<from>Fresita</from>
<heading>Recordatorio</heading>
<body>¡Estoy en Gran
Hermano!</body>
</note>
08/07/2015
Internet - XML
26
XMLSchema. Ejemplo Simple (II)

DTD:
<!ELEMENT
heading,
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
08/07/2015
note (to, from,
body)>
to (#PCDATA)>
from (#PCDATA)>
heading (#PCDATA)>
body (#PCDATA)>
Internet - XML
27
XMLSchema. Ejemplo Simple (y III)

XML Schema (.xsd)
<?xml version="1.0"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
08/07/2015
Internet - XML
28
XMLSchema: elemento Schema
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">

xmlns:xs: los elementos y tipos de datos provienen del
espacio de nombrado de la w3c.
 targetNamespace: espacio de nombrado de lo definido
aquí.
 xmlns: espacio de nombrado por defecto.
 elementFormDefault: todos los elementos han de
pertenecer a un espacio de nombrado.
08/07/2015
Internet - XML
29
XMLSchema. Referencias (I)

Referencia a un DTD:
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM
"http://www.w3schools.com/dtd
/note.dtd">
08/07/2015
Internet - XML
30
XMLSchema. Referencias (II)

Referencia a un XSD:
<?xml version="1.0"?>
<note
xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xsi:schemaLocation="http://www.w3schools.com
note.xsd">
<to>Churri</to>
08/07/2015
Internet - XML
31
XMLSchema. Referencias (y III)

xmlns: espacio de nombrado por defecto.
 xmlns:xsi: espacio de nombrado de la
instancia XMLSchema.
 xsi:schemaLocation: dos atributos:
– Espacio de nombrado a utilizar.
– Localización del XML Schema.
08/07/2015
Internet - XML
32
XMLSchema. Restricciones
en valores (I)
<xs:element name="age">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
08/07/2015
Internet - XML
33
XMLSchema. Restricciones
en valores (II)
<xs:element name="car">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Audi"/>
<xs:enumeration value="Golf"/>
<xs:enumeration value="BMW"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
08/07/2015
Internet - XML
34
XMLSchema. Restricciones
en valores (III)
<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
08/07/2015
Internet - XML
35
XMLSchema. Restricciones
en valores (IV)
<xs:element name="initials">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z][A-Z][A-Z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
08/07/2015
Internet - XML
36
XMLSchema. Restricciones
en valores (V)
<xs:element name="prodid">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:pattern value="[0-9][0-9][0-9][09][0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
08/07/2015
Internet - XML
37
XMLSchema. Restricciones
en valores (VI)
<xs:element name="gender">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="male|female"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
08/07/2015
Internet - XML
38
XMLSchema. Restricciones
en valores (VII)
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9]{8}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
08/07/2015
Internet - XML
39
XMLSchema. Restricciones
en valores (VIII)
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
08/07/2015
Internet - XML
40
XMLSchema. Restricciones
en valores (y IX)
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="5"/>
<xs:maxLength value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
08/07/2015
Internet - XML
41
XMLSchema: elementos
complejos (I)
<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname"
type="xs:string"/>
<xs:element name="lastname"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
08/07/2015
Internet - XML
42
XMLSchema: elementos
complejos (y II)
<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
<xs:complexContent>
<xs:extension base="personinfo">
<xs:sequence>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
08/07/2015
Internet - XML
</xs:complexType>
43
XMLSchema: elementos
vacíos (I)
<xs:element name="product">
<xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:integer">
<xs:attribute name="prodid"
type="xs:positiveInteger"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:element>
08/07/2015
Internet - XML
44
XMLSchema: elementos
vacíos (y II)

Lo mismo, pero más compacto:
<xs:element name="product">
<xs:complexType>
<xs:attribute name="prodid"
type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>

o:
<xs:element name="product" type="prodtype"/>
<xs:complexType name="prodtype">
<xs:attribute name="prodid"
type="xs:positiveInteger"/>
</xs:complexType>
08/07/2015
Internet - XML
45
XMLSchema: mixed content (I)

Elemento que puede contener atributos,
elementos y texto.
 Ejemplo:





<letter>
Querida <name>Fresita</name>.
Tu pedido <orderid>1032</orderid>
, de fresas silvestres se enviará el
<shipdate>2001-07-13</shipdate>.
</letter>
08/07/2015
Internet - XML
46
XMLSchema: mixed content (y II)
<xs:element name="letter">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="orderid"
type="xs:positiveInteger"/>
<xs:element name="shipdate"
type="xs:date"/>
</xs:sequence>
</xs:complexType>
</xs:element>
08/07/2015
Internet - XML
47
XMLSchema: Any (I)
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname"
type="xs:string"/>
<xs:element name="lastname"
type="xs:string"/>
<xs:any minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
08/07/2015
Internet - XML
48
XMLSchema: Any (II)
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">
<xs:element name="children">
<xs:complexType>
<xs:sequence>
<xs:element name="childname" type="xs:string"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
08/07/2015
Internet - XML
49
XMLSchema: Any (y III)

Es admisible:
<?xml version="1.0" encoding="ISO-8859-1"?>
<persons xmlns="http://www.microsoft.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:SchemaLocation="http://www.microsoft.com family.xsd
http://www.w3schools.com children.xsd">
<person>
<firstname>Hege</firstname>
<lastname>Refsnes</lastname>
<children>
<childname>Cecilie</childname>
</children>
</person>
<person>
<firstname>Stale</firstname>
<lastname>Refsnes</lastname>
</person>
</persons>
08/07/2015
Internet - XML
50
XMLSchema. Otro ejemplo
<?xml version="1.0" encoding="UTF-8"?>
<book isbn="0836217462">
<title>
Being a Dog Is a Full-Time Job
</title>
<author>Charles M. Schulz</author>
<character>
<name>Snoopy</name>
<friend-of>Peppermint Patty</friend-of>
<since>1950-10-04</since>
<qualification>
extroverted beagle
</qualification>
</character>
<character>
<name>Peppermint Patty</name>
<since>1966-08-22</since>
<qualification>bold, brash and tomboyish</qualification>
</character>
</book>
08/07/2015
Internet - XML
51
XMLSchema: opción A
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="author" type="xs:string"/>
<xs:element name="character" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="friend-of" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="since" type="xs:date"/>
<xs:element name="qualification" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="isbn" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:schema>
08/07/2015
Internet - XML
52
XMLSchema: opción B (I)
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- definition of simple type elements -->
<xs:element name="title" type="xs:string"/>
<xs:element name="author" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="friend-of" type="xs:string"/>
<xs:element name="since" type="xs:date"/>
<xs:element name="qualification" type="xs:string"/>
<!-- definition of attributes -->
<xs:attribute name="isbn" type="xs:string"/>
08/07/2015
Internet - XML
53
XMLSchema: opción B (II)
<!-- definition of complex type elements -->
<xs:element name="character">
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:element ref="friend-of" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element ref="since"/>
<xs:element ref="qualification"/>
<!-- the simple type elements are referenced using
the "ref" attribute
-->
<!-- the definition of the cardinality is done
when the elements are referenced
-->
</xs:sequence>
</xs:complexType>
</xs:element>
08/07/2015
Internet - XML
54
XMLSchema: opción B (y III)
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element ref="title"/>
<xs:element ref="author"/>
<xs:element ref="character" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="isbn"/>
</xs:complexType>
</xs:element>
</xs:schema>
08/07/2015
Internet - XML
55
XMLSchema: opción C (I)
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- definition of simple types -->
<xs:simpleType name="nameType">
<xs:restriction base="xs:string">
<xs:maxLength value="32"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="sinceType">
<xs:restriction base="xs:date"/>
</xs:simpleType>
<xs:simpleType name="descType">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType name="isbnType">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{10}"/>
</xs:restriction>
</xs:simpleType>
08/07/2015
Internet - XML
56
XMLSchema: opción C (II)
<!-- definition of complex types -->
<xs:complexType name="characterType">
<xs:sequence>
<xs:element name="name" type="nameType"/>
<xs:element name="friend-of" type="nameType"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="since" type="sinceType"/>
<xs:element name="qualification" type="descType"/>
</xs:sequence>
</xs:complexType>
<!-- Reference to "bookType" to define the
"book" element -->
<xs:element name="book" type="bookType"/>
</xs:schema>
08/07/2015
Internet - XML
57
XMLSchema: opción C (y III)
<xs:complexType name="bookType">
<xs:sequence>
<xs:element name="title" type="nameType"/>
<xs:element name="author" type="nameType"/>
<xs:element name="character" type="characterType"
minOccurs="0"/>
<!-- the definition of the "character" element is
using the "characterType" complex type
-->
</xs:sequence>
<xs:attribute name="isbn" type="isbnType" use="required"/>
</xs:complexType>
08/07/2015
Internet - XML
58
XMLSchema: grupos (I)
<!-- definition of an element group -->
<xs:group name="mainBookElements">
<xs:sequence>
<xs:element name="title" type="nameType"/>
<xs:element name="author" type="nameType"/>
</xs:sequence>
</xs:group>
<!-- definition of an attribute group -->
<xs:attributeGroup name="bookAttributes">
<xs:attribute name="isbn" type="isbnType" use="required"/>
<xs:attribute name="available" type="xs:string"/>
</xs:attributeGroup>
08/07/2015
Internet - XML
59
XMLSchema: grupos (y II)
<xs:complexType name="bookType">
<xs:sequence>
<xs:group ref="mainBookElements"/>
<xs:element name="character"
type="characterType" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="bookAttributes"/>
</xs:complexType>
08/07/2015
Internet - XML
60
XMLSchema: choice
<xs:group name="nameTypes">
<xs:choice>
<xs:element name="name" type="xs:string"/>
<xs:sequence>
<xs:element name="firstName” type="xs:string"/> <xs:element
name="middleName” type="xs:string" minOccurs="0"/>
<xs:element name="lastName" type="xs:string"/>
</xs:sequence>
</xs:choice>
</xs:group>
08/07/2015
Internet - XML
61
XMLSchema: all (I)
<xs:complexType name="bookType">
<xs:all>
<xs:element name="title” type="xs:string"/>
<xs:element name="author” type="xs:string"/>
<xs:element name="character" type="characterType"
minOccurs="0" maxOccurs="unbounded"/>
</xs:all>
<xs:attribute name="isbn” type="isbnType” use="required"/>
</xs:complexType>
08/07/2015
Internet - XML
62
XMLSchema: all (y II)
Sólo puede aparece como hijo único en el
root del modelo de contenidos.
Sus hijos sólo pueden ser definiciones
xs:element o referencias. No pueden tener
cardinalidad mayor que uno.
08/07/2015
Internet - XML
63
XMLSchema: tipos simples

Los más comunes:
 xs:string
 xs:decimal
 xs:integer
 xs:boolean
 xs:date
 xs:time
08/07/2015
Internet - XML
64
XMLSchema: derivación de tipos
simples (I)
<xs:simpleType name="isbnType">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{10}"/>
</xs:restriction>
</xs:simpleType>
...
08/07/2015
Internet - XML
65
XMLSchema: derivación de tipos
simples (y II)
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="TBD"/>
<xs:enumeration value="NA"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
08/07/2015
Internet - XML
66
XMLSchema: tipos numéricos

byte
 decimal
 int
 integer
 long
 negativeInteger
 nonNegativeInteger
08/07/2015

nonPositiveInteger
 positiveInteger
 short
 unsignedLong
 unsignedInt
 unsignedShort
 unsignedByte
Internet - XML
67
Bibliografía






JavaTM Technology and XML. Part 1 -- An
Introduction to APIs for XML Processing. Thierry
Violleau.
http://www.javasoft.com
http://www.w3c.org
Professional Java Server Programming, Wrox.
http://www.w3schools.com/schema (muy bueno)
http://www.w3.org/TR/2001/REC-xmlschema-120010502/
08/07/2015
Internet - XML
68