Please visit our sponsors !
XSD Restrictions/Facets
Restrictions are used to control acceptable values for XML
elements or attributes. Restrictions on XML elements are called facets.
Restrictions on Values
This example defines an element called "age" with a restriction. The value of
age can NOT be lower than 0 or greater than 100:
<xs:element name="age">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
|
Restrictions on a Set of Values
To limit the content of an XML element to a set of
acceptable
values, we would use the enumeration constraint.
This example defines an element called "car":
<xs:element name="car">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Audi"/>
<xs:enumeration value="Golf"/>
<xs:enumeration value="BMW"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
|
The "car" element is a simple
type with a restriction. The acceptable values are: Audi, Golf, BMW.
The example above could also have been written like this:.
<xs:element name="car" type="carType"/>
<xs:simpleType name="carType">
<xs:restriction base="xs:string">
<xs:enumeration value="Audi"/>
<xs:enumeration value="Golf"/>
<xs:enumeration value="BMW"/>
</xs:restriction>
</xs:simpleType>
|
Note: In this case the type "carType" can be used by other elements
because it is not a part of the "car" element.
Restrictions on a Series of Values
To limit the content of an XML element to define a series of numbers or
letters that can be used, we would use the pattern constraint.
This example defines an element called "letter":
<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
|
The "letter" element is a simple type with a
restriction. The only acceptable value is ONE of the LOWERCASE letters
from a to z.
The next example defines an element called "initials":
<xs:element name="initials">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z][A-Z][A-Z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
|
The "initials" element is a simple
type with a restriction. The only acceptable value is THREE of the
UPPERCASE letters from a to z.
This example also defines an element called "initials":
<xs:element name="initials">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
|
The "initials" element is a simple
type with a restriction. The only acceptable value is THREE of the
LOWERCASE OR UPPERCASE letters from a to z.
This example defines an element called "choice":
<xs:element name="choice">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[xyz]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
|
The "choice" element is a simple
type with a restriction. The only acceptable value is ONE of the following letters:
x, y, OR z.
The next example defines an element called "prodid":
<xs:element name="prodid">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
|
The "prodid" element is a simple
type with a restriction. The only acceptable value is FIVE digits in a
sequence, and each digit must be in a range from 0 to 9.
Other Restrictions on a Series of Values
Some other restrictions that can be defined by the pattern constraint:
This example defines an element called "letter":
<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z])*"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
|
The "letter" element is a simple type with a
restriction. The acceptable value is zero or more occurrences of lowercase letters
from a to z.
This example also defines an element called "letter":
<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z][A-Z])+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
|
The "letter" element is a simple type with a
restriction. The acceptable value is one or more occurrences of a lowercase letter
followed by a uppercase letter
from a to z.
This example defines an element called "gender":
<xs:element name="gender">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="male|female"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
|
The "gender" element is a simple type with a
restriction. The only acceptable values are male OR female.
This example defines an element called "password":
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9]{8}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
|
The "password" element is a simple
type with a restriction. There must be exactly eight characters in a row and
those characters must be lowercase or uppercase letters from a to z, or a number
from 0 to 9.
Restrictions on White Space Characters
To specify how white space characters should be handled, we would use the
whiteSpace constraint.
This example defines an element called "address":
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="preserve"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
|
The "address" element is a simple type with a
restriction. The whiteSpace constraint is set to "preserve", which means that
the XML processor WILL NOT remove any white space characters.
This example also defines an element called "address":
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
|
This "address" element is a simple type with a
restriction. The whiteSpace constraint is set to "replace", which means that the
XML processor WILL REPLACE all white space characters (line feeds, tabs, spaces,
and carriage returns) with spaces.
This example also defines an element called "address":
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
|
This "address" element is a simple type with a
restriction. The whiteSpace constraint is set to "collapse", which means that
the XML processor WILL REMOVE all white space characters (line feeds, tabs,
spaces, carriage returns are replaced with spaces, leading and trailing spaces
are removed, multiple spaces are reduced to a single space).
Restrictions on Length
To limit the length of a value in an element, we would use the length,
maxLength, and minLength constraints.
This example defines an element called "password":
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
|
The "password" element is a simple
type with a restriction. The value must be exactly eight characters.
This example defines another element called "password":
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="5"/>
<xs:maxLength value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
|
This "password" element is a simple
type with a restriction. The value must be minimum five characters and maximum
eight characters.
Restrictions for Datatypes
Constraint |
Description |
enumeration |
Defines a list of acceptable values |
fractionDigits |
Specifies the maximum number of decimal places allowed.
Must be equal to or greater than zero |
length |
Specifies the exact number of characters or list items
allowed. Must be equal to or greater than zero |
maxExclusive |
Specifies the upper bounds for numeric values (the value
must be less than this value) |
maxInclusive |
Specifies the upper bounds for numeric values (the value
must be less than or equal to this value) |
maxLength |
Specifies the maximum number of characters or list items
allowed. Must be equal to or greater than zero |
minExclusive |
Specifies the lower bounds for numeric values (the value
must be greater than this value) |
minInclusive |
Specifies the lower bounds for numeric values (the value
must be greater than or equal to this value) |
minLength |
Specifies the minimum number of characters or list items
allowed. Must be equal to or greater than zero |
pattern |
Defines the exact sequence of characters that are
acceptable |
totalDigits |
Specifies the exact number of digits allowed. Must be
greater than zero |
whiteSpace |
Specifies how white space (line feeds, tabs, spaces, and
carriage returns) are handled |
Jump to: Top of Page
or HOME or
Printer friendly page
Search W3Schools:
What Others Say About Us
Does the world know about us? Check out these places:
Dogpile
Alta Vista
MSN
Google
Excite
Lycos
Yahoo
Ask Jeeves
We Help You For Free. You Can Help Us!
W3Schools is for training only. We do not warrant its correctness or its fitness for use.
The risk of using it remains entirely with the user. While using this site, you agree to have read and accepted our
terms of use and
privacy policy.
Copyright 1999-2002 by Refsnes Data. All Rights Reserved
|