Re: XSLT choking on DTD?

Subject: Re: XSLT choking on DTD?
From: "Nikolai Grigoriev" <grig@xxxxxxx>
Date: Mon, 22 Nov 1999 03:18:23 +0300
Hi!

>It might be useful to know:
>
><!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special;">
>
>I think the problem is surrounding the PCDATA...


Yes, probably it is. Once you have #PCDATA children, you cannot build
nested expressions, only plain disjunctions followed by an asterisk.
[see XML Spec 3.2.2].

I suggest writing <!ENTITY % flow "(%inline; | %block;)*"> instead
(provided that %block is also a plain list of items). Maybe this is not
what you mean; but what you mean cannot be expressed, because
for elements with character contents, "the types of the child elements
may be constrained, but not their order or their number of occurrences"
[XML Spec, 3.2.2]. You cannot force %inlines to precede %blocks.

Regards,
Nikolai

>On Sun, 21 Nov 1999, disco wrote:
>
>> Hi,
>>
>> I'm having a strange problem: XSLT (both XT and LotusXSL) are choking on
a
>> part of my DTD:
>>
>> <!ENTITY % flow "(%inline;)* | (%block;)*">
>> ...
>> <!ELEMENT footnote (%flow;)>
>>
>> Note that inline and block are properly defined earlier in the DTD, and
>> are just fine as far as all elements which use them directly are
>> concerned.
>>
>> I have tried manually replacing "%flow;" with its expansion,
unfortunately
>> to no avail. Regardless of what I do, XSLT gripes that I'm missing a '('
>> somewhere.
>>
>> Any ideas what could be going on here?
>>
>> Thanks,
>> Dan




 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread
  • XSLT choking on DTD?
    • disco - Sun, 21 Nov 1999 16:42:35 -0500 (EST)
      • disco - Sun, 21 Nov 1999 17:57:16 -0500 (EST)
      • <Possible follow-ups>
      • Nikolai Grigoriev - Mon, 22 Nov 1999 02:15:17 +0300
      • Nikolai Grigoriev - Mon, 22 Nov 1999 03:18:23 +0300 <=
        • disco - Sun, 21 Nov 1999 20:46:25 -0500 (EST)