[relaxng-user] association of RELAX NG with a document

James Clark jjc at jclark.com
Fri Oct 24 07:07:35 ICT 2003


On Fri, 2003-10-24 at 13:07, David Tolpin wrote:

> I agree that the approach can be convenietly used to assist the user 
> in choosing the right associations (a schema, a stylesheet, etc). But after
> the association is chosen, it should be somehow attached to the document,
> at least, in some cases.
> 
> It is my decision that document X uses schema Y for validation. Once I made
> this decision, all later processing should be based on that, and any change
> in association should be expressed explicitly. 

That's one policy that you might want, but I don't think it's the only
one.  You can get it by explicitly adding a <uri resource="..." ...>
element to a schema locating file.

>   With the approach described, changes in the map can cause changes in associations;
>   and it can come completely unexpected to the user. Consider a system where the map
>   is a system-wide resource.

The user can choose whether to use a system-wide map or their own map.
The user might *want* changing the map to cause changes in association.

> Providing a rule in the file that associates the document's URI with a resource does not
> help either.

It's not perfect, but it certainly helps.

>  The association should persist if I change the name of the document. 
> 
>   The fact that I renamed my document from users-guide.dbx to user-guide.dbx should not
>   lead to any change in the associations to schemas and stylesheets.

That is a problem. The real solution is to be able to attach metadata to
the file without changing the content; unfortunately filesystems
typically can't do that.  On the other hand, WebDAV can; you could have
a new rule type that specified a WebDAV property that contains the URI
of the schema for a document.

> Thus, for me the only reasonable choice  is still to use the DOCTYPE declaration for all
> associations 

If you want to use DOCTYPEs, the nXML method can accomodate you (by
doctypePublicId rules). However, I find the problems of using DOCTYPEs
worse by far than the problem of associations disappearing on a rename.
And even with DOCTYPEs, you can still get problem of the association
changing; you still have to associate your DOCTYPEs with schemas.  If
you force me to put something in the instance, I would much prefer a
processing instruction.

There's no single right way to do the association. Different users will
legitimately prefer different approaches. A solution needs to be
flexible enough to accomodate them.

James




More information about the relaxng-user mailing list