Best way to represent fractional values?

Because some fractional values (e.g. 1/3) cannot be exactly represented using any of the types provided by XML Schema (due to the recurring nature of their decimal representation) I want to define a new type that will enable exact representation of such values.

As I see it there are two possibilities:

1) Create a complex type with a denominator and numerator, possibly something like:

<complexType name="fraction">

     <sequence>

          <element name="numerator" type="decimal"/>

          <element name="denominator" type="decimal"/>

     </sequence>

</complexType>

2) Create a simple type as a restriction on "string", possibly something like:

<simpleType name="fraction">

     <restriction base="string">

          <pattern value="[0-9]+(.[0-9]+)/[0-9]+(.[0-9]+)"/>

     </restriction>

</simpleType>

Both of these approaches have their benefits and pitfalls of course.

Are there any "best practices" in this regard? It seems a pity that there was no fraction type defined for us in the first place (or am I missing something somewhere?)

Many thanks

Hugh Wallis

Received on Monday, 10 February 2003 17:32:42 UTC