Top Banner
Instructor: Prof. Young-guk Ha Dept. of Computer Science & Engineering 웹 기술 및 응용 XML Schema 2019년 2학기
55

04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

Jul 12, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

Instructor: Prof. Young-guk HaDept. of Computer Science & Engineering

웹 기술 및 응용

XML Schema

2019년 2학기

Page 2: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

2웹기술응용설계

Outline

q History

q Comparison with DTD

q Syntax

Ø Definitions and declaration

Ø Simple types

Ø Namespace

Ø Complex types

Ø Content models

Ø Secondary components

Page 3: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

3웹기술응용설계

Birth of XML Schema

q XML-Data: Jan 1998

Ø Basic concepts of XML Schema

Ø For W3C internal discussion only

q XDR (XML-Data Reduced): Jul 1998

Ø Refines and subsets XML-Data down to manageable size

q Other Schema Languages

Ø DCD for XML (Document Content Description)

Ø DDML (Document Definition Markup Language)

Ø SOX (Schema for Object-oriented XML)

q XML Schema (W3C Recommendation)

Ø May 2001: XML Schema 1.0

Ø Oct. 2004: XML Schema 1.0 2nd Edition

Ø Apr. 2012: XML Schema 1.1

v XML Schema is also called XML Schema Definition Language (XSD)

v W3C XSD Recommendation- Part 0: Primer- Part 1: Structures- Part 2: Data types

Page 4: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

4웹기술응용설계

Outline

q History

q Comparison with DTD

q Syntax

Ø Definitions and declaration

Ø Simple types

Ø Namespace

Ø Complex types

Ø Content models

Ø Secondary components

Page 5: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

5웹기술응용설계

DTD vs. XML Schema

Page 6: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

6웹기술응용설계

Outline

q History

q Comparison with DTD

q Syntax

Ø Definitions and declaration

o Building blocks

o Element & attribute declaration

Ø Simple types

Ø Namespace

Ø Complex types

Ø Content models

Ø Secondary components

Page 7: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

7웹기술응용설계

Building Blocks

q Schema declaration

Ø Root of the document

Ø Namespace declarations

q Declarations

Ø Elements

Ø Attributes

q Type definitions

Ø Simple typesfor elements and attributes

Ø Complex typesfor elements

Page 8: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

8웹기술응용설계

q Element declaration

Declarations

<product><name>Bolt-001</name><amount>1000</amount>

</product>

<product><name>Bolt-002</name>

</product>

<product><name>Bolt-003</name><amount>1000</amount><amount>2000</amount><amount>3000</amount>

</product>

Example) XML document with element amount

à DTD

decimal

• type := simpleType | complexType• Cardinality constraints

- minOccurs := 0, 1, 2, …- maxOccurs := 0 ~ unbounded

Page 9: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

9웹기술응용설계

q Cardinality constraints

Declarations (cont’d)

XML Schema DTD

minOccurece = 1maxOccurence = 1 e

minOccurece = 0maxOccurence = 1 e?

minOccurece = 1maxOccurence = unbounded e+

minOccurece = 0maxOccurence = unbounded e*

minOccurece = nmaxOccurence = m N/A

Page 10: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

10웹기술응용설계

q Attribute declaration

Declarations (cont’d)

à DTD#REQUIRED >

<quantity partNum=“Bolt-001” unit=“ea” value=“1000”/>

<quantity unit=“ea” value=“2000” partNum=“Bolt-002”/>

<quantity unit=“ea” value=“3000”/> à invalid

Example) XML document with attribute partNum

• type := simpleType• use := required |

optional |prohibited

Page 11: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

11웹기술응용설계

Outline

q History

q Comparison with DTD

q SyntaxØ Definitions and declaration

Ø Simple types

o Built-in, user-derived types

o List, union types

o Facets

Ø Namespace

Ø Complex types

Ø Content models

Ø Secondary components

Page 12: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

12웹기술응용설계

XML Schema Datatype Hierarchy

DTD 호환성

user-defined simple types

user-defined simple types derived by list, union or restriction

Page 13: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

13웹기술응용설계

Simple Types

q Built-in typesØ Derived from anySimpleType

o Primitive types

• Types in their own right

• Atomic: not defined in terms of other data-types

o Derived types

• List or restriction of existing primitive types

q User-defined types

Ø Defined by the author of the schema and particular to the schema

o List, union or restriction is allowed for user-defined simple types

o Extension is NOT allowed for simple typesv Note that complex types can be derived by either extension or restriction

Page 14: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

14웹기술응용설계

Simple Types: Primitive Types

double

Page 15: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

15웹기술응용설계

Simple Types: Derived Types

-128~127

Page 16: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

16웹기술응용설계

Simple Types: User-Defined Types

q Derived by restriction

Ø Users can derive a simple type by restriction of another

simple base type

o Extension is NOT allowed

o I.e., expansion of range or addition of attributes is not

allowed

E.g.) Defining myInteger of range 1000~9999

Page 17: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

17웹기술응용설계

Facets (1/2)

q lengthØ Determines the length of data type

o For string, it means the number of characters it contains

o For binary data such as base64Binary, it means the number of octets

q minLength

Ø Sets the minimum length of the data type

Ø Less than or equal to maxLength

q maxLengthØ Sets the maximum length of the data type

q patternØ Specifies a regular expression which the element content should match

q enumeration

Ø Contains a set of values that element should choose

Page 18: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

18웹기술응용설계

Facets (2/2)

q whiteSpaceØ Controls how the processor should treat whitespace chars

o preserve (default), replace, or collapse

q maxInclusive, maxExclusiveØ Sets an upper bound for values using the data type

q minInclusive, minExclusiveØ Sets a lower bound for values using the data type

v minInclusive ≤ value ≤ maxInclusivev minExclusive < value < maxExclusive

q precision, scaleØ precision determines the maximum number of digits the data

type may have (including comma ‘.’)

Ø scale sets the maximum number of digits appearing in the

fractional part of a decimal based data type

Page 19: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

19웹기술응용설계

Facets Examples

/> à 10 chars long, e.g., “123-456-78”

e.g., 1234.5 , 3425.1, 9182.5, …

e.g., one of “10”, “20”, or “part Code”

à e.g., “123-AB”, “327-XY”, “617-ST”, …

scale value=“1”/> precision value=“6”/>

Page 20: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

20웹기술응용설계

Simple Types: List types

q List types

Ø Derived from existing primitive types, NOT another list or

complex type

Ø Built-in: NMTOKENS, IDREFS, ENTITIES

Ø Using whitespace as a delimiter

E.g.) User-defined list type

<element name=“listOfInteger” type=“listOfIntegerType”>

XML Schema of listOfIntegerType XML Document

Page 21: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

21웹기술응용설계

Simple Types: Union types

q Union types

Ø Enables an element or attribute value to be one or more

instances of one type drawn from the union of multiple

primitive and list types

E.g.) <element name=“zips” type=“zipUnion”>

XML Schema of zipUnion type XML Document

Page 22: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

22웹기술응용설계

Outline

q History

q Comparison with DTD

q Syntax

Ø Definitions and declaration

Ø Simple types

Ø Namespace

Ø Complex types

Ø Content models

Ø Secondary components

Page 23: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

23웹기술응용설계

Namespace

q XML NamespaceØ W3C Recommendation

o First edition on Jan. 1999

o Currently, v1.0 3rd Ed. (Dec. 2009) and v1.1 2nd Ed. (Aug. 2006)

Ø Resolves name conflict between elements or attributes in XML documents

o Qualified names of elements or attributes are required to be globally uniqueand persistent

o Namespace can be used in XML docs and XSD docs as well

Ø Identified by URI (URL or URN, commonly URL)o However, URI is quite long, so a short prefix is used instead

o In case of using URL, it needs NOT to point to actual documents or locations

Ø Default namespaceo Unprefixed elements or attributes are associated with the default namespace of

themselves or parent element’s (block scope)* URL: Uniform Resource Locator (e.g., http://www.w3.org/2001/XMLSchema)* URN: Uniform Resource Name (e.g., urn:isbn:0451450523)* URI: Uniform Resource Identifier (= URL + URN)

Page 24: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

24웹기술응용설계

Namespace (cont’d)

ü 세 개의 <title> element가

서로 다른 의미로 사용되고 있음(또한 같은 scope 내에 동음이의element가 사용될 수도 있음)

ü 또한 타 Markup 언어의 <title> element와도 구별할 필요가 있음(예: XHTML의 <title>)

ü 각각의 <title> element가

parser에 의해 식별되지 않는다면well-formed이지만 valid하지 않은XML 문서로 해석될 가능성이 있음

Page 25: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

25웹기술응용설계

q Namespace declaration

q Default namespace declaration

q Target namespace declaration (used in XSD docs only)

Namespace (cont’d)

<element_name xmlns:edi=“http://ecommerce.org/schema”>

Prefix Namespace URI

<element_name xmlns=“http://ecommerce.org/schema”>

E.g.) <schema xmlns=“http://www.w3.org/2001/XMLSchema” ...>

<schema targetNamespace=“http://ecommerce.org/schema”>

* No prefix is defined for default namespace

Page 26: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

26웹기술응용설계

Namespace (cont’d)

q 네임스페이스 사용 예

Ø Namespace prefix = edi

Ø Namespace URI = “http://ecommerce.org/schema”

<edi:x xmlns:edi=“http://ecommerce.org/schema”><edi:price edi:units=“Euro”>32.18</edi:/price>

</edi:x>

q 디폴트 네임스페이스를 사용하는 경우

<x xmlns=“http://ecommerce.org/schema”><price unit=“Euro”>32.18</price>

</x>

Page 27: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

27웹기술응용설계

Namespace (cont’d)

q Well-known namespaces

Ø xsd=“http://www.w3.org/2001/XMLSchema”

Ø xsi=“http://www.w3.org/2001/XMLSchema-instance”

Ø xhtml=“http://www.w3.org/1999/xhtml”

Ø xsl=“http://www.w3.org/1999/XSL/Transform”

Ø wsdl=“http://www.w3.org/ns/wsdl”

Ø soapenv=“http://www.w3.org/2003/05/soap-envelope”

Ø soaprpc=“http://www.w3.org/2003/05/soap-rpc”

Ø xmldsig=“http://www.w3.org/2000/09/xmldsig”

Ø xmlenc=“http://www.w3.org/2001/04/xmlenc”

Ø …

Page 28: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

28웹기술응용설계

Namespace (cont’d)

q 네임스페이스의 적용 범위

Ø XML 문서는 하나 이상의 네임스페이스를 가질 수 있음

Ø 네임스페이스는 네임스페이스가 선언된 element와 그 element의 내

부에 nested된 모든 element 및 attribute들에 적용됨 (block scope)

Page 29: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

29웹기술응용설계

Namespace in XML Schema

q Target NamespaceØ Using XML Schema, we can

create new elements and

attributes, and keep them in a

specific namespace

Ø This specific namespace is

target namespace where the

newly created elements and

attributes will reside

Ø During validation, an XML

parser verifies whether the

elements and attributes used

in the document exist in the

declared target namespace/

Page 30: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

30웹기술응용설계

<schema xmlns="http://www.w3.org/2001/XMLSchema"xmlns:po="http://www.example.com/PO"targetNamespace="http://www.example.com/PO">

<complexType name="USAddress"><sequence>

<element name="name" type="string"/><element name="street" type="string"/>

</sequence></complexType><complexType name="PurchaseOrderType">

<sequence><element name="shipTo" type="po:USAddress"/><element name="billTo" type="po:USAddress"/>

</sequence></complexType>

...<element name="purchaseOrder" type="po:PurchaseOrderType"/>

</schema>

Namespace in XML Schema (cont’d)

Page 31: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

31웹기술응용설계

<purchaseOrder xmlns=“http://www.example.com/PO” ... >

<shipTo><name>Micheal</name><street>Main street</street>

</shipTo>

<billTo><name>Tom</name><street>Fremont street</street>

</billTo>

...

</purchaseOrder>

Namespace in XML Schema (cont’d)

q Valid XML document example

à targetNamespace of the schema document

Page 32: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

32웹기술응용설계

q Including schema definitions from another external documents

Namespace in XML Schema (cont’d)

<schema xmlns="http://www.w3.org/2001/XMLSchema"xmlns:po="http://www.example.com/PO"targetNamespace="http://www.example.com/PO"… >

<include schemaLocation=“http://www.example.com/PO2.xsd”><element name="purchaseOrder" type="po:PurchaseOrderType"/>

…</schema>

<schema xmlns="http://www.w3.org/2001/XMLSchema"targetNamespace="http://www.example.com/PO"… >

<complexType name="PurchaseOrderType">…

</complexType></schema>

http://www.example.com/PO1.xsd

http://www.example.com/PO2.xsd

* 반드시 동일한target namespace

Page 33: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

33웹기술응용설계

Outline

q History

q Comparison with DTD

q SyntaxØ Definitions and declaration

Ø Simple types

Ø Namespace

Ø Complex types

o Extension, restriction

o Adding attribute

o Global & local element

Ø Content models

Ø Secondary components

Page 34: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

34웹기술응용설계

Complex Types

q Features of complex types

Ø Carrying attributes and elements

o I.e., contains other types (simple or complex)

Ø Can be derived by both restriction and extension

o Cf., only restriction allowed for simple types

Ø Various and flexible content models

o Any, empty, element-only, mixed

o Model groups: sequence, all, choice

o Cardinality constraints: minOccurs, maxOccurs

o Combinations of the above

Page 35: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

35웹기술응용설계

Complex Types: Complex Type Definition

<schema xmlns="http://www.w3.org/2001/XMLSchema"xmlns:po="http://www.example.com/PO"targetNamespace="http://www.example.com/PO">

<element name="purchaseOrder" type="po:PurchaseOrderType"/>

<complexType name="PurchaseOrderType">

<sequence><element name="shipTo" type="po:USAddress"/><element name="billTo" type="po:USAddress"/><element ref="po:comment"

minOccurs="0“ maxOccurs=“10”/>

</sequence><attribute name="orderDate" type="date"/>

</complexType>

<complexType name="USAddress"><sequence>

<element name="name" type="string"/><element name="street" type="string"/>

</sequence></complexType>… …

Attributes

Elements(simple or

complex types)

Specificcardinality

Model group(can be nested)

Page 36: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

36웹기술응용설계

Complex Types: Attribute Declaration

q Only simple types can be used for attribute types

Ø Examples

<attribute name=“orderDate”/>

<attribute name=“orderDate” type=“date”/>

<attribute name=“orderDate” type=“date”

use=“required” fixed=“2003-09-19”/>

<attribute name=“orderDate” type=“date”

use=“optional” default=“2003-09-19”/>

<attribute name=“orderDate” type=“date”use=“prohibited”/>

* prohibited: usually used to restrict the base element

Page 37: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

37웹기술응용설계

Complex Types: Extension & Restriction (1)

q Deriving types by extension

Ø Base type ⊆ Derived type

Ø Extension from a complex type

o Adding new elements or attributes to a base type

Ø Extension from a simple type

o Adding new attributes to a base type

o Expanding range, length, …

q Deriving types by restriction

Ø Base type ⊇ Derived type

Ø Restriction from a complex type

o Limited cardinality of element, use of attributes, …

o Prohibiting attributes(e.g., use=“prohibited”)

Ø Restriction from a simple type

o Limiting range, length, …

[ Derivation of Complex Types ]

<complexType>

<complexContent> <simpleContent>

<restriction> <extension> <restriction> <extension>

Page 38: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

38웹기술응용설계

Complex Types: Extension & Restriction (2)

[ Extension from a simple typeby adding an attribute ]

[ Extension and restriction from a complex type ]

Additionalelements

à Limited cardinality

Page 39: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

39웹기술응용설계

Complex Types: Scope of Elements

q Global elements

Ø Direct children of the

“schema” element

Ø Can be referenced using

attribute “ref”

q Local elements

Ø Child elements of another

element

Ø Local elements with the

same name can be

declared in different

scopes Global Element Local Element

Page 40: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

40웹기술응용설계

Outline

q History

q Comparison with DTD

q SyntaxØ Definitions and declaration

Ø Simple types

Ø Namespace

Ø Complex types

Ø Content modelso Any, empty, mixed

o Sequence, choice, all

o minOccurs, maxOccurs

Ø Secondary components

Page 41: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

41웹기술응용설계

Basic Content Models

q Any typeØ Default content model when you declare an element in XML

Schemao <element name=“anything”/>

== <element name=“anything” type=“anyType”/>

Ø Can contain any contents (completely unconstrained)o E.g., string, integer, elements, …, or mixture of them

q Empty contentØ Can carry attributes, but prevent any content appearing as text or

child elementso <element name=“empty” xsi:nil=“true”/>

v xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

q Mixed content and element onlyØ Mixture of text contents and elements

o <xsd:element name="letterBody"><xsd:complexType mixed="true"> ...

v Default: mixed=“false” (element-only)

Page 42: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

42웹기술응용설계

Mixed Content Model

[ XML Schema ]

[ Valid XML Document ]

Page 43: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

43웹기술응용설계

Model Groups

q sequence group

Ø Only allows the specified order in an instance

q choice group

Ø Allows only one of its children to appear in an instance

q all group

Ø Unordered subset of individual elements

o Children may appear in any order

o Children may appear once or not (no more than once)

o Children must all be individual elements (no groups)

o Children are restricted to contain local elements or refs to top-level elements declarations only

Ø Must appear

o as the sole child

o at the top of content model

Page 44: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

44웹기술응용설계

Cardinality Constraints

q minOccursØ Value: nonnegative integer (Default = 1)

q maxOccursØ Value: nonnegative integer or “unbounded” (Default = 1)

q Examples<element name=“e1” /> ==<element name=“e1” minOccurs=“1” maxOccurs=“1”/>

à DTD: <!ELEMENT e0 (e1)>

<element name=“e1” minOccurs=“0” maxOccurs=“1”/>à DTD: <!ELEMENT e0 (e1?)>

<element name=“e1” minOccurs=“0” maxOccurs=“unbounded”/>à DTD: <!ELEMENT e0 (e1*)>

<element name=“e1” minOccurs=“1” maxOccurs=“unbounded”/>à DTD: <!ELEMENT e0 (e1+)>

<element name=“e1” minOccurs=“3” maxOccurs=“10”/>

à can not be described with DTD

Page 45: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

45웹기술응용설계

Content Model Example: Sequence & Choice

<xsd:complexType name="PurchaseOrderType">

<xsd:sequence>

<xsd:choice>

<xsd:sequence>

<xsd:element name="shipTo" type="USAddress"/>

<xsd:element name="billTo" type="USAddress"/>

</xsd:sequence>

<xsd:element name="singleUSAddress" type="USAddress"/>

</xsd:choice>

<xsd:element ref="comment" minOccurs="0"/>

<xsd:element name="items" type="Items"/>

</xsd:sequence>

<xsd:attribute name="orderDate" type="xsd:date"/>

</xsd:complexType>

Page 46: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

46웹기술응용설계

Content Model Example: Sequence & Choice

<PurchaseOrder orderDate=“2012-03-29”>

<shipTo> ... </shipTo><billTo> ... </billTo><comment> ... </comment><items> ... </items>

</PurchaseOrder>

<PurchaseOrder orderDate=“2012-03-29”>

<singleUSAddress> ... </singleUSAddress><comment> ... </comment><items> ... </items>

</PurchaseOrder>

<PurchaseOrder orderDate=“2012-03-29”>

<singleUSAddress> ... </singleUSAddress><items> ... </items>

</PurchaseOrder>

[ Valid XML documents ]

Page 47: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

47웹기술응용설계

Content Model Example: All

<xsd:complexType name="PurchaseOrderType"><xsd:all><xsd:element name="shipTo" type="USAddress"/><xsd:element name="billTo" type="USAddress"/><xsd:element ref="comment" minOccurs="0"/><xsd:element name="items" type="Items"/>

</xsd:all><xsd:attribute name="orderDate" type="xsd:date"/>

</xsd:complexType>

<xsd:complexType name="PurchaseOrderType"><xsd:sequence><xsd:all><xsd:element name="shipTo" type="USAddress"/><xsd:element name="billTo" type="USAddress"/><xsd:element name="items" type="Items"/>

</xsd:all><xsd:sequence><xsd:element ref="comment" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence></xsd:sequence><xsd:attribute name="orderDate" type="xsd:date"/>

</xsd:complexType>

*** Illegal: used in a sequence group ***

Page 48: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

48웹기술응용설계

Outline

q History

q Comparison with DTD

q SyntaxØ Definitions and declaration

Ø Simple types

Ø Namespace

Ø Complex types

Ø Content models

Ø Secondary componentso Attribute groups

o Annotation

o Redefinition

o Abstract element

o Null element

Page 49: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

49웹기술응용설계

Attribute Groups & Annotation

q Attribute groups

Ø Improves readability of

schemas and facilitates

updating schemas

Ø Must appear at the end of

complex type definitions

q Annotation

Ø Annotating schemas for

benefit of human readers

and applications as well

Ø Use “xml:lang” attribute to

indicate the language of the

information

<attributeGroup name="myAttrGroup"><attribute . . . />. . .

</attributeGroup>

<complexType name="myelement">. . .

<attributeGroup ref="myAttrGroup"/></complexType>

<annotation><documentation xml:lang=“en”>

… Some documentation …</documentation>

</annotation>

Page 50: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

50웹기술응용설계

Redefinition

q To provide some support for evolution or versioningof XML schema files

Ø The redefine mechanism enables you to redefine simple

and complex types, groups, and attribute groups that are

obtained from external schema files (i.e., restriction or

extension from the original version)

o Cf., the include mechanism enables you to use externally

created schema components “as-is” (i.e., without any

modification)

Ø Redefinition requires the external components to be in the

same target namespace as the redefined schema

Page 51: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

51웹기술응용설계

Redefinition Example

… targetNamespace="http://mycom.com/IPO" …

<complexType name="personName"><sequence>

<element name="title" minOccurs="0"/><element name="forename" minOccurs="0“ maxOccurs="unbounded"/>

</sequence></complexType>

… targetNamespace="http://mycom.com/IPO” xmlns:p="http://mycom.com/IPO" …

<redefine schemaLocation=“v1.xsd"><complexType name="personName">

<complexContent><extension base=“p:personName">

<sequence><element name="generation" minOccurs="0"/>

</sequence></extension>

</complexContent></complexType>

</redefine>

<element name="author" type="personName"/>

v1.xsd :

v2.xsd :

Page 52: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

52웹기술응용설계

Substitution Groups

q Substitution groups allow elements to be substituted for other elements

Ø Head element

o a particular named element to be substituted

o E.g., ipo:comment

Ø Substitutableelements

o E.g., shipComment, customerComment

v Both types of elements must be declared as

global elements

<element name="ipo:comment" type="string"/><element name="shipComment" type="string"

substitutionGroup="ipo:comment"/><element name="customerComment" type="string"

substitutionGroup="ipo:comment"/>

<element name="item" minOccurs="0" maxOccurs="unbounded"><complexType>

<sequence><element name="productName" type="string"/><element ref="ipo:comment" maxOccurs=“unbounded"/><element name="shipDate" type="date" minOccurs="0"/>

</sequence></complexType>

</element>

<item partNum="833-AA"><productName>Lapis necklace</productName><ipo:comment>Order #1</ipo:comment><ipo:shipComment>Use gold wrap</ipo:shipComment><ipo:customerComment>Want ASAP!</ipo:customerComment><shipDate>1999-12-05</shipDate>

</item>

Page 53: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

53웹기술응용설계

Abstract Elements and Abstract Types

q Abstract elements can NOT

be used in an instance

document

Ø To make a substitutable

element MUST appear in

the instance document

o From the previous example

<element name=“ipo:comment" type="string” abstract="true"/>

q Abstract type elements

Ø Must be used with a

specific derived type in

instance documents

o E.g., <transport> element

<!-- Abstract type example --><complexType name="Vehicle" abstract="true"/>

<complexType name="Car"> <complexContent>

<extension base="ns:Vehicle"/></complexContent>

</complexType>

<complexType name="Plane"> <complexContent>

<extension base="ns:Vehicle"/></complexContent>

</complexType>

<element name="transport" type="ns:Vehicle"/>

<transport/> à Schema invalid

<transport xsi:type="ns:Car"/> à Schema valid

* xsi="http://www.w3.org/2001/XMLSchema-instance"

Page 54: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

54웹기술응용설계

Null Element

q An element that can has a null value as its content

Ø Meaning of null value

o Unknown

o Not applicable

o The element may be absent

Ø XML has no actual null value that appears as element

contento E.g.) <shipDate>null</shipDate> à “null” string value

q Using attribute “xsi:nil”Ø In the schema: nillable=“true”Ø In the document: xsi:nil=“true”

/>

Page 55: 04-XML Schema - Compatibility Modesclab.konkuk.ac.kr/attachments/lecture/4/04-XML_Schema.pdf · 2019-09-23 · Namespace in XML Schema qTarget Namespace ØUsing XML Schema, we can

55웹기술응용설계

References

q XML Schema 1.0 (2nd Ed) Part 0: Primer

Ø http://www.w3.org/TR/xmlschema-0/

q XML Schema 1.0 (2nd Ed) Part 1: Structures

Ø http://www.w3.org/TR/xmlschema-1/

q XML Schema 1.0 (2nd Ed) Part 2: Data types

Ø http://www.w3.org/TR/xmlschema-2/

q Namespaces 1.0 (3rd Ed) in XML

Ø http://www.w3.org/TR/xml-names/