2 5 xml schemas
This presentation is the property of its rightful owner.
Sponsored Links
1 / 20

2.5 XML Schemas PowerPoint PPT Presentation


  • 134 Views
  • Uploaded on
  • Presentation posted in: General

2.5 XML Schemas. A quick introduction to XML Schema W3C Recommendation, May 2, 2001: XML Schema Part 0: Primer (readable non-normative introduction; Recommended) XML Schema Part 1: Structures XML Schema Part 2: Datatypes Also under development:

Download Presentation

2.5 XML Schemas

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


2 5 xml schemas

2.5 XML Schemas

  • A quick introduction to XML Schema

    • W3C Recommendation, May 2, 2001:

      • XML Schema Part 0: Primer (readable non-normative introduction; Recommended)

      • XML Schema Part 1: Structures

      • XML Schema Part 2: Datatypes

    • Also under development:

      • XML Schema: Formal Description, W3C Working Draft, 25 September 2001

Notes 2: Document Instances and Grammars


Schema terminology

Schema terminology

  • Schema: a formal description for the structure and allowed content of a set of data (esp. in databases)

  • “XML Schema” is often used for each of … 1.XML Schema, the W3C Rec. that defines … 2.XML Schema Definition Language (XSDL), an XML-based markup language for expressing ... 3.schema documents, each of which describes a schema ( DTD) for a set of XML document instances

    (This may cause some confusion!)

Notes 2: Document Instances and Grammars


Advantages of xsdl 1

Advantages of XSDL (1)

  • XML syntax

    • schema documents easier to manipulate by programs (than the special DTD syntax)

  • Compatibility with namespaces

    • can validate documents using declarations from multiple sources

  • Content datatypes

    • 44 built-in datatypes (including primitive Java datatypes, datatypes of SQL, and XML attribute types)

    • mechanisms to derive user-defined datatypes

Notes 2: Document Instances and Grammars


Xsdl built in types part 2 chap 3

XSDL built-in types (Part 2, Chap. 3)

Notes 2: Document Instances and Grammars


Advantages of xsdl 2

Advantages of XSDL (2)

  • Independence of element names and content types; Compare with

    • DTDs: 1-to-1 correspondence btw. element type names and their content models

    • CFGs: 1-to-1 correspondence btw. nonterminals and their productions

  • For example, could define titles of people as “Mr.”/”Mrs.”/”Ms.” and titles of chapters as strings

Notes 2: Document Instances and Grammars


Advantages of xsdl 3

Advantages of XSDL (3)

  • Support for schema documentation

    • element annotation with sub-elementsdocumentation (for human readers) andappInfo (for applications)

  • Ability to specify uniqueness and keys within selected parts of document

    • for example, that titlesof chapters should be unique

Notes 2: Document Instances and Grammars


Disadvantages of xsdl

Disadvantages of XSDL

  • Complexity of XSDL (esp. of Rec. Part 1!)

    • > a long learning curve

  • Possible immaturity of implementations (?)

    • W3C XML Schema Web site mentions a dozen of tools or processors (http://www.w3.org/XML/Schema#Tools, March 2002)

    • Open-source Apache XML parsers (Xerces C++ 1.7.0 and Xerces Java 1.4.4) seem reasonable implementations, but also document limitations/problems in their XML Schema support

Notes 2: Document Instances and Grammars


Xsdl through example

XSDL through Example

  • Next: walk-through of an XML schema example

    • from XML Schema Rec, Part 0, Chap. 2

    • Modelling purchase orders like below:<purchaseOrder orderDate="1999-10-20"> <shipTo country="US"> <name>Alice Smith</name> <street>123 Maple Street</street> <city>Mill Valley</city> <state>CA</state> <zip>90952</zip> </shipTo>

Notes 2: Document Instances and Grammars


Purchaseorder instance continues

purchaseOrder instance continues

<billTo country="US"> <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 wild!</comment>

<items><item partNum="872-AA">

<productName>Lawnmower</productName>

<quantity>1</quantity>

<USPrice>148.95</USPrice>

<comment>Only if electric</comment>

</item>

Notes 2: Document Instances and Grammars


End of the example instance

End of the example instance

<item partNum="926-AA">

<productName>Baby Phone</productName>

<quantity>1</quantity>

<USPrice>39.98</USPrice>

<shipDate>1999-05-21</shipDate>

</item>

</items>

</purchaseOrder>

  • Next: A schema for this kind of purchase orders

Notes 2: Document Instances and Grammars


The purchase order schema 1 5

The Purchase Order Schema (1/5)

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="purchaseOrder” type="POrdType"/>

<xs:element name="comment" type="xs:string"/>

<xs:complexType name="POrdType"> <xs:sequence> <xs:element name="shipTo” type="USAddr"/> <xs:element name="billTo" type="USAddr"/> <xs:element ref="comment" minOccurs="0"/> <xs:element name="items" type="Items"/> </xs:sequence> <xs:attribute name="ordDate” type="xs:date"/> </xs:complexType>

Notes 2: Document Instances and Grammars


The purchase order schema 2 5

The Purchase Order Schema (2/5)

<xs:complexType name="USAddr"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="street" type="xs:string"/> <xs:element name="city" type="xs:string"/> <xs:element name="state" type="xs:string"/> <xs:element name="zip" type="xs:decimal"/> </xs:sequence> <xs:attribute name="country" type="xs:NMTOKEN" fixed="US"/> </xs:complexType>

Notes 2: Document Instances and Grammars


The purchase order schema 3 5

The Purchase Order Schema (3/5)

<xs:complexType name="Items"> <xs:sequence> <xs:element name="item" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="productName" type="xs:string"/> <xs:element name="quantity"> <xs:simpleType> <xs:restriction base="xs:positiveInteger"> <xs:maxExclusive value="100"/> </xs:restriction> </xs:simpleType> </xs:element>

anonymous type for item

anon. type

for quantity

Notes 2: Document Instances and Grammars


The purchase order schema 4 5

The Purchase Order Schema (4/5)

<xs:element name="USPrice" type="xs:decimal"/> <xs:element ref="comment" minOccurs="0"/> <xs:element name="shipDate" type="xs:date" minOccurs="0"/> </xs:sequence> <xs:attribute name="partNum" type="SKU" use="required"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType>

Notes 2: Document Instances and Grammars


The purchase order schema 5 5

The Purchase Order Schema (5/5)

<!-- Type for Stock Keeping Units, (codes for identifying products): --> <xs:simpleType name="SKU"> <xs:restriction base="xs:string"> <xs:pattern value="\d{3}-[A-Z]{2}" /> </xs:restriction> </xs:simpleType>

</xs:schema>

Notes 2: Document Instances and Grammars


Xsdl content models

XSDL Content Models

  • Element content of complexType can be regulated using

    • group elements sequence, choice and all and

    • occurrence constraint attributes minOccurs and maxOccurs

  • Elements sequence and choice correspond to catenation and alternativity ( | ) in regular expressions

Notes 2: Document Instances and Grammars


Xsdl occurrence constraints

default of both is 1

XSDL occurrence constraints

  • optionality (E?) can be expressed by minOccurs=’0’

  • iteration (E*) can be expressed by minOccurs=’0’andmaxOccurs=’unbounded’

  • Exactly five occurrences of element A:<xs:element name=”A” minOccurs=’5’ maxOccurs=’5’ />

  • 10 to 900 occurrences of element A:<xs:element name=”A” minOccurs=’10’ maxOccurs=’900’ />

Notes 2: Document Instances and Grammars


Regular expression vs an xsdl content model

Regular expression vs an XSDL content model

  • A+ | B (C D)* could be expressed by <xs:choice> <xs:element name=”A” type=”typeA” maxOccurs=’unbounded’ /> <xs:sequence> <xs:element name=”B” type=”typeB” /> <xs:sequence minOccurs=’0’ maxOccurs=’unbounded’ > <xs:element name=”C” type=”typeC” /> <xs:element name=”D” type=”typeD” /> </xs:sequence> </xs:sequence> </xs:choice>

Notes 2: Document Instances and Grammars


The all group

The all group

  • XSDL all group is a restricted version of the SGML &-connector

    • E1 & … & En allows sequences corresponding to any permutation of E1, …, En

    • XSDL all restricted to appear as the only content model group of a complexType, and its children to (possibly optional) element

Notes 2: Document Instances and Grammars


The all group an example

The all group: An example

  • For example <xs:all> <xs:element name=”A” /> <xs:element name=”B” /> <xs:element name=”C” minOccurs=’0’ /></xs:all>accepts all of the following element sequences:A B C; A C B; B A C; B C A; C A B; C B A;A B; and B A;

Notes 2: Document Instances and Grammars


  • Login