List Info

Thread: Help with dtd, and XML_PARSE_PEDANTIC




Help with dtd, and XML_PARSE_PEDANTIC
user name
2006-12-19 13:13:55
Hello,

I'm validating a xml document via xmlCtxtReadFile,
with the flags XML_PARSE_DTDVALID |
XML_PARSE_PEDANTIC.

The problem I'm finding is with the structure of my
document which looks like this:

<question>
  <title>bla bla</title>
  <answer>bla bla</answer>
  <correct-answer>bla bla</correct-answer>
  <image>bla bla</image>
</question>

There can be more than one possible <answer>, but only
one mandatory <correct-answer> per question, and zero
or one <image>.

Then I thought on letting the user being able to put
those nodes in the order he/she felt like doing it,
though I think this is not actually possible, is it?

At dtd validation time "positional-strictness"
applies, and there's no way I can do it (or I haven't
achieved it, have tried many different dtd
constructions for a while)

So I wonder if someone can confirm me that I'm forced
to provide a static structure so users would have to
build the document strictly as dtd says is should
(same order), or if there's someway I could have the
document well validated while letting the users chuck
these nodes in an arbitrary order?

Kind Regards,



Send instant messages to your online friends http://uk.messenger.yah
oo.com 
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xmlgnome.org
http://mai
l.gnome.org/mailman/listinfo/xml
Help with dtd, and XML_PARSE_PEDANTIC
user name
2006-12-19 14:39:26
On Tue, Dec 19, 2006 at 01:13:55PM +0000, chinlu chinawa
wrote:
> Hello,
> 
> I'm validating a xml document via xmlCtxtReadFile,
> with the flags XML_PARSE_DTDVALID |
> XML_PARSE_PEDANTIC.
> 
> The problem I'm finding is with the structure of my
> document which looks like this:
> 
> <question>
>   <title>bla bla</title>
>   <answer>bla bla</answer>
>   <correct-answer>bla bla</correct-answer>
>   <image>bla bla</image>
> </question>
> 
> There can be more than one possible <answer>, but
only
> one mandatory <correct-answer> per question, and
zero
> or one <image>.
> 
> Then I thought on letting the user being able to put
> those nodes in the order he/she felt like doing it,
> though I think this is not actually possible, is it?
> 
> At dtd validation time
"positional-strictness"
> applies, and there's no way I can do it (or I haven't
> achieved it, have tried many different dtd
> constructions for a while)
> 
> So I wonder if someone can confirm me that I'm forced
> to provide a static structure so users would have to
> build the document strictly as dtd says is should
> (same order), or if there's someway I could have the
> document well validated while letting the users chuck
> these nodes in an arbitrary order?

  It's a limitation of DTDs, in XSD there is the xsd:all
construct,
in RNG there is the interleave construct. With DTD you must
specify 
explicitely all the orders possible e.g:

   (a, b, c) | (a, c, b) | (b, a, c) | (b, c, a) ...

 of course with 4-5 elements it's already a serious problem.
 Conclusion: DTD are extremely limited
 Also this has nothing to do with XML_PARSE_PEDANTIC, but
with validation

Daniel

-- 
Red Hat Virtualization group http://redhat.com/v
irtualization/
Daniel Veillard      | virtualization library  http://libvirt.org/
veillardredhat.com  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ |
Rpmfind RPM search engine  http://rpmfind.net/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xmlgnome.org
http://mai
l.gnome.org/mailman/listinfo/xml
[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )