Changes for page Reconnaissance

Last modified by Nicolas Gregoire on 2012/02/03 14:52

From version 1.1 Icon
edited by Nicolas Gregoire
on 2012/01/10 14:47
Change comment: There is no comment for this version
To version Icon 15.1 Icon
edited by Nicolas Gregoire
on 2012/01/16 12:42
Change comment: There is no comment for this version

Summary

Details

Icon Page properties
Tags
... ... @@ -1,0 +1,1 @@
1 +recon|fingerprint|system-property
Content
... ... @@ -1,6 +1,8 @@
1 +{{toc/}}
2 +
1 1  XSLT standards define several properties about the XSLT engine itself. Querying for these properties allows to easily identify the engine.
2 2  
3 -=== XSLT 1.0 ===
5 += XSLT 1.0 =
4 4  
5 5  The function [[system-property()>>http://www.w3.org/TR/xslt#function-system-property||rel="__blank"]] supports by default the following properties :
6 6  
... ... @@ -8,17 +8,45 @@
8 8  * xsl:vendor : a string identifying the vendor of the XSLT processor
9 9  * xsl:vendor-url : a URL identifying the vendor of the XSLT processor (typically its Web site)
10 10  
11 -== XSLT 2.0 ==
13 +The attached stylesheet [[recon-xslt10.xsl>>attach:recon-xslt10.xsl]] fingerprints a XSLT 1.0 engine.
12 12  
15 += XSLT 2.0 =
13 13  
14 14  This version supports some [[additional>>http://www.w3.org/TR/xslt20/#system-property||rel="__blank"]] properties :
15 15  
16 16  * xsl:product-name : a string containing the name of the implementation, as defined by the implementer
17 17  * xsl:product-version : a string identifying the version of the implementation, as defined by the implementer
18 -* xsl:is-schema-aware : returns the string "yes" in the case of a schema-aware XSLT processor, or "no" otherwise
19 -* xsl:supports-serialization : returns the string "yes" in the case of a processor that offers the serialization feature, or "no" otherwise
20 -* xsl:supports-backwards-compatibility : returns the string "yes" in the case of a processor that offers the backwards compatibility feature, or "no" otherwise
21 +* xsl:is-schema-aware : returns "yes" if the XSLT processor is schema-aware, or "no" otherwise
22 +* xsl:supports-serialization : returns "yes" if the XSLT processor offers this feature, or "no" otherwise
23 +* xsl:supports-backwards-compatibility : returns "yes" if the XSLT processor offers this feature, or "no" otherwise
21 21  
22 -
25 + The attached stylesheet [[recon-xslt20.xsl>>attach:recon-xslt20.xsl]] fingerprints a XSLT 2.0 engine.
23 23  
27 += Enumerating supported features =
24 24  
29 +== Needed functions ==
30 +
31 +The XSLT standards define two additional functions used to enumerate the available features :
32 +
33 +* function-available()
34 +* element-available()
35 +
36 +== Example ==
37 +
38 +This [[stylesheet>>http://www.xmlplease.com/element-function-available.xsl||rel="__blank"]] uses these functions to test the availability of :
39 +
40 +* XSLT and XPath functions
41 +
42 +* XSLT elements
43 +
44 +* Saxon extensions
45 +
46 +* EXSLT extensions
47 +
48 +{{warning}}
49 +TODO : include my own examples !
50 +{{/warning}}
51 +
52 +== Live demo ==
53 +
54 +If you want to execute this stylesheet, just click on [[attach:toto]] (will crash Opera).
Icon recon-xslt10.xsl
Author
... ... @@ -1,0 +1,1 @@
1 +xwiki:XWiki.NicolasGregoire
Size
... ... @@ -1,0 +1,1 @@
1 +372 bytes
Content
... ... @@ -1,0 +1,9 @@
1 +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
2 +<xsl:output method="text"/>
3 +<xsl:template match="/">
4 +Version : <xsl:value-of select="system-property('xsl:version')" />
5 +Vendor : <xsl:value-of select="system-property('xsl:vendor')" />
6 +Vendor URL : <xsl:value-of select="system-property('xsl:vendor-url')" />
7 +</xsl:template>
8 +</xsl:stylesheet>
9 +
Icon recon-xslt20.xsl
Author
... ... @@ -1,0 +1,1 @@
1 +xwiki:XWiki.NicolasGregoire
Size
... ... @@ -1,0 +1,1 @@
1 +816 bytes
Content
... ... @@ -1,0 +1,14 @@
1 +<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
2 +<xsl:output method="text"/>
3 +<xsl:template match="/">
4 +Version : <xsl:value-of select="system-property('xsl:version')" />
5 +Vendor : <xsl:value-of select="system-property('xsl:vendor')" />
6 +Vendor URL : <xsl:value-of select="system-property('xsl:vendor-url')" />
7 +Product Name : <xsl:value-of select="system-property('xsl:product-name')" />
8 +Product Version : <xsl:value-of select="system-property('xsl:product-version')" />
9 +Is Schema Aware : <xsl:value-of select="system-property('xsl:is-schema-aware')" />
10 +Supports Serialization : <xsl:value-of select="system-property('xsl:supports-serialization')" />
11 +Backward Compatible : <xsl:value-of select="system-property('xsl:supports-backwards-compatibility')" />
12 +</xsl:template>
13 +</xsl:stylesheet>
14 +