> 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?
>
> Consider the following:
>
> <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?
>
> TIA,
There are at least two ways of solving this type of problems
which arise when trying to "encode" C/C++/Corba/RPC
data structures in XML.
Example:
struct NAME {
char FIRST[10];
char LAST[10];
}
struct ROUTE {
char FIRST[10];
char LAST[10];
}
** 1 **
<NAME>
<NAME_FIRST>Sam</NAME_FIRST>
<NAME_LAST>Blackburn</NAME_LAST>
</NAME>
<ROUTE>
<ROUTE_FIRST>99.409</ROUTE_FIRST>
<ROUTE_LAST>2091.7785</ROUTE_LAST>
</ROUTE>
Now the NAME's and LAST's have different definitions and may
be handle differently the applications.Still the DTD does don recognise
the datatype difference.
** 2 **
<NAME>
<string name="NAME">Sam</string>
<string name="LAST">Blackburn</string>
</NAME>
<ROUTE>
<number name="FIRST" value="99.409" />
<number name="LAST" value="2091.7785" />
</ROUTE>
Here you have both names and datatypes available in a simple manor,
with no name clashing and and DTD that handles datatypes.
This is what I personally use for primitive datatype which cannot be
divided.
Best
/Anders
-- /_/_/_/_/_/_/_/_/_/_/_/_/_/_/ / Financial Toolsmiths AB / / Anders W. Tell / /_/_/_/_/_/_/_/_/_/_/_/_/_/_/