DTD Question

David Brownell db at Eng.Sun.COM
Sat Oct 17 19:35:37 BST 1998


Samuel R. Blackburn wrote:
> 
> <NAME>
>   <FIRST>Sam</FIRST>
>   <LAST>Blackburn</LAST>
> </NAME>
> <ROUTE>
>    <FIRST>99.409</FIRST>
>    <LAST>2091.7785</LAST>
> </ROUTE>
> 
> Is it possible in DTD to say that NAME.FIRST is a string
> and ROUTE.FIRST is a number?

The DTD doesn't represent data typing; that's the job of
some component that interprets information encoded in XML.
Your overloading of a "flat" namespace makes that hard.

You could have chosen other validatable ways to do this:

  <NAME>
	<NAME.FIRST>Sam</NAME.FIRST>
	...</NAME>
  <ROUTE>
	<ROUTE.FIRST>99.409</ROUTE.FIRST>
	...</ROUTE>

Or with namespaces (the "xmlns:" decarations go best in
the DTD, IMHO):

  <NAME xmlns:NAME=".../name-rules">
	<NAME:FIRST>Sam</NAME:FIRST>
	... </NAME>
  <ROUTE xmlns:ROUTE=".../route-rules">
	<ROUTE:FIRST>99.409</ROUTE:FIRST>
	...</ROUTE>

Or even just have the rules that applications must follow
implicitly, based on context (and probably making validation
hard/impossible over time).  I'd use an explicit approach,
since context is so easily lost.

- Dave

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)




More information about the Xml-dev mailing list