XML Schema

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    XML Schema - Presentation Transcript

    1. XML Schema Carlos Castillo [email_address] Departamento de Ciencias de la Computacion Facultad de Ciencias Fisicas y Matematicas Universidad de Chile
    2. “Data-oriented” XML
      • <?xml version=”1.0”?>
        • <invoice>
        • <orderDate>1999-01-21</orderDate>
        • <shipDate>1999-01-25</shipDate>
        • <billingAddress>
        • <name>Ashok Malhotra</name>
        • <street>123 Microsoft Ave.</street>
        • <city>Hawthorne</city>
        • <state>NY</state>
        • <zip>10532-0000</zip>
        • </billingAddress>
        • <voice>555-1234</voice>
        • <fax>555-4321</fax>
        • </invoice>
      factura.xml
    3. “Document-oriented” XML
      • <?xml version=”1.0”?>
        • <memo importance='high'
        • date='1999-03-23'>
        • <from>Paul V. Biron</from>
        • <to>Ashok Malhotra</to>
        • <subject>Latest draft</subject>
        • <body>
        • We need to discuss the latest
        • draft <emph>immediately</emph>.
        • Either email me at <email>
        • mailto:paul.v.biron@kp.org</email>
        • or call <phone>555-9876</phone>
        • </body>
        • </memo>
      memo.xml
    4. Propósito lenguaje schema
      • Describir estructura
        • Anidación
        • Multiplicidad
        • Ordenamiento
      • Describir tipos
        • Para velocidad operatoria
        • Para mejor almacenamiento
        • Para busquedas
        • Para ingreso de datos
        • Para detectar errores (ej.: numeros, etc.)
    5. Requerimientos Schema
      • Fácil de usar
      • Expresivo
        • Orientado a estructura (DTD) v/s restricciones (Schematron)
      • Poder como mínimo emular razgos de las bases de datos relacionales
        • Llaves primarias
        • Llaves secundarias
        • Tipos nativos de las BD relacionales
    6. Jerarquía de lenguajes
    7. Características XML Schema
      • Sintaxis en XML
      • Espacios de nombres, includes
      • 45 tipos nativos
      • Tipos de usuario, Tipos complejos
      • Secuencias, Multiplicidad
      • Llaves primarias, unicidad
      • Llaves secundarias
    8. Ejemplo simple XML Schema <?xml version=&quot;1.0&quot;?> <xsd: schema xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns=&quot;http://www.example.com&quot; targetNamespace=&quot;http://www.example.com&quot; elementFormDefault=&quot;qualified&quot;> <xsd: element name =&quot;note&quot;> <xsd: complexType > <xsd: sequence > <xsd:element name=&quot;to&quot; type =&quot;xsd:string&quot;/> <xsd:element name=&quot;from&quot; type=&quot;xsd:string&quot;/> <xsd:element name=&quot;heading&quot; type=&quot;xsd:string&quot;/> <xsd:element name=&quot;body&quot; type=&quot;xsd:string&quot;/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> note.xsd
    9. Ejemplo simple XML Schema + doc. <xsd:element name=&quot;note&quot;> <xsd:complexType> <xsd:sequence> <xsd:element name=&quot;to&quot; type=&quot;xsd:string&quot;/> <xsd:element name=&quot;from&quot; type=&quot;xsd:string&quot;/> <xsd:element name=&quot;heading&quot; type=&quot;xsd:string&quot;/> <xsd:element name=&quot;body&quot; type=&quot;xsd:string&quot;/> </xsd:sequence> </xsd:complexType> </xsd:element note.xsd <?xml version=”1.0”?> <note> < to >Juan</ to > < from >Miguel</ from > < heading >Llama a X</ heading > < body >X te busca urgente</ body > </note> note.xml
    10. XML Schema v/s DTD, 1/2 <xsd:element name=&quot;note&quot;> <xsd:complexType> <xsd:sequence> <xsd:element name=&quot;to&quot; type=&quot;xsd:string&quot;/> <xsd:element name=&quot;from&quot; type=&quot;xsd:string&quot;/> <xsd:element name=&quot;heading&quot; type=&quot;xsd:string&quot;/> <xsd:element name=&quot;body&quot; type=&quot;xsd:string&quot;/> </xsd:sequence> </xsd:complexType> </xsd:element note.xsd <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> note.dtd
    11. XML Schema v/s DTD, 2/2 <xsd:element name=&quot;note&quot;> <xsd:complexType> <xsd:sequence> <xsd:element name=&quot;to&quot; type=&quot;xsd:string&quot;/> <xsd:element name=&quot;priority&quot; type=&quot; xsd:integer &quot;/> <xsd:element name=&quot;heading&quot;> <xsd:simpleType> <xsd:restriction base=&quot;xsd:string&quot;> <xsd:maxLength value=&quot;10&quot;/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name=&quot;body&quot; type=&quot;xsd:string&quot;/> </xsd:sequence> </xsd:complexType> </xsd:element> note2.xsd <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT priority ( #PCDATA )> <!ELEMENT heading ( #PCDATA )> <!ELEMENT body (#PCDATA)> note2.dtd
    12. Orden de compra <?xml version=&quot;1.0&quot;?> <purchaseOrder orderDate=&quot;1999-10-20&quot;> <shipTo country=&quot;US&quot;> <name>Alice Smith</name> <street>12 Maple Street</street> <city>Mill Valley</city> <state>CA</state> <zip>90952</zip> </shipTo> <billTo country=&quot;US&quot;> <name>Robert Smith</name> <street>8 Oak Avenue</street> <city>Old Town</city> <state>PA</state> <zip>95819</zip> </billTo> <comment>Hurry, my lawn is going wild!</comment> <items> <item partNum=&quot;872-AA&quot;> < productName >Lawnmower</productName> <quantity>1</quantity> <USPrice>148.95</USPrice> <comment>Confirm this is electric</comment> </item> <item partNum=&quot;926-AA&quot;> <productName>Baby Monitor</productName> <quantity>1</quantity> <USPrice>39.98</USPrice> <shipDate>1999-05-21</shipDate> </item> </items> </purchaseOrder> orden_compra.xml
    13. Orden de compra (tipos dato) <?xml version=&quot;1.0&quot;?> <purchaseOrder orderDate=&quot; 1999-10-20 &quot;> <shipTo country=&quot; US &quot;> <name>Alice Smith</name> <street>12 Maple Street</street> <city>Mill Valley</city> <state> CA </state> <zip> 90952 </zip> </shipTo> <billTo country=&quot;US&quot;> <name>Robert Smith</name> <street>8 Oak Avenue</street> <city>Old Town</city> <state>PA</state> <zip>95819</zip> </billTo> <comment>Hurry, my lawn is going wild!</comment> <items> <item partNum=&quot; 872-AA &quot;> < productName >Lawn mower</productName> <quantity> 2 </quantity> <USPrice> 148.95 </USPrice> <comment>Confirm this is electric</comment> </item> <item partNum=&quot;926-AA&quot;> <productName>Baby Monitor</productName> <quantity>1</quantity> <USPrice>39.98</USPrice> <shipDate>1999-05-21</shipDate> </item> </items> </purchaseOrder> orden_compra.xml
    14. XML Schema 1/3 <schema xmlns=&quot; http://www.w3.org/2001/XMLSchema &quot;> <annotation> <documentation xml:lang=&quot;en&quot;> Purchase order schema for Example.com. Copyright 2000 Example.com. All rights reserved. </documentation> </annotation> <element name=&quot;purchaseOrder&quot; type=&quot;PurchaseOrderType&quot;/> <!-- Tipo complejo --> <complexType name=&quot;PurchaseOrderType&quot;> <sequence> <element name=&quot;shipTo&quot; type=&quot;USAddress&quot;/> <element name=&quot;billTo&quot; type=&quot;USAddress&quot;/> <element ref=&quot;comment&quot; minOccurs=&quot;0&quot;/> <element name=&quot;items&quot; type=&quot;Items&quot;/> </sequence> <attribute name=&quot;orderDate&quot; type=&quot;date&quot;/> </complexType>
    15. XML Schema 2/3 <!-- Tipo complejo --> <complexType name=&quot;USAddress&quot;> <sequence> <element name=&quot;name&quot; type=&quot;string&quot;/> <element name=&quot;street&quot; type=&quot;string&quot;/> <element name=&quot;city&quot; type=&quot;string&quot;/> <element name=&quot;state&quot; type=&quot;string&quot;/> <element name=&quot;zip&quot; type=&quot;decimal&quot;/> </sequence> <attribute name=&quot;country&quot; type=&quot;NMTOKEN&quot; fixed=&quot;US&quot;/> </complexType> <!-- Tipo simple --> <simpleType name=&quot;SKU&quot;> <restriction base=&quot;string&quot;> <pattern value=&quot;d{3}-[A-Z]{2}&quot;/> </restriction> </simpleType> <!-- Elemento --> <element name=&quot;comment&quot; type=&quot;string&quot;/>
    16. XML Schema Ej (3) <complexType name=&quot;Items&quot;> <sequence> <element name=&quot;item&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;> <complexType> <sequence> <element name=&quot;productName&quot; type=&quot;string&quot;/> <element name=&quot;quantity&quot;> <simpleType> <restriction base=&quot;positiveInteger&quot;> <maxExclusive value=&quot;100&quot;/> </restriction> </simpleType> </element> <element name=&quot;USPrice&quot; type=&quot;decimal&quot;/> <element ref=&quot;comment&quot; minOccurs=&quot;0&quot;/> <element name=&quot;shipDate&quot; type=&quot;date&quot; minOccurs=&quot;0&quot;/> </sequence> <attribute name=&quot;partNum&quot; type=&quot;SKU&quot; use=&quot;required&quot;/> </complexType> </element> </sequence> </complexType> </schema>
    17. Tipos de tipos de dato
      • Singulares
        • Primitivos
        • Derivados
      • Listas
        • Dependientes de un solo tipo
      • Uniones
        • Listas heterogeneas (varios tipos)
    18. Derivacion de tipos
      • Por restriccion
        • Tipico: string restringido a una regexp
      • Por listado
      • Por union
        • 'Tipos complejos'
    19. Elemento, Compuesto, Attr
      • Tipo complejo = compuesto tipos simples
      • ComplexType contiene elementos y atributos
      <complexType name=&quot;USAddress&quot;> <sequence> <element name=&quot;name&quot; type=&quot;string&quot;/> <element name=&quot;street&quot; type=&quot;string&quot;/> <element name=&quot;city&quot; type=&quot;string&quot;/> <element name=&quot;state&quot; type=&quot;string&quot;/> <element name=&quot;zip&quot; type=&quot;decimal&quot;/> </sequence> <attribute name=&quot;country&quot; type=&quot;NMTOKEN&quot; fixed=&quot;US&quot;/> </complexType>
    20. Restricciones multiplicidad
      • Comment es opcional
        • minOccurs default 1
        • maxOccurs default 1 (“unbounded)
      • Atributos
        • use = (required, optional, prohibited)
      • Valores fijos y default
        • fixed = “...”
        • default = “...”
      <element ref=&quot;comment&quot; minOccurs=&quot;0&quot;/>
    21. Tipos simples
      • string
      • byte, unsignedByte (-1,126;0,255)
      • base64Binary (GpM7)
      • hexBinary (FF00EE)
      • integer, positiveInteger, negativeInteger
      • int, long, short, float, double, boolean
      • time, duration
      • Qname, anyURI
    22. Nuevos tipos simples <simpleType name=”myInteger”> <restriction base=”integer”> <minInclusive value=”10000”/> <maxInclusive value=”99999”/> </restriction> </simpleType>
      • Se definen como restricciones en base a otros tipos de dato simples
      • Pueden ser anónimos (ej.: quantity)
    23. Nuevos tipos enumerados <simpleType name=”deptosIngenieria”> <restriction base=”string”> <enumeration value=”cc”/> <enumeration value=”ci”/> <enumeration value=”eh”/> <enumeration value=”ma”/> ... <enumeration value=”in”/> </restriction> </simpleType>
      • Se definen por extensión
    24. Tipo lista <simpleType name=”listDeptos”> <list itemType=”deptosIngenieria”/> </simpleType> <!-- Ejemplo --> <listado>in ma cc</listado>
      • Soporte nativo para listas en elementos
    25. Contenido mixed
      • Mixed en este mundo significa texto plano y elementos
      <element name=”body”> <complexType mixed=”true”> <element name=”b”/> </complexType> </element>
    26.  
    27. Otras características
      • Soporte para anotaciones
      • Extensiones a sequence
        • Choice
      • Grupos de atributos compartidos
      • Espacios de nombres
      • Tipos globales, locales, scope de archivo
      • Tipos abstractos
        • no pueden tener instancias, sólo subtipos

    + Carlos CastilloCarlos Castillo, 3 years ago

    custom

    1590 views, 0 favs, 1 embeds more stats

    More info about this document

    CC Attribution License

    Go to text version

    • Total Views 1590
      • 1551 on SlideShare
      • 39 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 35
    Most viewed embeds
    • 39 views on http://www.tejedoresdelweb.com

    more

    All embeds
    • 39 views on http://www.tejedoresdelweb.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Tags