OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] (newbie) DTD question

[ Lists Home | Date Index | Thread Index ]

On Fri, 12 Jul 2002, Glen Mazza wrote:

> Hello,
> 
> I thought this type of XML document (with two types of
> "name"s) was acceptable:
> 
> <family>
> <person>
>     <name>
>          <firstname>John</firstname>
>          <lastname>Smith</lastname>
>     </name>
> </person>
> <pet>
>     <name>Spot</name>
> </pet>
> </family>
> 
> Creating a DTD for this appears to be failing on the
> "name" field.
> 
> I define it once for people as:
> <!ELEMENT name (firstname, lastname)>
> 
> and later for pets as
> <!ELEMENT name (#PCDATA)>
> 
> But evidently I can only define "name" once, even
> though "name" is in different contexts ("person",
> "pet").  Can I scope "names" within the DTD, sort of
> like this following:  (if so, what's the syntax?)
> 
> <!ELEMENT person.name ....
> <!ELEMENT pet.name ....
> 
> Thanks,
> Glen
>   
> 
You can't redefine an element in a DTD (i.e., make it context dependent).
However, it is easily possible in Relax NG:

<element name="person">
   <element name="name">
       <element name="firstname"><text/></element>
       <element name="lastname"><text/></element>
   </element>
</element>

<element name="pet">
   <element name="name"><text/></element>
</element>

I suspect it's possible with XML Schema as well.
-- 
J. David Eisenberg  http://catcode.com/





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS