- From: Norman Walsh <Norman.Walsh@Sun.COM>
- Date: Thu, 20 Jul 2006 17:02:27 -0400
- To: public-xml-processing-model-wg@w3.org
- Message-ID: <87psg0j8gs.fsf@nwalsh.com>
/ Norman Walsh <Norman.Walsh@Sun.COM> was heard to say: | I think this also helps us with the choose statement: My original post had some bugs. Here's a fixed version: <p:pipeline> <!-- accept a document, a schema, and a stylesheet. --> <!-- validate, transform, and return the result --> <p:declare-input-port port="document" name="xmlfile"/> <p:declare-input-port port="schema" name="xsdfile"/> <p:declare-input-port port="stylesheet" name="xslfile"/> <p:declare-output-port port="result" name="output"/> <p:step kind="validate"> <p:input port="document" from="xmlfile"/> <p:input port="schema" from="xsdfile"/> <p:output port="result" name="validxml"/> </p:step> <p:choose> <p:declare-input-port port="testdocument" from="validxml"/> <p:declare-input-port port="stylein" from="xslfile"/> <p:declare-output-port port="result" name="xformed"/> <p:when test="/book"> <p:step kind="xslt"> <p:input port="document" from="testdocument"/> <p:input port="stylesheet" from="stylein"/> <p:output port="result" to="xformed"/> </p:step> </p:when> <p:when test="/html"> <p:step kind="xslt"> <p:input port="document" from="testdocument"/> <p:input port="stylesheet" href="html.xsl"/> <p:output port="result" to="xformed"/> </p:step> <p:step kind="bitbucket"> <p:input port="document" from="stylein"/> </p:step> </p:when> </p:choose> <p:step kind="identity"> <p:input port="document" from="xformed"/> <p:output port="result" to="output"/> </p:step> <p:pipeline> What I fixed: - I used the pipeline's stylesheet port :-) - I changed the references to the p:choose so that none of them refers to anything outside the p:choose (except the declarations at the top). I want it to be an error to point outside the choose. - In order to consume the stylein in the second when, I explicitly send it to the bit bucket. Here's another possibility: <p:pipeline name="pipe"> <!-- accept a document, a schema, and a stylesheet. --> <!-- validate, transform, and return the result --> <p:declare-input-port port="document"/> <p:declare-input-port port="schema"/> <p:declare-input-port port="stylesheet"/> <p:declare-output-port port="result" ref="identity.result"/> <p:step kind="validate"> <p:input port="document" ref="pipe.document"/> <p:input port="schema" ref="pipe.schema"/> <p:output port="result"/> </p:step> <p:choose name="choice"> <p:declare-input-port port="testdocument" ref="validate.result"/> <p:declare-input-port port="stylein" ref="pipe.stylesheet"/> <p:declare-output-port port="result"/> <p:when test="/book"> <p:step kind="xslt"> <p:input port="document" ref="choice.testdocument"/> <p:input port="stylesheet" ref="choice.stylein"/> <p:output port="result" ref="choice.result"/> </p:step> </p:when> <p:when test="/html"> <p:step kind="xslt"> <p:input port="document" ref="choice.testdocument"/> <p:input port="stylesheet" href="html.xsl"/> <p:output port="result" ref="choice.result"/> </p:step> <p:step kind="bitbucket"> <p:input port="document" ref="choice.stylein"/> </p:step> </p:when> </p:choose> <p:step kind="identity"> <p:input port="document" ref="choice.result"/> <p:output port="result"/> </p:step> <p:pipeline> I've switched to Richard's naming style, which is my 60/40 favorite at the moment, though I'd use "/" instead of ".". I've used "ref" consistently instead of "from" and "to". On the one hand, inputs come "from" somewhere and outputs go "to" somewhere, so the different names are a useful hint. On the other hand, they're just refs and using "ref" consistently might lead to fewer typos. Be seeing you, norm -- Norman Walsh XML Standards Architect Sun Microsystems, Inc.
Received on Thursday, 20 July 2006 21:02:45 UTC