- From: David A. Lee <dlee@calldei.com>
- Date: Wed, 11 Feb 2009 07:54:14 -0500
- To: <xproc-dev@w3.org>
Any comments on this ? Looking into this further, I am coming to the conclusion that extension functions should NOT share the same prefix as any schema being processed by the processor. For example is this *input* document to xproc pipeline parsable. <p:pipeline 'xmlns:p=http://www.w3.org/ns/xproc'> <p:identity/> </p:pipeline> By this xproc pipeline <p:pipeline 'xmlns:p=http://www.w3.org/ns/xproc'> <p:string-replace match="p:pipeline"> <p:with-option name="replace" select="concat('"',p:base-uri(//p:identity[1]),'"')" </p:string-replace> </p:pipeline> note the use of the same prefix in replace, the function and the argument ----- Original Message ----- From: "David A. Lee" <dlee@calldei.com> To: <xproc-dev@w3.org> Sent: Saturday, February 07, 2009 1:04 PM Subject: Extension function prefixes/namespace > I'm implementing the extension functions for the XProc processor. > I cant find anywhere in the specs which defines explictly what the > "prefix" has to be. > The examples use "p:" and by implication > > --- > 3.1 > http://www.w3.org/ns/xproc > > The namespace of the XProc XML vocabulary described by this specification; > by convention, the namespace prefix "p:" is used for this namespace. > ---- > > So by power of deduction, seeing "p:" used for extension functions implies > maybe these functions are supposed to be really > "Whatever prefix is in the namespace scope which is bound to the URL > http://www.w3.org/ns/xproc" > > Here's my confusion. From an implementation point of view (and maybe a > spec point of view?) > XProc extension functions dont really belong to "namespaces" they are > associated with "prefixes" (???). > XQuery functions, on the other hand do follow a rigerous namespace model, > but XProc functions dont seem to. > > Using the Saxon API's the way to associate prefixes with extension > functions is via namespaces, but not of the URI sort. Rather you define a > namespace mapping of "prefix" -> "java:java class", e.g. > xmlns:p="java:my.package.Class" > (or programatically declareNamespace("prefix" , "java:my.package.Class") > ; > > So the concept of 'namespace' is overloaded for both element/attribute > namespaces, and function prefixes. > > Further complications are that I dont belive I can simultaneously bound > the same prefix to both > an external function and the xproc schema. Now of course the xproc > document is processed in a different phase of the process then the xproc > expressions so there is no intrinsic conflict. (p: could be used for the > xproc document and then re-declared durning the evalutation of the xpath > expression ... ) > But suppose someone wanted to use xproc to parse an xproc document ... > then an xproc statement may need to handle an xproc namespace'd element as > well as an xproc "namespaced" extension function, both using the same > prefix ... That is, if I'm supposed to use whatever prefix is bound to > http://www.w3.org/ns/xproc > for the extension functions and simultaneously bind it to > http://www.w3.org/ns/xproc for elements. > I dont think I can do that simultaneously. > > Is this making any sense ? could come up with some examples if it isnt. > > -David > ----------------------------------------------------------- > David A. Lee > dlee@calldei.com > http://www.calldei.com > http://www.xmlsh.org > > >
Received on Wednesday, 11 February 2009 12:54:59 UTC