Download presentation
Presentation is loading. Please wait.
1
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au What is XML Schema ? XML Schema is an XML based description of your data’s business rules – alternative to DTD; An XML schema expresses the structure of an XML document as DTD does; The XML Schema language is also referred to as XML Schema Definition (XSD); What XML Schema can while DTD can’t – complex datatype of elements or attributes – think about how to describe an attribute which is an integer ranges from 1 to 100?
2
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au Validate your XML documents I:
3
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au Validate your XML documents II: Online Validate (This version is for schema documents with the namespace URI http://www.w3.org/2001/XMLSchema) at http://www.w3.org/2001/03/webdata/xsvhttp://www.w3.org/2001/03/webdata/xsv Topologi at http://www.topologi.com/http://www.topologi.com/ DTD to Schema Converter at: LuMriX dtd2xs http://lists.w3.org/Archives/Public/xmlschema-dev/2001Jun/0116.htmlhttp://lists.w3.org/Archives/Public/xmlschema-dev/2001Jun/0116.html Syntext Dtd2Xs http://www.syntext.com/products/index.htm#Dtd2Xshttp://www.syntext.com/products/index.htm#Dtd2Xs GUI Oriented: XML Spy – http://www.xmlspy.comhttp://www.xmlspy.com Turbo XML– http://www.extensibility.comhttp://www.extensibility.com
4
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au Why DTD is out? You have to learn different syntax – a syntax different and inconsistent with XML files you are working on; Limited datatype capability – DTDs support a very limited capability for specifying datatypes. For example, you can not express "I want the element to hold an integer with a range of 1 to 100“; DTD supports 10 datatypes; XML Schema supports 44+ datatypes.
5
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au Why Schema I? XML Schema has Support for Data Types – it is easier to describe permissible document content and validate the correctness of data, etc. XML Schemas use XML Syntax – You don't have to learn another language – you can use your XML editor and parser; XML Schemas Secure Data Communication – with XML Schemas, the sender can describe the data in a way that the receiver will understand – a “Key”; XML Schemas are Extensible – just like XML, because they are written in XML – reuse your Schema in other Schemas, create your own data types, etc.
6
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au Why Schema II? Well-Formed is not Enough – a well-formed XML document is a document that conforms to the XML syntax rules; Even if documents are Well-Formed can have serious consequences because the XML file may violate business rules; Such as: you order 5 gross of laser printers, and you make a mistake in your XML file – 5 laser printers. With XML Schemas, most of these errors can be caught by your validating software.
7
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au Why Schema III – Namespace: The main reason for using a schema instead of a DTD is the ability to mix namespaces; An XML namespace is a collection of names, identified by a URI reference [RFC2396], which are used in XML documents as element types and attribute names; XML document may contain elements and attributes that are defined for and used by multiple software modules – However, such XML files contain multiple markup vocabularies which can pose problems of recognition and collision; These require components have universal names – XML namespace is the mechanism to solve this problem.
8
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au Compare Schema with the Related XML <shiporder orderid="889923" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="example.xsd"> John Smith Ola Nordmann Langgt 23 4000 Stavanger Norway Empire Burlesque Special Edition 1 10.90
9
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au Compare DTD with the Related Schema
10
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au DTD:
11
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au Schema:
12
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au Schema Tips: For Tag <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.books.org" xmlns="http://www.books.org" elementFormDefault="qualified"> All Schema has “schema” as root element. And xmlns:xsd = "http://www.w3.org/2001/XMLSchema" indicates that all XML-Schema elements are to be prefixed with an xsd: tag; Target nameplace can act as an identification in the data streams when more than one schemas are involved in – it is optional; The elements and datatypes that are used to construct schemas – schema, element, complexType, sequence, string, etc. are come from the http://www.w3.org/2001/XMLSchema namespace; http://www.w3.org/2001/XMLSchema The default namespace is http://www.books.org which is the targetNamespace;http://www.books.org elementFormDefault="qualified“ – This is a directive to any instance documents which conform to this schema: Any elements used by the instance document which were declared in this schema must be namespaced – for example Boeing 747.
13
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au Referencing Schema in XML instance document I: <BookStore xmlns ="http://www.books.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.books.org BookStore.xsd"> My Life and Times Paul McCartney July, 1998 94303-12021-43892 McMillin Publishing... The line xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" indicates that we want to use elements defined in the http://www.w3.org/2001/XMLSchema-instance definition;
14
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au Referencing Schema in XML instance document II: First, using a default namespace declaration, tell the schema-validator that all of the elements used in this instance document come from the http://www.books.org namespace. Second, with schemaLocation tell the schema-validator that the http://www.books.org namespace is defined by BookStore.xsd, Note: The xsi:schemaLocation and xsi:noNamespaceSchemaLocation attributes can be used in a document to provide hints as to the physical location of schema documents which may be used for assessment. Third, tell the schema-validator that the schemaLocation attribute we are using is the one in the XMLSchema-instance namespace.
15
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au No targetNamespace (noNamespaceSchemaLocation Sometimes you may wish to create a schema but without associating the elements with a namespace; The targetNamespace attribute is actually an optional attribute of. Thus, if you don’t want to specify a namespace for your schema then simply don’t use the targetNamespace attribute; Note that there is no default namespace declaration. So, none of the elements are associated with a namespace; Note that we do not use xsi:schemaLocation (since it requires a pair of values - a namespace and a URL to the schema for that namespace). Instead, use xsi:noNamespaceSchemaLocation For Example, in XML instance file: <shiporder orderid="889923" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="example.xsd">
16
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au Assembling an Instance Document from More than one schema An instance document may be composed of elements from multiple schemas. <Library xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://www.book.org Book.xsd http://www.employee.org Employee.xsd"> My Life and Times Paul McCartney 1998 1-56592-235-2 Macmillan Publishing John Doe 123-45-6789
17
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au Include method: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema“ targetNamespace="http://www.library.org" xmlns="http://www.library.org“ elementFormDefault="qualified">
18
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au Building a Schema from Multiple Schema Documents with Different Namespaces – use import method <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.camera.org" xmlns:nikon="http://www.nikon.com" xmlns:olympus="http://www.olympus.com" xmlns:pentax="http://www.pentax.com" elementFormDefault="qualified"> <xsd:import namespace="http://www.nikon.com" schemaLocation="Nikon.xsd"/> <xsd:import namespace="http://www.olympus.com" schemaLocation="Olympus.xsd"/> <xsd:import namespace="http://www.pentax.com" schemaLocation="Pentax.xsd"/>
19
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng wpeng@arch.usyd.edu.au References: http://www.w3schools.com/default.asp http://www.w3schools.com/default.asp http://www.w3.org/XML/Schema http://www.w3.org/XML/Schema http://www.w3.org/TR/xmlschema-0/ http://www.w3.org/TR/xmlschema-0/ http://www.w3.org/TR/xmlschema-1/ http://www.w3.org/TR/xmlschema-1/ http://www.w3.org/TR/xmlschema-2/ http://www.w3.org/TR/xmlschema-2/ Roger L. Costello, XML Technologies Course at http://www.xfront.com/http://www.xfront.com/
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.