Re: Stupid Question (was RE: XML doesn't deserveits
[Nicolas LEHUEN] > Like you said, there is very little that the PSVI can add that the > application doesn't. Right. But you just suppose that the data received by > an application is in the very precise format it was built for. Now, to come > back to Eric's sample, if I want to add some new nifty tags to my documents, > so that a new part of the application can use it while old parts still > remain compatible, I have to find a way to convey some meta-data that make > the old parts not only understand that the new document can still be > processed, but how to build an old-style view of it. > Two things seem to be perennially mixed up together in this kind of discussion. There are two extremes when you think about how schemas might be used. First, the schema can be used statically ahead of time, that is, when you design your code. This is the case in play when people talk about the code knowing the datatypes and therefore not needing PSVI information at runtime. The second case is the purely dynamic case, whereby nothing is known beforehand and everything has to be deduced about the document while it is being processed. When you knew that the document was entirely text, the DTD usually served for this. Most HTML processing is the first case. In real life, applications fall inbetween, though I suspect that most tend towards the static case. > Extensibility is not about being able to change something in a document > structure, then modify all code that rely on this structure. It is about > finding a way to tell an heterogeneous mix of code that a single data item > can be viewed and processed in a way that fits it. Again, two things have been mixed together. One whether your existing processing will break if a document suddenly sprouts new elements and attrbutes. Usually it won't, or the code can be arranged so it won't because new elements and attributes can just be ignored. Another is whether the xml (the data) can say how it is supposed to be processed: >It is about being able to > mix some new code that uses the new document structure with some old code > that use the old document structure. > At face value, this seems to ask that a document say how (parts of ) it should be processed, perhaps with the help of a schema. That's a tall order. I think the best that could be done in most cases is for a document to point to some other document that would contain some description of the intended processing. If the data language (like XML) supported doing that, it certainly could be said to be "extensible", and I think that such could be done in XML (to the extent, anyway, that you can describe process by data). So I don't see the issue of processing after a change to the design as being any instrinsic barrier to extensibility. It's only that the extensibility would be achieved in a different way from what many people are used to. But heck, if you want the old way, you can already serialize java objects or lisp code. We were served well by going to more datacentric approaches in the database world - a relational database does not say how its tables and data elements are to be processed once they are retrieved. That's because data (and its design) is usually more stable over a long time than the processing needs. An example is being asked for new report types from old data. Focusing more on the data aspect (the markup approach) is fully in line with this trend. But it may be less "efficient" than using carefully crafted procedural or object code, when you think about any one processing run. For example, a well-designed hierarchical database is generally faster than a relational database if the data's processing is well known and the data structure remains unchanged. One challenge with using markup is to figure out how to get the benefits of hierarchical processing AND the advantages of a data-centric approach. This can't be done using purely procedural thinking. Too much rambling... Cheers, Tom P
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format