Re: association of RELAX NG with a document

James Clark <[email protected]>
Newsgroups gmane.text.xml.relaxng.general
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.