Strong Typing in SGML and XML

Andrew Layman andrewl at
Thu May 8 20:08:06 BST 1997

I accidently sent this message before completing it.  The full message
is here:

> Several people have written in recently asking, in effect, "What are
> the
> purposes of this strong typing?  What needs does it solve?"  So I
> asked
> around.  Here are the needs that have been cited:
> 1.	Storage optimization.  Various clients want to be able to
> optimize storage by keeping numbers in a binary format, strings in a
> preallocated structure, etc.
> 2.	Implied semantics.  E.g. numbers can be added together, if you
> know they are numbers. Also, knowing that a number is meant to have a
> fixed versus floating precision affects how operations are performed,
> what kind of precision is retained during calculations, what errors
> are
> reported, etc. Knowing that a string is meant to be a 
> URL gives hints on its use. Etc. 
> 3.	Parsing and formatting rules. Dates are expected to be in some
> standard representation, such as given by ISO 8601 (e.g.).  Floating
> point numbers permit scientific notation. Etc. For example,   
> though the number "0.1234E+20" could have been represented as 
> "<mantissa>1234</mantissa><exponent>20</exponent>", and the date
> "19970508T10:47" could have been similarly broken into year, month,
> etc.,
> and this markup would eliminate the need for special parsers for
> numbers and
> dates, it has obvious readability and bloat problems.
> An explicit data type can signal what the internal elements are and
> how
> to parse for them without tags. 
> 4.	Different data types need different supplementary attributes,
> such as number of digits precision, total size in characters, whether
> time zones are present, etc.  (In Tim's proposal, these all overload a
> single, generic attribute.)
> 5.	Range restrictions. Dates and other kinds of things measured in
> numbers can be limited to a range of values.  All types can be
> potentially limited to a set of descrete values (by enumeration or
> rule). For example, an attribute expressing a color
> in terms of wavelength could be limited to 400..700 (nanometers). An
> attribute listing a US egg size could be limited to be among
> "medium," "large," "extra large" and "jumbo." If represented
> numerically,
> it could be limited to "1," "2," "3" and "4."  
> 6.	Passthrough. Sometimes XML is a carrier syntax between systems
> where some participants need to convey implications not covered in
> points 
> 1 through 5 above. For example, a database may make a distinction 
> between CHAR and VARCHAR even though other readers of a document
> don't.

xml-dev: A list for W3C XML Developers
Archived as:
To unsubscribe, send to majordomo at the following message;
unsubscribe xml-dev
List coordinator, Henry Rzepa (rzepa at

More information about the Xml-dev mailing list