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