New Perspectives on XML, 2nd Edition

Slides:



Advertisements
Similar presentations
What is XML? a meta language that allows you to create and format your own document markups a method for putting structured data into a text file; these.
Advertisements

XML Language Family Detailed Examples Most information contained in these slide comes from: These slides are intended.
1 Web Data Management XML Schema. 2 In this lecture XML Schemas Elements v. Types Regular expressions Expressive power Resources W3C Draft:
An Introduction to XML Based on the W3C XML Recommendations.
Tutorial 6 Creating a Web Form
XML 6.3 DTD 6. XML and DTDs A DTD (Document Type Definition) describes the structure of one or more XML documents. Specifically, a DTD describes:  Elements.
XML Schemas Microsoft XML Schemas W3C XML Schemas.
XML Schema Definition Language
XML Schemas. “Schemas” is a general term--DTDs are a form of XML schemas –According to the dictionary, a schema is “a structured framework or plan” When.
Sunday, June 28, 2015 Abdelali ZAHI : FALL 2003 : XML Schemas XML Schemas Presented By : Abdelali ZAHI Instructor : Dr H.Haddouti.
Tutorial 11 Creating XML Document
Document Type Definitions. XML and DTDs A DTD (Document Type Definition) describes the structure of one or more XML documents. Specifically, a DTD describes:
VALIDATING AN XML DOCUMENT
XML Schema Basics SD2520 Databases using XML and Jquery Chapter 12
Unit 4 – XML Schema XML - Level I Basic.
ECA 228 Internet/Intranet Design I Intro to XML. ECA 228 Internet/Intranet Design I HTML markup language very loose standards browsers adjust for non-standard.
17 Apr 2002 XML Schema Andy Clark. What is it? A grammar definition language – Like DTDs but better Uses XML syntax – Defined by W3C Primary features.
XP New Perspectives on XML Tutorial 4 1 XML Schema Tutorial – Carey ISBN Working with Namespaces and Schemas.
Tutorial 3: XML Creating a Valid XML Document. 2 Creating a Valid Document You validate documents to make certain necessary elements are never omitted.
XP New Perspectives on XML Tutorial 3 1 DTD Tutorial – Carey ISBN
Validating DOCUMENTS with DTDs
Why XML ? Problems with HTML HTML design - HTML is intended for presentation of information as Web pages. - HTML contains a fixed set of markup tags. This.
VICTORIA UNIVERSITY OF WELLINGTON Te Whare Wananga o te Upoko o te Ika a Maui SWEN 432 Advanced Database Design and Implementation XML Schema 1 Lecturer.
XML Schema Vinod Kumar Kayartaya. What is XML Schema?  XML Schema is an XML based alternative to DTD  An XML schema describes the structure of an XML.
1 XML Schemas. 2 Useful Links Schema tutorial links:
Dr. Azeddine Chikh IS446: Internet Software Development.
CSE4500 Information Retrieval Systems XML Schema – Part 1.
McGraw-Hill/Irwin © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. Schemas Ellen Pearlman Eileen Mullin Programming the Web Using XML.
XML CPSC 315 – Programming Studio Fall 2008 Project 3, Lecture 1.
XP 1 CREATING AN XML DOCUMENT. XP 2 INTRODUCING XML XML stands for Extensible Markup Language. A markup language specifies the structure and content of.
XML Language Family Detailed Examples Most information contained in these slide comes from: These slides are intended.
XP 1 DECLARING A DTD A DTD can be used to: –Ensure all required elements are present in the document –Prevent undefined elements from being used –Enforce.
Session IV Chapter 9 – XML Schemas
Processing of structured documents Spring 2002, Part 2 Helena Ahonen-Myka.
1 Tutorial 13 Validating Documents with DTDs Working with Document Type Definitions.
XP 1 TUTORIAL 1 CREATING AN XML DOCUMENT. XP 2 INTRODUCING XML XML stands for Extensible Markup Language. A markup language specifies the structure and.
Of 33 lecture 3: xml and xml schema. of 33 XML, RDF, RDF Schema overview XML – simple introduction and XML Schema RDF – basics, language RDF Schema –
Beginning XML 4th Edition. Chapter 5: XML Schemas.
XML 2nd EDITION Tutorial 1 Creating An Xml Document.
XML Schema. Why Schema? To define a class of XML documents Serve same purpose as DTD “Instance document" used for XML document conforming to schema.
An OO schema language for XML SOX W3C Note 30 July 1999.
XP New Perspectives on XML, 2nd Edition Tutorial 2 1 TUTORIAL 2 WORKING WITH NAMESPACES.
Lecture 16 Introduction to XML Boriana Koleva Room: C54
XML – Part III. The Element … This type of element either has the element content or the mixed content (child element and data) The attributes of the.
1 CIS336 Website design, implementation and management (also Semester 2 of CIS219, CIS221 and IT226) Lecture 5 XML Schema (Based on Møller and Schwartzbach,
Sheet 1XML Technology in E-Commerce 2001Lecture 2 XML Technology in E-Commerce Lecture 2 Logical and Physical Structure, Validity, DTD, XML Schema.
XML 2nd EDITION Tutorial 4 Working With Schemas. XP Schemas A schema is an XML document that defines the content and structure of one or more XML documents.
1 Tutorial 14 Validating Documents with Schemas Exploring the XML Schema Vocabulary.
Tutorial 13 Validating Documents with Schemas
1 Tutorial 12 Working with Namespaces Combining XML Vocabularies in a Compound Document.
Internet & World Wide Web How to Program, 5/e. © by Pearson Education, Inc. All Rights Reserved.2.
Working with XML Schemas ©NIITeXtensible Markup Language/Lesson 3/Slide 1 of 36 Objectives In this lesson, you will learn to: * Declare attributes in an.
XML Validation II Schemas Robin Burke ECT 360. Outline Namespaces Documents  Data types XML Schemas Elements Attributes Derived data types RELAX NG.
XML Module 1 Creating an XML Document. XP Objectives Session 1.1 – Describe the history of XML and the uses of XML documents – Understand XML vocabularies.
XSD: XML Schema Language Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
XML Validation II Advanced DTDs + Schemas Robin Burke ECT 360.
XML Validation. a simple element containing text attribute; attributes provide additional information about an element and consist of a name value pair;
CSE3201 Information Retrieval Systems XML Schema – Part 2.
Tutorial 6 Creating a Web Form
XML Schema – Simple Type Web site:
CITA 330 Section 4 XML Schema. XML Schema (XSD) An alternative industry standard for defining XML dialects More expressive than DTD Using XML syntax Promoting.
XML SCHEMA 1 CH 20. Objective 2 What’s wrong with DTDs? What is a schema? The W3C XML Schema Language Hello schemas Complex types Simple types Deriving.
4 Copyright © 2004, Oracle. All rights reserved. Validating XML by Using XML Schema.
1 XML and XML in DLESE Katy Ginger November 2003.
XML Schemas Dr. Awad Khalil Computer Science Department AUC.
XML QUESTIONS AND ANSWERS
Data Modeling II XML Schema & JAXB Marc Dumontier May 4, 2004
New Perspectives on XML
Working with Namespaces and Schemas
New Perspectives on XML
Presentation transcript:

New Perspectives on XML, 2nd Edition TUTORIAL 4 WORKING WITH SCHEMAS New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition SCHEMAS A schema is an XML document that defines the content and structure of one or more XML documents. The XML document containing the content is called the instance document. New Perspectives on XML, 2nd Edition Tutorial 4

COMPARING SCHEMAS AND DTDS This figure compares schemas and DTDs New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition SCHEMA VOCABULARIES There is no single schema form. Several schema “vocabularies” have been developed in the XML language. Support for a particular schema depends on the XML parser being used for validation. New Perspectives on XML, 2nd Edition Tutorial 4

This figure shows a few schema vocabularies New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition STARTING A SCHEMA FILE A schema is always placed in a separate XML document that is referenced by the instance document. New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition Example Schema <?xml version="1.0"?> < xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <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> New Perspectives on XML, 2nd Edition Tutorial 4

ELEMENTS AND ATTRIBUTES OF THE PATIENTS DOCUMENT This figure shows the elements and attributes of the patients.xml document See pages 147 and 148 New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition SCHEMA TYPES XML Schema recognize two categories of types: Simple type contains only a single value Value of an attribute Or the textual content of an element Complex type Contains a structure New Perspectives on XML, 2nd Edition Tutorial 4

This figure shows types of elements SCHEMA TYPES This figure shows types of elements New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition SIMPLE TYPE ELEMENTS Use the following syntax to declare a simple type element in XML Schema: <element name=“name” type =“type”/> name = the name of the element in the instance document type = the data type of the element. Example: <xs:element name = “lastName” type = “xs:string” /> Unlike DTD, schema is an XML language New Perspectives on XML, 2nd Edition Tutorial 4

UNDERSTANDING DATA TYPES XML Schema supports two data types A built-in data type is part of the XML Schema specifications and is available to all XML Schema authors. A user-derived data type is created by the XML Schema author for specific data values in the instance document. New Perspectives on XML, 2nd Edition Tutorial 4

DECLARING AN ATTRIBUTE An attribute is another example of a simple type. The syntax to define an attribute is <xs:attribute name=“name” type="type” default=“default” fixed=“fixed” /> name = the name of the attribute type = the data type, default = the attribute’s default value fixed = a fixed value for the attribute For examle: <xs:attribute name=“Gender” type=“xs:string” default=“female” /> By convention, use xs for namespace for XML Schma namespace optional New Perspectives on XML, 2nd Edition Tutorial 4

ASSOCIATING ATTRIBUTES AND ELEMENTS The basic structure for defining a complex type with XML Schema is <xs:element name="name"> <xs:complexType> declarations </xs:complexType> </xs:element> name = the name of the element declarations = schema commands specific to the type of complex element being defined. New Perspectives on XML, 2nd Edition Tutorial 4

ASSOCIATING ATTRIBUTES AND ELEMENTS Four complex type elements that usually appear in an instance document are the following: The element is an empty element and contains only attributes. The element contains textual content and attributes but no child elements. The element contains child elements but not attributes. The element contains both child elements and attributes. The following slides describe each of these New Perspectives on XML, 2nd Edition Tutorial 4

EMPTY ELEMENTS AND ATTRIBUTES The code to declare the attributes of an empty element is <xs:element name="name"> <xs:complexType> attributes </xs:complexType> </xs:element> attributes = the set of declarations that define the attributes associated with the element New Perspectives on XML, 2nd Edition Tutorial 4

EMPTY ELEMENTS AND ATTRIBUTES For example: <xs: element name=“subject”> <xs:complexType> <xs:attriubute name=“name” type=“xs:string” /> <xs:attriubute name=“age” type=“xs:string” /> </xs: complexType> </xs:element> describes the following empty element: <subject name=“Cynthia Dibbs” age=“62” /> New Perspectives on XML, 2nd Edition Tutorial 4

SIMPLE CONTENT AND ATTRIBUTES If an element is not empty and contains textual content (but no child elements), the structure of the complex type element is slightly different. <xs:element name="name"> <xs:complexType> <xs:simpleContent> <xs:extension base="type"> attributes </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> New Perspectives on XML, 2nd Edition Tutorial 4

SIMPLE CONTENT AND ATTRIBUTES Indicates text but no child For example: <xs:element name=“performance”> <xs:complexType> <xs:simpleContent> <xs:extension base=“xs:string”> <xs:attribute name=“scale” type=“xs:string”/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> defines <performance scale=“Karnofskyk”>0.81</performance> Extended to include an attribute New Perspectives on XML, 2nd Edition Tutorial 4

SPECIFYING THE USE OF AN ATTRIBUTE An attribute may or may not be required with a particular element. To indicate whether an attribute is required, you add the use attribute to the element declaration or reference. The use attribute has the following values: required—The attribute must always appear with the element optional—(default) The use of the attribute is optional with the element prohibited—The attribute cannot be used with the element For example, the previous attribute declaration is modified as: <xs:attribute name=“scale” type=“xs:string” use=“required”/> New Perspectives on XML, 2nd Edition Tutorial 4

REFERENCING AN ELEMENT OR ATTRIBUTE Rather than nesting the attribute declaration within the element, you can create a reference to it. The code to create a reference to an element or attribute declaration is <xs:element ref="elemName" /> <xs:attribute ref="attName" /> where elemName = the name used in an element declaration attName = the name used in an attribute declaration New Perspectives on XML, 2nd Edition Tutorial 4

REFERENCING AN ELEMENT OR ATTRIBUTE <xs:attribute name=“scale” type=“xs:string” /> <xs:element name=“performance”> <xs:complexType> <xs:simpleContent> <xs:extension base = “xs:string> <xs:attribute> ref=“scale” use=“required” /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> New Perspectives on XML, 2nd Edition Tutorial 4

WORKING WITH CHILD ELEMENTS Another kind of complex type element contains child elements, but no attributes. To define these child elements, use the code structure <xs:element name="name"> <xs:complexType> <xs:compositor> elements </xs:compositor> </xs:complexType> </xs:element> where elements =the list of simple type element declarations for each child element compositor = defines how the child elements are organized. New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition USING COMPOSITORS XML Schema supports the following compositors: sequence defines a specific order for the child elements choice allows any one of the child elements to appear in the instance document all allows any of the child elements to appear in any order in the instance document; however, they must appear either only once or not all. New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition USING COMPOSITORS <element name=“address”> <xs:complexType> <xs:sequence> <xs:element name = “street” type = “xs:string”/> <xs:element name = “city” type = “xs:string”/> <xs:element name = “state” type = “xs:string”/> </xs:sequence> </element> Must be in sequence New Perspectives on XML, 2nd Edition Tutorial 4

USING COMPOSITORS <element name=“Family”> <xs:complexType> <xs:all> <xs:element name = “Father” type = “xs:string”/> <xs:element name = “Mother” type = “xs:string”/> </xs:all> </element> Family may contain Father and/or Mother in no particular order New Perspectives on XML, 2nd Edition Tutorial 4

SPECIFYING THE OCCURENCES OF AN ITEM <xs:element name=“patient” type=“xs:string” minOccurs=“1” maxOccurs=“3”/> New Perspectives on XML, 2nd Edition Tutorial 4

WORKING WITH CHILD ELEMENTS AND ATTRIBUTES The code for a complex type element that contains both attributes and child elements is <xs:element name="name"> <xs:complexType> <xs:compositor> elements </xs:compositor> </xs:complexType> attributes </xs:element> New Perspectives on XML, 2nd Edition Tutorial 4

CHILD ELEMENTS AND ATTRIBUTES EXAMPLE <xs:element name=“patient”> <xs:complexType> <xs:sequence> <xs:element ref=“lastname”/> <xs:element ref=“firstName”/> </xs:sequence> <xs:attribute ref=“patID use=“required”> </xs:complexType> <xs:element> New Perspectives on XML, 2nd Edition Tutorial 4

SPECIFYING MIXED CONTENT <Summary> Patient <Name>Cynthia Davis</Name> was enrolled in the <Study>Tamoxifen Study</Study> on 8/15/2003. </Summary> can be declared in the schema file using the following complex type: <element name="Summary"> <complexType mixed="true"> <sequence> <element name="Name" type="string"/> <element name="Study" type="string"/> </sequence> </complexType> </element> element contains both text and child elements New Perspectives on XML, 2nd Edition Tutorial 4

APPLYING A SCHEMA To attach a schema to the document, you must do the following: Declare a namespace for XML Schema in the instance document. Indicate the location of the schema file. Example: xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi=SchemaLocation=“pschema.xsd”> Commonly used for XML Schema instances Schema instance namespace New Perspectives on XML, 2nd Edition Tutorial 4

APPLYING A SCHEMA Specifying a schema in an XML document is treated only as a hint by validating parsers ignored by some parsers Not allowed to prevent improper financial documents from being fraudulently submitted If there is no namespace for the contents of the instance document, add the following attribute to the root element: xsi:noNamespaceSchemaLocation="schema" Schema instance namespace New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition Pause and breath New Perspectives on XML, 2nd Edition Tutorial 4

UNDERSTANDING DATA TYPES A primitive data type, also called a base type, is one of 19 fundamental data types not defined in terms of other types. A derived data type is a collection of 25 data types that the XML Schema developers created based on the 19 primitive types. New Perspectives on XML, 2nd Edition Tutorial 4

UNDERSTANDING DATA TYPES This figure shows the 44 built-in data types Page XML 168 Premitive types Dates & times Derived Types New Perspectives on XML, 2nd Edition Tutorial 4

UNDERSTANDING DATA TYPES This figure shows a partial description of XML string data types Page XML 169 New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition USING DATA TYPES Examples: <xs:attribute name=“patID” type=“xs:ID” /> <xs:attribute name=“onStudy” type=“xs:string” /> <xs:attribute name=“scale” type=“xs:string” /> New Perspectives on XML, 2nd Edition Tutorial 4

UNDERSTANDING DATA TYPES This figure shows a partial description of XML numeric data types Page XML 170 New Perspectives on XML, 2nd Edition Tutorial 4

UNDERSTANDING DATA TYPES This figure shows a partial description of XML date and time data types Page XML 171 New Perspectives on XML, 2nd Edition Tutorial 4

DERIVING NEW DATA TYPES Three components are involved in deriving new data types: Value space: the set of values that correspond to the data type. Lexical space: the set of textual representations of the value space. Facets: the properties of the data type that distinguish one data type from another. Text string length, range of allowable values, New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition USER DERIVED DATA New data types fall into three categories: List: a list of values where each list is derived from a base type. Union: the combination of two or more data types. Restriction: a limit placed on the facet of a base type. New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition LIST List data type is a list of values separated by white space To create a list data type: <xs:simpleType name=wbcList”> <xs:list itemType=xs:decimal” /> <xs:simpleType> To use the data type: <xs:element name=“wbc” type=“wbcList” /> <wbe>15.1 15.8. 20.0 9.3 7.1 5.2 </wbc> New Perspectives on XML, 2nd Edition Tutorial 4

DERIVING A RESTRICTED DATA TYPE The most common way to derive a new data type is to restrict the properties of a base type. XML Schema provides twelve constraining facets for this purpose. New Perspectives on XML, 2nd Edition Tutorial 4

This figure shows the 12 constraining facets New Perspectives on XML, 2nd Edition Tutorial 4

CONSTRAINING FACETS EXAMPLE <xs:simpleType name=“ageType”> <xs:restriction base=“xs:integer”> <xs:minInclusive value = “21” /> </xs:restriction> </xs:simpleType> Constrains the data type to be greater than or equal to the value New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition The Patterns Facet A pattern can be created with a formatted text string called a regular expression or regex. To apply a regular expression in a data type, you use the code <xs:simpleType name="name"> <xs:restriction base="type"> <xs:pattern value="regex"/> </xs:restriction> </xs:simpleType> Where regex is a regular expression pattern. New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition Regular Expressions Figure 4-30 page 184 shows character types, for example \d a digit from 0 to 9 \D non digit character Etc. Figure 4-31 page 185 shows character sets, for example [chars] Match any character in the chars list [a-z] Match any lower case letter [0-9] matach any digit form 0-9 New Perspectives on XML, 2nd Edition Tutorial 4

This figure shows pattern quantifiers New Perspectives on XML, 2nd Edition Tutorial 4

EXAMPLE REGULAR EXPRESSIONS <xs:pattern value=“\d{3}” /> <xs:pattern value=“[A-Z]*” /> <xs:pattern value=“[A-Z]{0,10}*” /} <xs:ximpleType name=“mrType”> <sx:restrictiion base=“xs:ID”> <xs:pattern value=“MR\d{3}-\d{3}-d2{2}” /> </xs:restriction> <xs:simpleType> New Perspectives on XML, 2nd Edition Tutorial 4

WORKING WITH NAMED TYPES Schema authors can create customized complex types. Advantage: reuse the complex structure in several places in the document. For example: <xs:element name=“fullName"> <xs:complexType> <xs:sequence> <xs:element name="firstName" type="xs:string"/> <xs:element name="lastName" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> Use <xs:element name=“client” type=“fullName”/> <xs:element name=“salesperson” type=“fullName”/> New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition NAMED MODEL GROUPS A named model group is a collection, or group, of elements. Syntax <xs:group name="name"> elements </xs:group> Where name is the name of the model group, and elements is a collection of element declarations New Perspectives on XML, 2nd Edition Tutorial 4

NAMED MODEL GROUPS EXAMPLE Definition <xs:group name=“fullName”> <xs:sequence> <xs:element name="firstName" type="xs:string"/> <xs:element name="lastName" type="xs:string" /> </xs:sequence> </xs:group> Use <xs:element name=“client"> <xs:complexType> <xs:group ref=“fullName”/>> </xs:complexType> </xs:element> New Perspectives on XML, 2nd Edition Tutorial 4

WORKING WITH NAMED ATTRIBUTE GROUPS Attributes can be grouped into collections called named attribute groups. This is particularly useful for attributes that you want to use with several different elements in a schema. The syntax for a named attribute group is <xs:attributeGroup name="name"> attributes </xs:attributeGroup> Where name is the name of the attribute group and attributes is a collection of attributes assigned to the group. New Perspectives on XML, 2nd Edition Tutorial 4

WORKING WITH NAMED ATTRIBUTE GROUPS Example: <xs:attributeGroup name=“DRInfo”> <xs:attribute name=“DRID” type=“xs:string” use=“required” /> <xs:attribute name=“dept” type=“xs:string” use=“required” /> <xs:attributeGroup> <xs:element name=“doctor” type=“deptData”/> <xs:complexType name = “deptData”> <xs:simplecontent> <xs: extension base = “string”> <xs:attributegroup ref=“DRIinfo”/> </xs:extenson> </xs:simplecontent> </xs:complexType> <doctor DRID=“DR251” dept=“Pediatrics”> curt Hurley <doctor> New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition SCOPE An item has global scope = it is a child of a root schema element Can be referenced and reused anywhere in the schema An item has local scope = it is nested within another element Can be referenced and reused only within the item in which it is declared New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition STRUCTURING A SCHEMA Schemas can be structured in several ways: Flat catalog (also called salami slice) All declarations are made globally Russian doll Has only one global element Everything else is nested inside of that element Venetian Blind Design Similar to flat catalog, except Creates types and references within a single global element New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition STRUCTURING A SCHEMA One schema design is a Flat Catalog Design. Sometimes called salami slice design In this design, all element declarations are made globally. The structure of the instance document is created by referencing the global element declarations. New Perspectives on XML, 2nd Edition Tutorial 4

This figure shows a Flat Catalog design Figure 4-36 page 192 This figure shows a Flat Catalog design New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition STRUCTURING A SCHEMA Schemas can be structured in a number of ways. One structure is called a Russian Doll design. This design involves sets of nested declarations. While this design makes it easy to associate the schema with the instance document, it can be confusing and difficult to maintain. New Perspectives on XML, 2nd Edition Tutorial 4

This figure shows a Russian Doll design Figure 4-37 page 193 This figure shows a Russian Doll design New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition VENETIAN BLIND DESIGN A Venetian blind design Compromise between flat catalogs and Russian dolls Element and attribute groups and named types are declared globally (and can be reused throughout the schema) Elements and attributes for the instance document are local and nested New Perspectives on XML, 2nd Edition Tutorial 4

New Perspectives on XML, 2nd Edition VENETIAN BLIND DESIGN Figure 4-38 page 194 New Perspectives on XML, 2nd Edition Tutorial 4

COMPARING SCHEMA DESIGNS Figure 4-39 page 195 This figure compares the three schema designs New Perspectives on XML, 2nd Edition Tutorial 4

PLACING A SCHEMA IN A NAMESPACE: TARGETING A NAMESPACE To associate a schema with a namespace declare the namespace prefix:xmlns="uri" make that namespace the target of the schema. targetNamespace="uri" Where prefix = prefix of the XML Schema namespace uri = URI of the target namespace New Perspectives on XML, 2nd Edition Tutorial 4

PLACING A SCHEMA IN A NAMESPACE: TARGETING A NAMESPACE Example (Figure 4-40): <xs:schema xmlns:xs=http://www.ww3.org/2001/XMLSchema xmlns=“http:/uhosp.edu/patients/na” targetNamespace=“http://uhosp.edu/patients/na> <xs: element name=“patients”> <xs:complexType> <xs:sequence> <xs:element name=“patient” type=“pType” Minoccurs = “1” maxoccurs=“unbounded” /> </xs:sequence> </xs:complexType> </xs:element> … Declare the namespace Make the new namespace the target of the schema New Perspectives on XML, 2nd Edition Tutorial 4

APPLYING A SCHEMA TO A DOCUMENT WITH A NAMESPACE To apply a schema to a document with a namespace, add the following attributes to the instance document’s root element: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="uri schema" Where uri is the URI of the namespace and schema is the location and name of the schema file. All global elements and attributes from the schema must be qualified in the instance document. New Perspectives on XML, 2nd Edition Tutorial 4

APPLYING A SCHEMA TO A DOCUMENT WITH A NAMESPACE Example: <patients xmlns:xsi=http://www.W3.org/200/XMLSchema-instance xmlns=“http://uhosp.edu/patients/ns xsi:schemaLocation=http://uhosp.edu/patients/ns patvb.xsd> <patient patID = “MR890-041-02” … …. </patient> New Perspectives on XML, 2nd Edition Tutorial 4

INCLUDING AND IMPORTING SCHEMAS To include a schema from the same namespace, add the following element as a child of the schema element: <xs:include schemaLocation="schema" /> Where schema is the name and location of the schema file. To import a schema from a different namespace, use the syntax <xs:import namespace="uri" schemaLocation="schema" /> Where uri is the URI of the imported schema’s namespace and schema is the name and location of the schema file. New Perspectives on XML, 2nd Edition Tutorial 4

REFERENCING OBJECTS FROM OTHER SCHEMAS Once a schema is imported, any objects it contains with global scope can be referenced To reference an object from an imported schema, you must declare the namespace of the imported schema in the schema element You can then reference the object using the ref attribute or the type attribute for customized simple and complex types New Perspectives on XML, 2nd Edition Tutorial 4

Assignment: Tutorial 4 Case Problem 1 Perform the tasks listed on pages 212 and 213 Create a CSS for the resulting jw.xml Post your work, including the CSS on your web site. End an e-mail with the subject: Tutorial 4 Case Problem 1 by <your name> to jim@larson-tech.com by Wednesday 11:50 May 1 New Perspectives on XML, 2nd Edition Tutorial 4