xml schema chao-hsien chu, ph.d. school of information sciences and technology the pennsylvania...

21
XML Schema XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar. Schema Declar.

Upload: eleanor-shields

Post on 01-Jan-2016

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

XML SchemaXML Schema

Chao-Hsien Chu, Ph.D.School of Information Sciences and Technology

The Pennsylvania State University

ElementTypeAttributeType

XML Declar.

Schema Declar.

Page 2: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

Purposes of DTDPurposes of DTD

What elements should be presented?

How many of each element were required?

What kind of element content was permitted?

In what order the elements should appear?

DTD is the modeling language for XML, which define the structure of a XML document. An DTD file provides the following information:

Page 3: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

Components of XML SystemsComponents of XML Systems

XMLParser

(Processor)

XMLApplication

XMLDocument(Contents)

XMLDTD

(Rule)

Well-Formed(Syntax)

Validate(Structure)

Page 4: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

What is XML SchemaWhat is XML Schema

DTD is the original modeling language for XML. It has the following deficiencies:

- DTD did not follow the regular XML syntax,

thus it requires a special parser to validate.

- DTD did not support much of data types.

- DTD is weak in extensibility.

Schema is the new modeling language for XML,which closely follows XML syntax.

Page 5: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

Problems with DTDProblems with DTD

If the DTD statement for element Quantity is:

<!ELEMENT Quantity (#PCDATA)>

Then which of the followings syntaxes are valid?

<Quantity>5</Quantity> _________

<Quantity>hello</Quantity> _________

<Quantity>5.5</quantity> _________

Page 6: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

Facts About XML SchemaFacts About XML Schema Schema documents use XML syntax and are

therefore XML documents.

Schemas are XML documents that conform to DTDs, which define the structure of a XML document.

Many organizations and individuals are creating DTDs and schemas for a broad range of categories (e.g., financial transactions, medical prescriptions, etc.). These collections called repositories which are often available free for download from the web.

Page 7: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

Why Schema is Better?Why Schema is Better?

XML Schema has Support for Data Types

XML Schemas use XML Syntax

XML Schemas Secure Data Communication

XML Schemas are Extensible

Well-Formed is not Enough

Page 8: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

XML Example (1)XML Example (1)

<?xml version="1.0" encoding="ISO-8859-1"?><!– Root Element --><shiporder orderid="889923"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="shiporder.xsd"> <orderperson>John Smith</orderperson> <shipto> <name>Ola Nordmann</name> <address>Langgt 23</address> <city>4000 Stavanger</city> <country>Norway</country> </shipto>

Page 9: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

XML Example (2)XML Example (2)

<item> <title>Empire Burlesque</title> <note>Special Edition</note> <quantity>1</quantity> <price>10.90</price> </item> <item> <title>Hide your heart</title> <quantity>1</quantity> <price>9.90</price> </item>

</shiporder>

Page 10: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

Components of SchemaComponents of Schema

XML Declaration

Comments

Schema Declaration

ElementType Declarations

AttributeType Declarations

Page 11: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

Example of DTD File (1)Example of DTD File (1)

<!ELEMENT shiporder (orderperson, shipto, item+)>

<!ATTLIST orderid CDATA #REQUIRED>

<!ELEMENT orderperson (#PCDATA)>

<!ELEMENT shipto (name, address, city, country)>

<!ELEMENT name (#PCDATA)>

<!ELEMENT address (#PCDATA)>

<!ELEMENT city (#PCDATA)>

<!ELEMENT country (#PCDATA)>

Attribute ListDeclarations

Element TypeDeclarations

Page 12: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

Example of DTD File (1)Example of DTD File (1)

<!ELEMENT item (title, note?, quantity, price)>

<!ELEMENT title (#PCDATA)>

<!ELEMENT note (#PCDATA)>

<!ELEMENT quantity (#PCDATA)>

<!ELEMENT price (#PCDATA)>

Element TypeDeclarations

Page 13: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

XML Schema (1)XML Schema (1)

<?xml version="1.0" encoding="ISO-8859-1" ?><!– Root Element --><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="shiporder"> <xs:complexType> <xs:sequence> <xs:element name="orderperson" type="xs:string"/> <xs:element name="shipto"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="address" type="xs:string"/> <xs:element name="city" type="xs:string"/> <xs:element name="country" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>

Page 14: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

XML Schema (2)XML Schema (2)<xs:element name="item" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="title" type="xs:string"/> <xs:element name="note" type="xs:string" minOccurs="0"/> <xs:element name="quantity" type="xs:positiveInteger"/> <xs:element name="price" type="xs:decimal"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="orderid" type="xs:string" use="required"/> </xs:complexType></xs:element></xs:schema>

Page 15: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

XML DeclarationXML Declaration

Is used to provide information regarding processing such as processor (name and version), of the processor

Syntax: <?processor instruction = “value of instruction” ?>

Examples: <?xml version = “1.0” ?> <?xml version="1.0" encoding="Big5" ?> <?xml version = "1.0" standalone = "no"?>

Page 16: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

CommentsComments

A place to write a note for reminding, simple documentation, or commenting out codes for debugging, etc., which will not be seen by the end users.

<!-- This is a comment area

--> You can use any character inside the comment

area except “--” itself

There is no limitation on the length of the comment area.

Page 17: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

Selected XML Schema Data TypesSelected XML Schema Data Types boolean. 0 (false) or 1 (true).

char. A single character.

string. A series of characters.

float. A real number.

int. A whole number.

date. A date formatted as YYYY-MM-DD.

time. A time formatted as HH-MM-SS.

id. Text that uniquely identifies an element or attribute.

idref. A reference to an id.

enumeration. A series of values from which only one may be chosen.

Page 18: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

Date and Time Data TypesDate and Time Data Types

Name Description

Date Defines a date value

dateTimeDefines a date and time value

Duration Defines a time interval

gDay Defines a part of a date - the day (DD)

gMonth Defines a part of a date - the month (MM)

gMonthDay Defines a part of a date - the month and day (MM-DD)

gYear Defines a part of a date - the year (CCYY)

gYearMonth Defines a part of a date - the year and month (CCYY-MM)

Time Defines a time value

Page 19: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

Numeric Data TypesNumeric Data Types Name Description

Byte A signed 8-bit integerDecimal A decimal valueInt A signed 32-bit integerInteger An integer valueLong A signed 64-bit integernegativeInteger An integer containing only negative values ( .., -2, -1.)nonNegativeInteger An integer containing only non-negative values (0, 1, 2, ..)nonPositiveInteger An integer containing only non-positive values (.., -2, -1, 0)positiveInteger An integer containing only positive values (1, 2, ..)Short A signed 16-bit integerunsignedLong An unsigned 64-bit integerunsignedInt An unsigned 32-bit integerunsignedShort An unsigned 16-bit integerunsignedByte An unsigned 8-bit integer

Page 20: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

Advantages of XML SchemaAdvantages of XML Schema

Consistency. It follows XML syntax.Extensibility. It includes data type and

namespaces.Exchangeability/manipulability.Rigid specification.Ease of use. Can use with XML API such as

DOM and SAX.

Page 21: XML Schema Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University ElementType AttributeType XML Declar

Thank You?

Any Question?