DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng [email protected]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?
19
Embed
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of.
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
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema
School of Architecture, Design Science and PlanningFaculty of Architecture
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?
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema
School of Architecture, Design Science and PlanningFaculty of Architecture
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/xsv
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 <age> element to hold an integer with a range of 1 to 100“;
DTD supports 10 datatypes;
XML Schema supports 44+ datatypes.
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema
School of Architecture, Design Science and PlanningFaculty of Architecture
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.
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema
School of Architecture, Design Science and PlanningFaculty of Architecture
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.
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema
School of Architecture, Design Science and PlanningFaculty of Architecture
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;
The default namespace is http://www.books.org which is the targetNamespace;
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 <a:aircraft>Boeing 747</a:aircraft>.
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema
School of Architecture, Design Science and PlanningFaculty of Architecture
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;
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema
School of Architecture, Design Science and PlanningFaculty of Architecture
First, using a default namespace declaration, tell the schema-validator that all of the elementsused 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 forassessment.
Third, tell the schema-validator that the schemaLocation attribute we are using is the one inthe XMLSchema-instance namespace.
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema
School of Architecture, Design Science and PlanningFaculty of Architecture
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 <schema>. 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">
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema
School of Architecture, Design Science and PlanningFaculty of Architecture
http://www.w3schools.com/default.asp http://www.w3.org/XML/Schema http://www.w3.org/TR/xmlschema-0/ http://www.w3.org/TR/xmlschema-1/ http://www.w3.org/TR/xmlschema-2/• Roger L. Costello, XML Technologies Course at http://www.xfront.com/