- From: Jon Bosak <bosak@atlantic-83.Eng.Sun.COM>
- Date: Fri, 16 May 1997 13:51:27 -0700
- To: w3c-sgml-wg@w3.org
From: Jean Paoli <jeanpa@microsoft.com> To: "'w3c-sgml-wg@w3.org'" <w3c-sgml-wg@w3.org> Subject: SD3 - Data Types Date: Thu, 15 May 1997 21:14:17 -0700 SD3 - Data Types ------------------------------- For many data processing applications, knowing the semantics of an element is not enough. Certain typical types of data, such as numbers and dates, form the basic measurements of whatever it is their elements represent. These types imply a typical sort order, an opportunity for efficient storage, and a grammar beyond XML. Proposal: (With special thanks to Tim Bray's paper "http://www.textuality.com/xml/typing.html"). Define a standard attribute, XML-TYPE, based on SQL data types. Valid values are CHAR, VARCHAR, INTEGER, FLOAT, DECIMAL, DATE, TIME and TIMESTAMP. Numbers and dates, times, etc. will have implied text representations given by some t.b.d. ISO standards (e.g. ISO 8601::1988). At a minimum, float formats must allow both scientific and non-scientific formats (e.g. "12.34" and "0.1234E+2".) If no XML-TYPE attribute is given, VARCHAR is default. These data types have the effect of subclassing the contents of any element whose content type is ANY or MIXED. (More generally, I think of xml-type as inline subclassing of the contents of any element; the subclassing must be compatible with the element's content spec.) Many of these types can be qualified by further attributes. Here is a first-cut: <!ELEMENT VARCHAR (#PCDATA)> <!ATTLIST CHAR XML-MAXSIZE CDATA> <!ELEMENT CHAR (#PCDATA)> <!ATTLIST CHAR XML-MAXSIZE CDATA XML-SIZE CDATA #IMPLIED > <!ELEMENT DECIMAL (#PCDATA)> <!ATTLIST DECIMAL XML-DIGITS-R CDATA 4 XML-DIGITS-TOTAL CDATA 18 XML-SCALE CDATA 0 > <!ELEMENT INTEGER (#PCDATA)> <!ATTLIST INTEGER XML-DIGITS-R CDATA #FIXED 0 XML-DIGITS-TOTAL CDATA 9 > <!ELEMENT FLOAT (#PCDATA)> <!ATTLIST FLOAT XML-BITS CDATA 64 > <!ELEMENT TIME (#PCDATA)> <!ELEMENT DATETIME (#PCDATA)> <!ATTLIST DATETIME XML-ZONE ( false | true ) true > <!ELEMENT DATE (#PCDATA)> <!ATTLIST DATE XML-ZONE ( false | true ) true > Here is an example of data types in action: <LINEITEM XML-ID="L1"> <NAME>I, the Jury</NAME> <AUTHOR>Spillane, Mickey</AUTHOR> <PRICE xml-type="DECIMAL">2.95</PRICE> <PUBLICATION-DATE xml-type="DATE">19470101</PUBLICATION-DATE> <MANF-CODE><*xml-type xml-size=12>CHAR</>451-AE1396 </MANF-CODE> </LINEITEM > -----------------------------
Received on Friday, 16 May 1997 16:51:58 UTC