Thufir
Thufir

Reputation: 8487

xsltproc: xsl:version: only 1.1 features are supported

Not looking to do anything spectacular here, just looking for, really, any sort of simple xslt which will run from xsltproc and give reasonably interesting output -- but simple.

thufir@dur:~/jaxb/ship$ 
thufir@dur:~/jaxb/ship$ ls
a.xslt  shiporder.xml
thufir@dur:~/jaxb/ship$ 
thufir@dur:~/jaxb/ship$ cat shiporder.xml 
<?xml version="1.0" encoding="UTF-8"?>

<shiporder orderid="889923"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="shiporder.xsd">
  <orderperson>John Smith</orderperson>
  <shipto>
    <name>Ola Nordmann</name>
    <address>Langgt 23</address>
    <city>4000 Stavanger</city>
    <country>Norway</country>
  </shipto>
  <item>
    <title>Empire Burlesque</title>
    <note>Special Edition</note>
    <quantity>1</quantity>
    <price>10.90</price>
  </item>
  <item>
    <title>Hide your heart</title>
    <quantity>1</quantity>
    <price>9.90</price>
  </item>
</shiporder> 


thufir@dur:~/jaxb/ship$ 
thufir@dur:~/jaxb/ship$ trang shiporder.xml shiporder.xsd
thufir@dur:~/jaxb/ship$ 
thufir@dur:~/jaxb/ship$ ls
a.xslt  shiporder.xml  shiporder.xsd  xsi.xsd
thufir@dur:~/jaxb/ship$ 
thufir@dur:~/jaxb/ship$ cat shiporder.xsd 
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <xs:import namespace="http://www.w3.org/2001/XMLSchema-instance" schemaLocation="xsi.xsd"/>
  <xs:element name="shiporder">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="orderperson"/>
        <xs:element ref="shipto"/>
        <xs:element maxOccurs="unbounded" ref="item"/>
      </xs:sequence>
      <xs:attribute name="orderid" use="required" type="xs:integer"/>
      <xs:attribute ref="xsi:noNamespaceSchemaLocation" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="orderperson" type="xs:string"/>
  <xs:element name="shipto">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="name"/>
        <xs:element ref="address"/>
        <xs:element ref="city"/>
        <xs:element ref="country"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="name" type="xs:string"/>
  <xs:element name="address" type="xs:string"/>
  <xs:element name="city" type="xs:string"/>
  <xs:element name="country" type="xs:NCName"/>
  <xs:element name="item">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="title"/>
        <xs:element minOccurs="0" ref="note"/>
        <xs:element ref="quantity"/>
        <xs:element ref="price"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="title" type="xs:string"/>
  <xs:element name="note" type="xs:string"/>
  <xs:element name="quantity" type="xs:integer"/>
  <xs:element name="price" type="xs:decimal"/>
</xs:schema>
thufir@dur:~/jaxb/ship$ 
thufir@dur:~/jaxb/ship$ cat xsi.xsd 
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <xs:import schemaLocation="shiporder.xsd"/>
  <xs:attribute name="noNamespaceSchemaLocation" type="xs:NCName"/>
</xs:schema>
thufir@dur:~/jaxb/ship$ 
thufir@dur:~/jaxb/ship$ cat a.xslt 
<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text"/>
 <xsl:template match="/">
  <xsl:copy-of select="unparsed-text(static-base-uri())"/>
 </xsl:template>
</xsl:stylesheet>
thufir@dur:~/jaxb/ship$ 
thufir@dur:~/jaxb/ship$ xsltproc a.xslt shiporder.xml > output.xml
compilation error: file a.xslt line 1 element stylesheet
xsl:version: only 1.1 features are supported
xmlXPathCompOpEval: function static-base-uri not found
XPath error : Unregistered function
xmlXPathCompiledEval: evaluation failed
no result for shiporder.xml
thufir@dur:~/jaxb/ship$ 

The xml is from w3school -- frankly, just looking to generate some sort of output using xsltproc, which means xslt version 1, I believe.

Upvotes: 0

Views: 3255

Answers (1)

michael.hor257k
michael.hor257k

Reputation: 116959

xsltproc uses the libxsltprocessor which supports only XSLT 1.0 or 1.1 (in some configurations).

Your XSLT contains:

<xsl:copy-of select="unparsed-text(static-base-uri())"/>

static-base-uri() is an XPath 2.0 function, and your processor cannot handle it - which is why you see:

xmlXPathCompOpEval: function static-base-uri not found
XPath error : Unregistered function

Note that unparsed-text() is an XSLT 2.0 function and you would get an error with it too, if the processor ever got that far.

just looking to generate some sort of output using xsltproc

Try the identity transform for starters?

Upvotes: 4

Related Questions