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

Post on 01-Jan-2016

218 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

XML SchemaXML Schema

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

The Pennsylvania State University

ElementTypeAttributeType

XML Declar.

Schema 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:

Components of XML SystemsComponents of XML Systems

XMLParser

(Processor)

XMLApplication

XMLDocument(Contents)

XMLDTD

(Rule)

Well-Formed(Syntax)

Validate(Structure)

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.

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

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.

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

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>

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>

Components of SchemaComponents of Schema

XML Declaration

Comments

Schema Declaration

ElementType Declarations

AttributeType Declarations

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

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

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>

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>

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"?>

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.

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.

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

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

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.

Thank You?

Any Question?

top related