Download presentation
Presentation is loading. Please wait.
Published byJordan Sauser Modified over 9 years ago
1
1 Web Data Management XML Schema
2
2 In this lecture XML Schemas Elements v. Types Regular expressions Expressive power Resources W3C Draft: www.w3.org/TR/2001/REC-xmlschema-1-20010502
3
3 XML Schemas http://www.w3.org/TR/xmlschema-1/10/2000 generalizes DTDs uses XML syntax two documents: structure and datatypes –http://www.w3.org/TR/xmlschema-1 –http://www.w3.org/TR/xmlschema-2 XML-Schema is very complex –often criticized –some alternative proposals
4
4 BookCatalogue.dtd
5
5 <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" targetNamespace="http://www.publishing.org" xmlns="http://www.publishing.org" elementFormDefault="qualified"> BookCatalogue.xsd xsd = Xml-Schema Definition (explanations on succeeding pages)
6
6 <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" targetNamespace="http://www.publishing.org" xmlns="http://www.publishing.org" elementFormDefault="qualified"> <!ELEMENT Book (Title, Author, Date, ISBN, Publisher)> All XML Schemas have "schema" as the root element.
7
7 The elements that are used to create an XML Schema come from the XMLSchema namespace <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" targetNamespace="http://www.publishing.org" xmlns="http://www.publishing.org" elementFormDefault="qualified">
8
8 element complexType schema sequence http://www.w3.org/2000/10/XMLSchema XMLSchema Namespace string integer boolean
9
9 Says that the elements declared in this schema (BookCatalogue, Book, Title, Author, Date, ISBN, Publisher) are to go in this namespace <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" targetNamespace="http://www.publishing.org" xmlns="http://www.publishing.org" elementFormDefault="qualified">
10
10 BookCatalogue Book Title Author Date ISBN Publisher http://www.publishing.org (targetNamespace) Publishing Namespace (targetNamespace)
11
11 This is referencing a Book element declaration. The Book in what namespace? Since there is no namespace qualifier it is referencing the Book element in the default namespace, which is the targetNamespace! <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" targetNamespace="http://www.publishing.org" xmlns="http://www.publishing.org" elementFormDefault="qualified"> The default namespace is http://www.publishing.org which is the targetNamespace!
12
12 This is a directive to instance documents which use this schema: Any elements used by the instance document which were declared by this schema must be namespace qualified by the namespace specified by targetNamespace. <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" targetNamespace="http://www.publishing.org" xmlns="http://www.publishing.org" elementFormDefault="qualified">
13
13 Referencing a schema in an XML instance document <BookCatalogue xmlns ="http://www.publishing.org" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi:schemaLocation="http://www.publishing.org BookCatalogue.xsd"> My Life and Times Paul McCartney July, 1998 94303-12021-43892 McMillin Publishing... 1. First, using a default namespace declaration, tell the schema-validator that all of the elements used in this instance document come from the publishing namespace. 2. Second, with schemaLocation tell the schema-validator that the http://www.publishing.org namespace is defined in BookCatalogue.xsd. 3. Third, tell the schema-validator that schemaLocation attribute we are using is the one in the schema instance namespace.
14
14 Referencing a schema in an XML instance document BookCatalogue.xml BookCatalogue.xsd targetNamespace="A" schemaLocation="A BookCatalogue.xsd" - defines elements in namespace A - uses elements from namespace A
15
15 Note multiple levels of checking BookCatalogue.xmlBookCatalogue.xsd XMLSchema.xsd (schema-for-schemas) Validate that the xml document conforms to the rules described in BookCatalogue.xsd Validate that BookCatalogue.xsd is a valid schema document, i.e., it conforms to the rules described in the schema-for-schemas
16
16 Default Value for minOccurs and maxOccurs The default value for minOccurs is "1" The default value for maxOccurs is "1" Equivalent!
17
17 Qualify XMLSchema, Default targetNamespace In the last example, we explicitly qualified all elements from the XML Schema namespace. The targetNamespace was the default namespace. BookCatalogue Book Title Author Date ISBN Publisher http://www.publishing.org element annotation documentation complexType schema sequence http://www.w3.org/2000/10/XMLSchema
18
18 Default XMLSchema, Qualify targetNamespace Alternatively (equivalently), we can design our schema so that XMLSchema is the default namespace. BookCatalogue Book Title Author Date ISBN Publisher http://www.publishing.org element annotation documentation complexType schema sequence http://www.w3.org/2000/10/XMLSchema
19
19 <schema xmlns="http://www.w3.org/2000/10/XMLSchema" targetNamespace="http://www.publishing.org" xmlns:pub="http://www.publishing.org" elementFormDefault="qualified"> Here we are referencing a Book element. Where is that Book element defined? In what namespace? The pub: prefix indicates what namespace this element is in. pub: has been set to be the same as the targetNamespace.
20
20 "pub" References the targetNamespace BookCatalogue Book Title Author Date ISBN Publisher http://www.publishing.org (targetNamespace) element annotation documentation complexType schema sequence http://www.w3.org/2000/10/XMLSchema pub
21
21 Alternate Schema In the previous examples we declared an element and then we ref’ed that element declaration. Instead, we can inline the element declarations. On the following slide is an alternate (equivalent) way of representing the schema shown previously, using inlined element declarations.
22
22 <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" targetNamespace="http://www.publishing.org" xmlns="http://www.publishing.org" elementFormDefault="qualified"> Elements Declared Inline
23
23 Anonymous types (no name) <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" targetNamespace="http://www.publishing.org" xmlns="http://www.publishing.org" elementFormDefault="qualified">
24
24 Named Types The following slide shows an alternate (equivalent) schema which uses a named type.
25
25 Named type <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" targetNamespace="http://www.publishing.org" xmlns="http://www.publishing.org" elementFormDefault="qualified"> Named Types
26
26 Please note that is equivalent to Element A references the complexType foo. Element A has the complexType definition inlined in the element declaration.
27
27 type Attribute or complexType Child Element, but not Both! An element declaration can have a type attribute, or a complexType child element, but it cannot have both a type attribute and a complexType child element. …
28
28 Summary of Declaring Elements (two ways to do it) A simple type (e.g., xsd:string) or the name of a complexType … 1 2 A nonnegative integer A nonnegative integer or "unbounded" Note: minOccurs and maxOccurs can only be used in nested (local) element declarations.
29
29 XML Schemas DTD:
30
30 Elements v.s. Types in XML Schema DTD:
31
31 Types: –Simple types (integers, strings,...) –Complex types (regular expressions, like in DTDs) Element-type-element alternation: –Root element has a complex type –That type is a regular expression of elements –Those elements have their complex types... –... –On the leaves we have simple types Elements v.s. Types in XML Schema
32
32 Local and Global Types in XML Schema Local type: [define locally the person’s type] Global type: [define here the type ttt] Global types: can be reused in other elements
33
33 Local v.s. Global Elements in XML Schema Local element:... Global element:... Global elements: like in DTDs
34
34 Regular Expressions in XML Schema Recall the element-type-element alternation: [regular expression on elements] Regular expressions: A B C = A B C A B C = A | B | C A B C = (A B C).. = (...)*.. = (...)?
35
35 Local Names in XML-Schema............................ name has different meanings in person and in product
36
36 Subtle Use of Local Names Arbitrary deep binary tree with A elements, and a single B element
37
37 Attributes in XML Schema............ Attributes are associated to the type, not to the element Only to complex types; more trouble if we want to add attributes to simple types.
38
38 “Mixed” Content, “Any” Type Better than in DTDs: can still enforce the type, but now may have text between any elements Means anything is permitted there....
39
39 “All” Group A restricted form of & in SGML Restrictions: –Only at top level –Has only elements –Each element occurs at most once E.g. “comment” occurs 0 or 1 times
40
40 Derived Types by Extensions Corresponds to inheritance
41
41 Derived Types by Restrictions (*): may restrict cardinalities, e.g. (0,infty) to (1,1); may restrict choices; other restrictions… … [rewrite the entire content, with restrictions]... Corresponds to set inclusion
42
42 Simple Types String Token Byte unsignedByte Integer positiveInteger Int (larger than integer) unsignedInt Long Short... Time dateTime Duration Date ID IDREF IDREFS
43
43 Facets of Simple Types Examples length minLength maxLength pattern enumeration whiteSpace maxInclusive maxExclusive minInclusive minExclusive totalDigits fractionDigits Facets = additional properties restricting a simple type 15 facets defined by XML Schema
44
44 Facets of Simple Types Can further restrict a simple type by changing some facets Restriction = subset
45
45 Not so Simple Types List types: Union types Restriction types 20003 15037 95977 95945
46
46 Summary of XML Schema Formal Expressive Power: –Can express precisely the regular tree languages (over unranked trees) Lots of other stuff –Some form of inheritance –A “null” value –Large collection of data types
47
47 Summary of Schemas in SS data: –graph theoretic –data and schema are decoupled –used in data processing in XML –from grammar to object-oriented –schema wired with the data –emphasis on semantics for exchange
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.