Datatypes, Values and Representations
This section describes how built-in datatypes can be used to add type declarations to XML elements and attributes to help XML receiver to parse out desired values from XML documents.
There are 2 main purposes for providing XSD built-in datatypes:
- Built-in datatypes can be used to declare an XML element or an XML attribute to be of a specific built-in datatype
to help the XML document receiver to process it with better accuracy.
- Built-in datatypes can be used to build additional new custom datatypes
using <xs:simpleType> and <xs:complexType>.
In this section, we will concentrate on declare an XML element or
an XML attribute with a built-in datatype.
Building new custom datatypes based on built-in datatypes will be discussed
in details in later sections.
First let's see an XML example without any datatype declaration:
When the receiver process this XML element, he/she will face a problem,
because the content could be evaluated
in multiple ways: as an integer value of 7,065,616,365;
as a phone number of (706) 561-6365; and as an ASCII string of "peace".
The above problem can be resolved, if the "data" element were declared a built-in datatype,
because each built-in datatype provided precise rules on:
- What values are supported by the datatype.
- How each value can be represented in the XML document.
- How each representation should be evaluated into a supported value.
To understand how built-in datatypes and their associated rules work,
we need to introduce some terminologies:
- Value Space - The value space of a datatype is the set of values that are supported by that datatype.
I guess we can also call it the value set of a datatype.
- Lexical Space - The lexical space of a datatype is the prescribed set of strings
which can be mapped to values of that datatype.
May be we can call it the representation set of a datatype.
Each item in the set is an literal representation which can be parsed into a value in the value set.
- Lexical Representation - A lexical representation is a single item in the Lexical Space.
With these terminologies, we can describe how XSD datatype can be used in processes of
generating and processing XML documents as:
1. A user, the XML generator, has a value V he wants to communicate in an XML element E.
2. The XML generator finds that value V is in the value space of built-in datatype T.
3. The XML generator declares element E to be datatype T in the XSD document:
<xs:element name="E" type="xs:T"/>
4. The XML generator represents value V with a lexical representation R base on lexical space rules
associated with datatype T and put it in element E in a XML document:
5. Another user, the XML receiver, receives the XSD document and the XML document.
6. The XML receiver parses the representation R
based on lexical space rules associated with datatype T and retrieves the value V back.
The following diagram provides an illustration of how
element E, datatype T, value V and representation R are related to each:
Last update: 2013.
Table of Contents
About This Book
Introduction to XML Schema
XML Editor and Schema Processor - XMLPad
Java API for XML Processing - JAXP
JAXP - XML Schema (XSD) Validation
Xerces2 Java Parser - Java API of XML Parsers
Using Xerces2 Java API
XML Schema Language - Basics
►Introduction of XSD Built-in Datatypes
Overview of XSD 1.1 Built-in Datatypes
List of Built-in Datatypes
►Datatypes, Values and Representations
Datatypes, Values and Representations - Example
Built-in Datatypes Lexical Representation Examples
Declaring Elements and Attributes with Built-in Datatypes
Defining New Datatypes with Built-in Datatypes
"anyType" Built-in Datatype Values and Representations
"anySimpleType" Built-in Datatype Values and Representations
"anyAtomicType" Built-in Datatype Values and Representations
"string" and Its Derived Datatypes
"decimal" and Its Derived Datatypes
"dateTime" and Its Related Datatypes
Miscellaneous Built-in Datatypes
Facets, Constraining Facets and Restriction Datatypes
"simpleType" - Defining Your Own Simple Datatypes
Complex Element Declaration
Identity-Constraints: unique, key and keyref
Assertion as Custom Validation Rules
XML Schema Location and Namespace in XML Documents
Overriding Element Types in XML Documents
Linking Multiple Schema Documents Together
PDF Printing Version