- From: Gavin Thomas Nicol <gtn@ebt.com>
- Date: Wed, 1 Nov 2000 12:59:28 -0500
- To: <xml-dist-app@w3.org>
> The problem is that when parsing I can't do the following
> (simplifying the XML terribly):
>
> <wrapper with wrapper.dtd>
> <header> ... </header> -- elements defined by wrapper.dtd
> <body>
> <newsml with newsml.dtd> -- start of new enclosed document
> <headline> ... </headline> -- elements defined by newsml.dtd
> <body> ... </body>
> </newsml> -- return to wrapping document context
> </body>
> </wrapper>
>
> Where the wrapper.dtd doesn't know about newml, newsml.dtd doesn't know
> about the wrapper, and both chunks of XML are validated.
I think this is very much a question of layering. If you try to validate
the document *in toto* you'll have trouble. I have always felt that
parsing and validation are separate things, so I could quite easily
imagine doing this:
<wrapper>
<header>
<field name="id" value="12345678">
</header>
<body>
<anything>
<can>
<go>
<here>
</here>
</go>
</can>
</anything>
</body>
</wrapper>
and then validating the various bits separately. For example, validating the
content of <header> is important, and validating the *content* of <body>
is important. We can validate those two, seperately using the idea that
validation is basically a boolean function
validate(node, content-model)
where "content-model" would be a different DTD for <header> and
the content of <body>. In other words, read in the XML as a well-formed
document, then apply validation to the bits you care about. The only
thing you'd have to be a little careful of was namespaces.
Received on Wednesday, 1 November 2000 12:52:35 UTC