From: George C. B. <ge...@ox...> - 2006-03-07 09:14:48
|
Hi Michael, Thanks for the insight on eXist, but anyway, I was referring to the WebDAV interface, there you have a document and the action through that interface is to save and retrieve a document. And my suggestion is to give an error (or a warning if that is possible) on the WebDAV interface if the document does not match the storage model in eXist. Otherwise from a user point of view it is very distracting to see that he gets something different back without any warning. Best Regards, George --------------------------------------------------------------------- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com Michael Beddow wrote: > George Cristian Bina wrote: > >> As for handling DOCTYPE in eXist my suggestion is to >> just throw an exception if a document cannot be correctly stored. >> That means if the document has a DOCTYPE and the DOCTYPE >> is not serialized throw an exception and do not allow the file to be >> saved (as it happens if I want to save a not wellformed file). If the >> DOCTYPE is serialized and the document has only an external >> subset then that should be saved. If the document has also an internal >> subset then throw again an exception and do not allow the file to be > saved. > > I think that suggestion misses the very important points made in Wolfgang's > last posting. What we have here is an impedance mismatch between an XML > editor, which users understandably expect to persist the serialized lexical > form which is their view of their XML encoded document, and an XML database, > which is designed to store, search, retrieve and reserialize only infoset > items. In eXist terms, "if the document has a DOCTYPE and the DOCTYPE is > not serialized throw an exception and do not allow the file to be saved" > makes little sense. Unlike an XML editor, eXist does *not* serialize at > storage time. It parses into an DOM and persists that DOM. When it > re-serializes at retrieval time, it re-expresses only the infoset items as > persisted in that DOM. Nor does eXist operate with "files", except as > sources of input and sinks for output. So it when it stores a *document* it > isn't saving a "file" but merely the document's infoset items which were > encoded in lexical form in that file. > > In other words, there is an important conceptual *and* practical difference > between storing serialized documents in a filesystem and persisting document > infosets in a DOM. If that difference can be worked around to allow fuller > two-way tripping when eXist an application (or a user) wants it to behave > like a quasi file-system rather than as a DOM persister, then well and good. > But the notion that non-persistence of a DOCTYPE declaration means that "the > document cannot be correctly stored" suggests a misunderstanding of what > eXist is and does (and of the relation between lexical form and infoset > content). A lot of people would be very unhappy indeed if the undoubted > desirability of two-way tripping were allowed to make eXist signal an error > and refuse to store where no error is in fact present, but merely a > behaviour which is inconvenient for one particular type of application. > > Michael Beddow > > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > Exist-open mailing list > Exi...@li... > https://lists.sourceforge.net/lists/listinfo/exist-open |