- From: George Cristian Bina <george@oxygenxml.com>
- Date: Thu, 11 Aug 2011 20:03:11 +0300
- To: mozer <xmlizer@gmail.com>
- CC: XProc Dev <xproc-dev@w3.org>
Nice!
Does this qualify as the second :) ?
<?xml version="1.0" encoding="UTF-8"?>
<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" version="1.0">
<p:documentation>
<p>(c) Syncro Soft / oXygen XML Editor 2011 - The second XProc
Quine</p>
</p:documentation>
<p:output port="result"/>
<p:xslt template-name="main">
<p:input port="source"><p:empty/></p:input>
<p:input port="stylesheet">
<p:inline>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template name="main">
<xsl:copy-of select="document('')"/>
</xsl:template>
</xsl:stylesheet>
</p:inline>
</p:input>
<p:input port="parameters"><p:empty/></p:input>
</p:xslt>
</p:declare-step>
Best Regards,
George
--
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
On 8/11/11 5:38 PM, mozer wrote:
> http://blog.innovimax.fr/index.php/2011/08/11/38-xproc-quine
>
> You may have heard of the Quicksort implementation in XProc
> <http://en.literateprograms.org/Quicksort_(XProc)> of the famous
> algorithm <http://en.wikipedia.org/wiki/Quicksort> in XProc
> <http://w3.org/TR/xproc>
>
> Here comes now the Quine
> <http://en.wikipedia.org/wiki/Quine_(computing)>, /i.e/ "a computer
> program which takes no input and produces a copy of its own source code
> as its only output."
>
> <?xml version="1.0" encoding="UTF-8"?>
> <p:declare-step xmlns:p="http://www.w3.org/ns/xproc" version="1.0">
> <p:documentation>
> <p>(c) Innovimax 2011 - The first XProc Quine</p>
> </p:documentation>
> <p:output port="result"/>
> <p:identity>
> <p:input port="source">
> <p:inline>
> <p:declare-step version="1.0">
> <p:documentation>
> <p>(c) Innovimax 2011 - The first XProc Quine</p>
> </p:documentation>
> <p:output port="result"/>
> <p:identity>
> <p:input port="source">
> <p:inline/>
> </p:input>
> </p:identity>
> <p:insert match="p:inline" position="first-child">
> <p:input port="source"/>
> <p:input port="insertion"/>
> </p:insert>
> </p:declare-step>
> </p:inline>
> </p:input>
> </p:identity>
> <p:insert match="p:inline" position="first-child">
> <p:input port="source"/>
> <p:input port="insertion"/>
> </p:insert>
> </p:declare-step>
>
> It works in any of the many implementations of XProc
> <http://xproc.org/implementations/>. If you run for GPL
> <http://en.wikipedia.org/wiki/GNU_General_Public_License>, go look
> atQuiXProc <http://code.google.com/p/quixproc>
>
> Xmlizer
Received on Thursday, 11 August 2011 17:03:40 UTC