XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
John GilbertsonSubject: DTD Validation problems
Author: John Gilbertson
Date: 05 Mar 2003 10:30 AM
I've just downloaded the evaluation version of Stylus Studio as the place I work at are investigating many XML creation/editing/etc programs.

I have a document which we've created to test various programs, for editing and output.
The file links to a DTD, which Apache Cocoon (under Tomcat) is happy with, and accepts that it validates. XMetaL 3 will accept that it is valid if included inline in the original file. (For some reason doesn't like to try validate a stand alone DTD though)
It also validates in XMLSPY 5.

SS however, reports an error.
The relevant snippet is:
{!ELEMENT page (title, topnavbar, lowernavbar, maincontent, leftmarketing, localnews, localnav, lowermarketing, footer)}
{!ENTITY % content "p|h1|h2|h3|h4|h5|h6|ul|ol|table|center"}
{!ENTITY % inline "#PCDATA|em|b|a|img|br"}
{!ELEMENT maincontent ((%content;|%inline;)*)}

SS reports and error between the inline and ;)*)} saying "Parsing error in -foo-: Expected ',' or ')' characters or close parenthesis in content model of element 'maincontent' (line 10, column 41)

Which programs are right? Is that valid, or is it not?

Postnext
Alberto MassariSubject: Re: DTD Validation problems
Author: Alberto Massari
Date: 05 Mar 2003 02:25 PM
Hi John,

At 10.49 05/03/2003 -0500, you wrote:
>From: "John Gilbertson"
>[...]
>The relevant snippet is:
>{!ELEMENT page (title, topnavbar, lowernavbar, maincontent, leftmarketing,=
>localnews, localnav, lowermarketing, footer)}
>{!ENTITY % content "p|h1|h2|h3|h4|h5|h6|ul|ol|table|center"}
>{!ENTITY % inline "#PCDATA|em|b|a|img|br"}
>{!ELEMENT maincontent ((%content;|%inline;)*)}
>[...]
>Which programs are right? Is that valid, or is it not?

I would say that Stylus Studio (that is, the Xerces parser) is right here.
The definition for the element "maincontent" gets expanded into

((p|h1|h2|h3|h4|h5|h6|ul|ol|table|center|#PCDATA|em|b|a|img|br)*)

and this is defining a mixed content that is not valid according to the
grammar in the XML specs ( 3.2.2 "Mixed Content" -
http://www.w3.org/TR/REC-xml#sec-mixed-content).
The grammar production for this is

[51] Mixed ::= '(' S? '#PCDATA'
(S? '|'
S?
Name)*
S? ')*' | '('
S? '#PCDATA'
S? ')'

that forces the definition to have the #PCDATA as the first option.
So, you can fix your DTD by changing the last definition into

{!ELEMENT maincontent ((%inline;|%content;)*)}

Hope this helps,
Alberto

Postnext
John GilbertsonSubject: Re: DTD Validation problems
Author: John Gilbertson
Date: 06 Mar 2003 04:09 AM
On 3/5/03 2:25:19 PM, Alberto Massari wrote:
>Hi John,

>I would say that Stylus Studio (that is, the
> Xerces parser) is right here.
> The definition for the element "maincontent"
> gets expanded into

>((p|h1|h2|h3|h4|h5|h6|ul|ol|table|center|#PCDATA|em|b|a|img|br)*)

>and this is defining a mixed content that is
>not valid according to the grammar in
>the XML specs ( 3.2.2 "Mixed Content" -
>http://www.w3.org/TR/REC-xml#sec-mixed-content).

>The grammar production for this is

> [51] Mixed ::= '(' S? '#PCDATA'
>(S? '|' S? Name)* S? ')*' | '(' S? '#PCDATA'
S? ')'

>that forces the definition to have the
>#PCDATA as the first option.
>So, you can fix your DTD by changing the
>last definition into

> {!ELEMENT maincontent ((%inline;|%content;)*)}

>Hope this helps,
>Alberto

Thanks for the heads up, I've just tried swapping round %inline; and %content, but have a new error message appearing:
So, we have:
{!ELEMENT maincontent ((%inline;|%content;)*)}
And the new error message is:
Parsing error in file -foo-: Expected an element name (line 10, column 33)

That is just after the inline; and before |content;

Now, I've also tried creating a new ENTITY,
{!ENTITY % bigthing "#PCDATA|em|b|a|img|br|p|h1|h2|h3|h4|h5|h6|ul|ol|table|center"}
and
{!ELEMENT maincontent ((%bigthing;)*)}
But this is coming up with the same error as above, again just after the ; so I'm assuming that the definition of one of the things in %inline; is causing the problems.
Taking out the #PCDATA makes it not complain.
Using just %inline; for maincontent also works.
Using just %content; works as well, so it seems like there's some issue with the combination of the two.

Postnext
Alberto MassariSubject: Re: DTD Validation problems
Author: Alberto Massari
Date: 06 Mar 2003 04:30 AM
At 04.27 06/03/2003 -0500, you wrote:

>{!ELEMENT maincontent ((%inline;|%content;)*)}
>
>[...]
> >The grammar production for this is
>
> > [51] Mixed ::= '(' S? '#PCDATA' (S? '|' S? Name)* S? ')*' | '(' S?
> '#PCDATA' S? ')'
>[...]

Hi John,
in answering to your previous message I didn't notice that you had an extra
pair of parenthesis around the definition, and that's illegal for a mixed
model definition.
So, the correct definition is

{!ELEMENT maincontent (%inline;|%content;)*}

Alberto

Posttop
John GilbertsonSubject: Re: DTD Validation problems
Author: John Gilbertson
Date: 06 Mar 2003 07:14 AM
Thanks, that's fixed it right up.

I'm very grateful for your help with all this.
I shall now go off and test all the other editors with this legal DTD (and other illegal ones) to see which are accepted, and possibly send off e-mails telling them their validators are possibly broken :)

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.