[exprla-devel] RE: [XPL] Issue #2 - XPL will provide mechanisms to link XSL documents to XML docum
Status: Pre-Alpha
Brought to you by:
xpl2
From: reid_spencer <ras...@re...> - 2002-02-01 15:41:04
|
--- In xpl-dev@y..., "Richard Anthony Hein" <935551@i...> wrote: Hmm, I have to think about this - it's going to take a while. Hopefully Kurt will jump in here, he's got the XSL/XSLT goods. Richard -----Original Message----- From: me@m... [mailto:me@m...]On Behalf Of Jonathan Burns Sent: July 6, 2000 10:02 AM To: xpl@e... Subject: Re: [XPL] Issue #2 - XPL will provide mechanisms to link XSL documents to XML documents. Richard Anthony Hein wrote: Good questions. This was a too-general statement I made. The XSL specification states: "XSL is a language for expressing stylesheets. Given a class of arbitrarily structured XML [W3C XML] documents or data files, designers use an XSL stylesheet to express their intentions about how that structured content should be presented; that is, how the source content should be styled, laid out, and paginated onto some presentation medium, such as a window in a Web browser or a hand-held device, or a set of physical pages in a catalog, report, pamphlet, or book." I was thinking about this kind of output, so I was being far too general in stating the requirement. However, now that I've thought about it more, perhaps XPL shouldn't touch on formatting the XML using stylesheets at all. There probably isn't any point, except to say that XSL stylesheets can be called and linked to XML documents via XPL, in the same sense that ASP, VB or any other language link up XSL and XML documents now. Other than that, XSL shouldn't effect our requirements. If so, perhaps the requirement should read: a.. XPL will provide mechanisms to link XSL documents to XML documents. In preparation for this, I've reviewed the XSL specification , and the answer to this is quite clear: XPL will include both the syntax and the semantics of XSL documents Now recall that I'm recommending that all XSLT documents must be valid XPL documents. That's not quite as heavy a commitment as it might seem - XSLT documents are in fact XML with namespaces and with XPath patterns included as attributes of template elements. By requiring XPL to accept XSLT documents as citizens in good standing, able to operate on XML documents in conjuction with any new XPL processing we make up, we are not constraining XPL itself, as far as I can see. If we broaden the requirement, from XSLT to XSL, we commit ourselves to requiring XPL to support (1) namespaces, (2) XSL-FO formatting objects, whatever these turn out to be. I don't think we can go any other way, without losing relevance to the XML standards and programming communities altogether. This does not prevent us from defining subsets - "tiny XPL"s - as namespaces which name a smaller DTD with limited element sets. Nor does it exclude the possibilities that I think are worthwhile - the explicit foundation in Groves, the regexps and grammars - nor any other extensions, as long as they are formatted as XML-with-namespaces. It does mean that any semantics we support must be compatible with the semantics of XSLT transformations and formatting objects. But that will not restrict us, I'm almost certain, if our semantics begins with Groves. In sum, all of XSL must "just work" together with XPL. XLST is already very powerful. It would certainly be possible to specify a very classy XPL indeed, just by using the provided extension elements. I am not absolutely sure that those will support the operations which we might want to bring in from other programming languages, though. It is possible that we will choose to derive XPath and XLST from something deeper, i.e. Groves. Comments on this? So a new question arises from your questions Jonathan: what shall we use to drive the range of output mechanisms in current use? Your answer seems to be SOAP. There is also XML-RPC. Or will XPL have it's own version owing to the fact that grove property sets might be something to consider in this regard? There should probably be a new thread for this, like "output mechanisms". But first let's state what the output mechanisms must accomplish. Your turn!Richard Anthony Hein I've had a rethink here. I suspect you were right the first time. XSL may be all we need for an output mechanism - provided we can stream it. The reasoning is as follows. There appear to be only two basic mechanisms for binding or translating between objects of different parentage. a.. Message passing as text, usually via sockets. b.. Procedure calls, remote or otherwise. There are three major protocols extant, for publishing interfaces: COM, CORBA and Java Beans. They do the same job, it's just that there are slight differences in the protocol, the dialog, the handshaking, whatever we call it. They are all based on procedure calls. You can ask any object, of any of these families, to provide you with its interface. This gives you the means to call the methods of the object in question. The alternative is message passing via text streams. For instance, HTML has a built-in channel to any local Javascript interpreter which might be resident in a browser. To exploit this mechanism, you only need to be able (1) to open a channel, (2) to format the message text, and (3) to define a new tag in your system, to indicate that these are messages for the target system in question. Plus, the target system needs a procedure to call, to open the channel. This doesn't seem hard to arrange. As a reality check, I have in mind Mozilla's XUL, which is an XML document type with a builti-in channel to Javascript. It has an impressively large manual, yes, but most of it seems to be concerned with the elements which correspond to the various Javascript operations and objects it binds to. It's the other ones, the COM/CORBA/JBeans protocols, which present the headache. To talk to them, you need to be able to "marshal" the parameters for every method call, where the target object can get them when you make the call. I don't know the ins and outs of this at all well. I do know that it was hailed as significant progress last year, when some bright folks managed to get COM and CORBA even talking to each other without restriction. What I reckon, is that we should leave off specifying output processing, at XSL. This means that we are responsible for formatting the final output as some XML document type. E.g. the CORBA namespace or DTD. It will be up to the programmers of the target interface to provide a "hook", a little proxy object, which can open a channel for XPL to deliver the final XML output to, as text. A TCP/IP service port might do the trick. Once the channel is open, the hook object can make and receive whatever procedure calls it wants, to the target object. The hook can either swallow the XML output in one gulp, or stream it in. This is handwavy, but it adds up to a policy we can stand by: XPL input and output will be in text form. Text forms output by XPL will be formatted via XSL. Just as you said. What about that implication that we're supporting multiple text streams - one for COM hooks, one for Javascript, etc etc? That's an exception to the rule, but we can get around it in practice - if we declare that there is a single standard text-stream-broker object, to which all external interpreters and hooks can couple. Once again, as a proof of concept, we could implement it as a TCP/IP service. It could use the same code as http, which is usually an all-at-one-gulp thing, but does support continuing channels. Comments, please, from those wiser than I? Jonathan LOOK at the time! Oh, my fan, oh my gloves, the Duchess, the Duchess, she'll have my head for sure! ---------------------------------------------------------------------- ------ -- ---------------------------------------------------------------------- ------ -- To unsubscribe from this group, send an email to: xpl-unsubscribe@o... --- End forwarded message --- |