[http://creativecommons.org/licenses/by/3.0/]
This work is licensed under a CC
Attribution 3.0 Unported License [http://creativecommons.org/licenses/by/3.0/]
The XML Schema Definition Language (XSD) is the most popular schema language for XML today. It has been introduced to overcome some of the commonly observed limitations of DTDs, most notably the lack of typing. Simple Types describe content which is not structured by XML markup, which means it describes attribute values and element content. Simple types can be defined by deriving new types from existing types by using type restriction.
XML Schema is a language for describing an XML schema.
An XML schema can be defined using XML Schema.
I would like to use XML Schema for my XML schema.
getting into people's heads
DTD | XSD | |
---|---|---|
Concepts | some conceptual model (formal/informal) | |
Types | ID/IDREF and (#P)CDATA | Hierarchy of Simple and Complex Types |
Markup Constructs | Element Type Declarations <!ELEMENT order … |
Element Definitions <xs:element name="order"> … |
Instances (Documents) | <order date=""> [ order content ] </order> |
<phone>+1-510-6432253</phone>
)undefined
)<xs:element name="home" type="phoneType"/> <xs:element name="office" type="phoneType"/> <xs:simpleType name="phoneType"> <xs:restriction base="xs:string"> <xs:maxLength value="30"/> </xs:restriction> </xs:simpleType>
<xs:element name="business"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="30"/> </xs:restriction> </xs:simpleType> </xs:element>
by definition
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:simpleType name="integer"> <xs:restriction base="xs:decimal"> <xs:fractionDigits value="0" fixed="true"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="nonNegativeInteger"> <xs:restriction base="integer"> <xs:minInclusive value="0"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="positiveInteger"> <xs:restriction base="nonNegativeInteger"> <xs:minInclusive value="1"/> </xs:restriction> </xs:simpleType> </xs:schema>
anySimpleType
minLength
and maxLength
)length, minLength, maxLength, pattern, enumeration, whiteSpace, maxInclusive, maxExclusive, minExclusive, minInclusive, totalDigits, fractionDigits
maxLength
)string |
length, minLength, maxLength, pattern, enumeration, whiteSpace |
---|---|
boolean |
pattern, whiteSpace |
float |
pattern, enumeration, whiteSpace, maxInclusive, maxExclusive, minInclusive, minExclusive |
double |
pattern, enumeration, whiteSpace, maxInclusive, maxExclusive, minInclusive, minExclusive |
decimal |
totalDigits, fractionDigits, pattern, whiteSpace, enumeration, maxInclusive, maxExclusive, minInclusive, minExclusive |
duration |
pattern, enumeration, whiteSpace, maxInclusive, maxExclusive, minInclusive, minExclusive |
dateTime |
pattern, enumeration, whiteSpace, maxInclusive, maxExclusive, minInclusive, minExclusive |
time |
pattern, enumeration, whiteSpace, maxInclusive, maxExclusive, minInclusive, minExclusive |
date |
pattern, enumeration, whiteSpace, maxInclusive, maxExclusive, minInclusive, minExclusive |
gYearMonth |
pattern, enumeration, whiteSpace, maxInclusive, maxExclusive, minInclusive, minExclusive |
gYear |
pattern, enumeration, whiteSpace, maxInclusive, maxExclusive, minInclusive, minExclusive |
gMonthDay |
pattern, enumeration, whiteSpace, maxInclusive, maxExclusive, minInclusive, minExclusive |
gDay |
pattern, enumeration, whiteSpace, maxInclusive, maxExclusive, minInclusive, minExclusive |
gMonth |
pattern, enumeration, whiteSpace, maxInclusive, maxExclusive, minInclusive, minExclusive |
hexBinary |
length, minLength, maxLength, pattern, enumeration, whiteSpace |
base64Binary |
length, minLength, maxLength, pattern, enumeration, whiteSpace |
anyURI |
length, minLength, maxLength, pattern, enumeration, whiteSpace |
QName |
length, minLength, maxLength, pattern, enumeration, whiteSpace |
NOTATION |
length, minLength, maxLength, pattern, enumeration, whiteSpace |
de
, de-CH
, and other tags([a-zA-Z]{2}|[iI]-[a-zA-Z]+|[xX]-[a-zA-Z]{1,8})(-[a-zA-Z]{1,8})*
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:simpleType name="myIntegerType"> <xs:restriction base="xs:integer"> <xs:minInclusive value="10000"/> <xs:maxInclusive value="99999"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="stockKeepingUnitType"> <xs:restriction base="xs:string"> <xs:pattern value="\d{3}-[A-Z]{2}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="USStateType"> <xs:restriction base="xs:string"> <xs:enumeration value="AK"/> <xs:enumeration value="AL"/> <xs:enumeration value="AR"/> <!-- and so on ... --> </xs:restriction> </xs:simpleType> </xs:schema>
pattern
, the lexical space can also be restrictedtype layerto schema languages