RE: DTD Question

Ronald Bourret (rbourret@ito.tu-darmstadt.de)
Sat, 17 Oct 1998 12:56:47 +0200


Samuel R. Blackburn wrote:

> I just attended a briefing about XML. One of the things
> that struck me was, if I understand the presenter, DTD
> thinks the world is flat. Is it possible for DTD to describe
> elements of the same name but have different meaning?
>=20
> Consider the following:
>=20
> <NAME>
> <FIRST>Sam</FIRST>
> <LAST>Blackburn</LAST>
> </NAME>
> <ROUTE>
> <FIRST>99.409</FIRST>
> <LAST>2091.7785</LAST>
> </ROUTE>
>=20
> Is it possible in DTD to say that NAME.FIRST is a string
> and ROUTE.FIRST is a number?

No. DTDs cannot describe the data type of non-attribute data. It is =
always character.

There are various schema languages floating around, some of which (DCD, =
SOX), support data types. However, these do not support multiple types =
for the same element -- that is, you would need FIRST1 and FIRST2 in =
your example.

The only way to apply the constraints you want is in the application. =
This is possible in your example because the parents of FIRST are =
different in each case.

-- Ron Bourret