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 question:DTD problem(#PCDATA)

[ Lists Home | Date Index | Thread Index ]
  • To: <xml-dev@lists.xml.org>
  • Subject: Re: [xml-dev] Newbie question:DTD problem(#PCDATA)
  • From: "Rick Jelliffe" <ricko@allette.com.au>
  • Date: Fri, 1 Nov 2002 17:57:51 +1100
  • References: <000901c2811a$bb450270$1401a8c0@dscs.com>

From: "Allen Chu" <achu@dscs.com>

> Thanks for your responses. Allow me to go back to my original
> thought. What I present in element bio is more than one #PCDATA or
> footnote. Changing to from "+" to "*" makes bio contain zero or more
> #PCDATA/footnote. In this case, neither #PCDAT nor footnote is required
> for bio. And that violates my original design. Therefore, I don't think
> "*" will make them equvalent from my understanding. So, what I actualy
> try to achieve is to let bio at least have one element:#PCDATA or
> footnote.
 
You cannot use DTDs for this.

The new generation of schema langages allow this. In Schematron, for example,
you can specify something like this

 <rule context="bio">
    <assert test="count(*) = count(footnote)">
        The only element type allowed in a "bio" is "footnote"
    </assert>
    <assert test="string-length(normalize-space()) &gt; 1 and count(bio)=0">
        If a "bio" element has text, it cannot have a "footnote" element
    <assert>
 </rule>

Cheers
Rick Jelliffe




 

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

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