1 / 20

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:

herve
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. XSDL built-in types (Part 2, Chap. 3) Notes 2: Document Instances and Grammars

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. default of both is 1 XSDL occurrence constraints • optionality (E?) can be expressed by minOccurs=’0’ • iteration (E*) can be expressed by minOccurs=’0’and maxOccurs=’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

  18. 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

  19. 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

  20. 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

More Related