XML Schema Tutorials - Herong's Tutorial Examples
Dr. Herong Yang, Version 4.00

Built-in Datatype - "decimal"

This section describes what is built-in datatype decimal and its restriction facets.

The built-in datatype "decimal" is also used often in XML documents. It represents decimal values like, -1.23, 12678967.543233, +100000.00, 210.

There are several built-in datatypes derived from "decimal" like, "integer", "long", "int", "short", "byte", etc.

"decimal" and its derived datatypes support the following constraining facets:

  • totalDigits - Specifies Controls the maximum number of values in the value space of datatypes derived from decimal.
  • fractionDigits - fractionDigits controls the size of the minimum difference between values in the value space of datatypes derived from decimal.
  • pattern - Specifies a pattern for the string datatype.
  • enumeration - Specifies a list of string values for the string datatype.
  • whiteSpace - Specifies how white spaces to be handled based on 3 options: "preserve", "replace", or "collapse".
  • maxInclusive - Specifies the maximum value inclusively.
  • maxExclusive - Specifies the maximum value exclusively.
  • minInclusive - Specifies the minimum value inclusively.
  • minExclusive - Specifies the minimum value exclusively.

Here is a sample schema, decimal_datatype.xsd, that uses "decimal" and other numeric built-in datatypes with different restriction facets:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- decimal_datatype.xsd
 - Copyright (c) 2007 by Dr. Herong Yang. All rights reserved.
-->

 <xs:element name="orderLine">
  <xs:complexType>

   <!-- Using "maxInclusive" restriction facet -->
   <xs:attribute name="quantity">
    <xs:simpleType>
     <xs:restriction base="xs:positiveInteger">
      <xs:maxInclusive value="1000"/>
     </xs:restriction>
    </xs:simpleType>
   </xs:attribute>

   <!-- Using "totalDigits" and other restriction facets -->
   <xs:attribute name="price">
    <xs:simpleType>
     <xs:restriction base="xs:decimal">
      <xs:totalDigits value='5'/>
      <xs:fractionDigits value='2'/>
      <xs:minInclusive value='10.01'/>
      <xs:maxInclusive value='99.99'/>
     </xs:restriction>
    </xs:simpleType>
   </xs:attribute>

   <!-- Using "minInclusive" restriction facet -->
   <xs:attribute name="subTotal">
    <xs:simpleType>
     <xs:restriction base="xs:decimal">
      <xs:minInclusive value='10.01'/>
     </xs:restriction>
    </xs:simpleType>
   </xs:attribute>

  </xs:complexType>

 </xs:element>

</xs:schema>

Here is a sample XML document, decimal_datatype.xml, that conforms to decimal_datatype.xsd:

<?xml version="1.0"?>
<orderLine
 quantity="3"
 price="19.99"
 subTotal="59.97"
/>

Sections in This Chapter

Overview of XML Schema Built-in Datatypes

List of Built-in Datatypes

Deriving from Built-in Datatypes - simpleType

Built-in Datatype - "string"

Built-in Datatype - "string" Errors

Built-in Datatype - "dateTime"

Built-in Datatype - "dateTime" Errors

Built-in Datatype - "decimal"

Built-in Datatype - "decimal" Errors

Dr. Herong Yang, updated in 2007
Built-in Datatype - "decimal"