XML/XSLT: Setting xsl:include href attribute with a variable

I have a main layout stylesheet and depending on which page the user selects I want to use xsl:include to display the selected information in the 'content' DIV. The process works fine if hardcode it like this:
<xsl:include href="welcome.xsl"/>
<div id="content"
<xsl:call-template name="welcome"/>
</div>
but, what I would like to do is have the name of the included template pulled from the xml file depending on which page was selected by the user. Something similar to this:
<xsl:variable name="ss">
<xsl:text><xsl:value-of select="root/stylesheet"/></xsl:text>
</xsl:variable>
<xsl:include href="{$ss}.xsl"/>
<div id="content">
<xsl:apply-template name="{$ss}"/>
</div>
So far I have tried using many different forms of code and have been unable to get this to work. Any ideas?
EDIT: Okay, I have it partly figured out, at least why it isn't working. As far as I can tell, the 'xsl:include' tag must be a child of the 'xsl:stylesheet' tag, and is thus declared before the <xsl:template match="/"> which means it can't read the xml element to even store it in the variable. I have an idea of how to accomplish what I need, though.
Last edited by munkyeetr (2009-01-28 03:29:58)

I have attempted the same thing before as well. The only way I was able to dynamically build the xsl:include was to declare a new namespace e.g xmlns:out="output.xsl" in my XSL file and do something like the following:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:out="output.xsl">
<xsl:namespace-alias stylesheet-prefix="out" result-prefix="xsl"/>
<xsl:varible name="xxx" select=" 'myFile.xsl' "/>
<xsl:template match="/">
<out:stylesheet version="1.0">
<out:template match="/">
<out:include>
<xsl:attribute name="href">
<xsl:value-of select="$xxx" />
</xsl:attribute>
</out:include>
</out:template>
</out:stylesheet>
</xsl:template>
</xsl:stylesheet>
When applied to any valid XML document this produces the XSL file you are after as the output.
To use this output against your intended XML source consider the following: A Java program can very quickly apply the above stylesheet to any XML source to get the output you want... then apply that XSL result to the actual XML document you are wanting to transform. From here you can do what you want with the transformed result.

Similar Messages

  • XML element,if not including any attributes and/or child elements then

    XML element in SQLX,if not including any attributes and/or child elements then the tag should not appear, how to achive this?
    ex:Consider for <enumeration> tag where it is having some value.
    <attribute>
    <name>Ethernet Access</name>
    <enumeration>
    <StringValue>Bandwidth</StringValue>
    </enumeration>
    </attribute>
    When <enumeration> tag is not have any Value in this, then output should be as follows.
    <attribute>
    <name>Ethernet Access</name>
    </attribute>
    But what i am getting is
    <attribute>
    <name>Ethernet Access</name>
    </enumeration>
    </attribute>
    Please suggest me the solution for this.
    I tried , but when xmlelement() is not having data it will display empty tag ie </enumeration>, If xmlforest() are null it wont show tag, But i have to use xmlelement only. how can that be achived using xmlelement .

    Use a SQL case - when - else end construct to only execute the xmlelement if data is present. The SQL/XML standard is very clear, xmlElement will generate an empty element if no data is present. xmlforest will not.

  • XSU XSLT and using xsl:include href=""

    I'm runing XDK 9.2 on an 8.1.7.4 database. I'm trying to transform the output of the XSU into a flat text file using a set of XSLT files. The main xslt includes the other xslt template files and then calls their templates by name as needed for different types of data in the XSU output.
    I have the main xslt in a table of BFILEs that I read from and pass to the DBMS_XMLQUERY.SETXSLT procedure as a CLOB. I get the following errors when I run the main procedure to generate the flat text file:
    oracle.xml.sql.OracleXMLSQLException: <Line 41, Column 35>: XSL-1002: (Error) Error while processing include XSL file (header.xslt).
    at oracle.xml.sql.query.OracleXMLQuery.setXSLT(OracleXMLQuery.java:818)
    at oracle.xml.sql.query.OracleXMLStaticQuery.setXSLT(OracleXMLStaticQuery.java:481)
    "header.xslt" is one of the included xslts. Is there some way to specify the other xslts? I have tried loading them into the BFILE table, but it still doesn't work.

    Hi I have tried out the code i.e. transforming a node and getting out a string representation. Following is code that works using JAXP apis.
    import javax.xml.parsers.*;
    import javax.xml.transform.*;
    import javax.xml.transform.stream.*;
    import javax.xml.transform.dom.*;
    import org.w3c.dom.*;
    import org.xml.sax.*;
    import java.io.*;
    public class XMLString {
    public void xmlInString(Document document) throws Exception{
    TransformerFactory tf = TransformerFactory.newInstance();
    Transformer transformer =
                   tf.newTransformer();
    StringWriter stWriter = new StringWriter();
    transformer.transform(new DOMSource(document), new StreamResult(stWriter));
    String strDOM = stWriter.toString();
    System.out.println("String dom");
    StringReader strIn = new StringReader(strDOM);
    BufferedReader buffIn = new BufferedReader(strIn);
    BufferedWriter bufOut = new BufferedWriter(new FileWriter("out.txt"));
    String out = null;
    while((out=buffIn.readLine()) != null){
    bufOut.write(out, 0, out.length());
    bufOut.flush();
    bufOut.close();
    public static void main(String args[]){
    try{
    XMLString strXML = new XMLString();
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    InputSource inputSource = new InputSource("input.xml");
    Document doc = db.parse(inputSource);
    strXML.xmlInString(doc);
    }catch(Exception e){
    System.out.println(e.getMessage());
    e.printStackTrace();
    I am using the xalan and xerces versions that come with the Java XML Winter pack from sun's website. The problem could lie with the underlying transformation processor you are using. It may not support transforming to a string or it could have a bug. So my advice is to find out what version transformation processor you are using. And look at the vendor's documentation to find any reference to this feature. Otherwise try using the Java XML Winter pack.

  • JSP, XML, XSLT: applying XSL on JSP-generated XML doc

    Hello,
    I am currently trying to figure out how to do the following:
    let's consider (that's not entirely hypothetical :) ) a web application working with JSP (on apache/tomcat 3.1) and oracle BC4J Application modules.
    The JSPs call oracle webbeans to perform updates and retrieve data from an 8.1.6 database.
    Now I'm thinking of moving to a combination of JSP, XML and XSL, which (hopefully) would allow to customize the application depending on the user's browser, language etc...(that's the point isn't it?)
    It doesn't seem to be a problem to produce XML from a jsp, send it directly to the client browser, which in turn goes to look for the proper XSL file and does all the transformation stuff.
    However this only works with I.E 5 for the moment right? and most website need to support various kinds of browsers...
    The need is:
    * When a non XML-capable browser is detected, apply the proper XSL(s) on the server side before sending the result back, in html/wml/whatever...
    * For XML-capable browsers, produce raw XML, maybe apply some XSL(s), and eventually send the result to the browser which handles the rest of the XSL stuff itself.
    Therefore, I'd like to:
    - Have the jsp produce the raw xml data (maybe adding extra tags, to indicate the browser and/or the language that the jsp engine has detected).
    - Pass the output to a first XSLT engine which would take care of the language stuff
    - Feed the result into a second XSLT engine to handle browser specificities for instance...
    - Send the final output to the client browser.
    Now, there are 2 problems:
    * 1/ I have seen various engines capable of chaining XSL transforms, and it is easy to produce XML from a jsp, but I don't know how to feed a jsp's output into an XML engine. is that possible? how?
    * 2/ I'm a bit concerned about the cost of applying three (or more) process stages, does anyone have insight on the performance issues this could raise?
    bonus question ;) : is there a simpler approach?
    Thanks a lot in advance, Remi
    null

    Hello,
    I am currently trying to figure out how to do the following:
    let's consider (that's not entirely hypothetical :) ) a web application working with JSP (on apache/tomcat 3.1) and oracle BC4J Application modules.
    The JSPs call oracle webbeans to perform updates and retrieve data from an 8.1.6 database.
    Now I'm thinking of moving to a combination of JSP, XML and XSL, which (hopefully) would allow to customize the application depending on the user's browser, language etc...(that's the point isn't it?)
    It doesn't seem to be a problem to produce XML from a jsp, send it directly to the client browser, which in turn goes to look for the proper XSL file and does all the transformation stuff.
    However this only works with I.E 5 for the moment right? and most website need to support various kinds of browsers...
    The need is:
    * When a non XML-capable browser is detected, apply the proper XSL(s) on the server side before sending the result back, in html/wml/whatever...
    * For XML-capable browsers, produce raw XML, maybe apply some XSL(s), and eventually send the result to the browser which handles the rest of the XSL stuff itself.
    Therefore, I'd like to:
    - Have the jsp produce the raw xml data (maybe adding extra tags, to indicate the browser and/or the language that the jsp engine has detected).
    - Pass the output to a first XSLT engine which would take care of the language stuff
    - Feed the result into a second XSLT engine to handle browser specificities for instance...
    - Send the final output to the client browser.
    Now, there are 2 problems:
    * 1/ I have seen various engines capable of chaining XSL transforms, and it is easy to produce XML from a jsp, but I don't know how to feed a jsp's output into an XML engine. is that possible? how?
    * 2/ I'm a bit concerned about the cost of applying three (or more) process stages, does anyone have insight on the performance issues this could raise?
    bonus question ;) : is there a simpler approach?
    Thanks a lot in advance, Remi
    null

  • How to set multple values in cluster with local variable?

    Hello all,
    Ok, I've made my way through Labview for everyone, and have some basic concepts down. I can see with a cluster, if acting directly upon it, you can unbundle, change values, rebundle, etc.
    I'm trying something a bit more complex...and just not sure how to get started on this.
    I have a drop down menu ring. I have set this up as a typedef, with 4 values.  I have used this typedef 7 times, plus some LED bools, in a cluster. I have made this cluster a typedef.
    So, in my main vi I"m starting to design, I've set up an example posted here....and in it, I have two instantiations of the cluster typedef, Left Selector and Right Selector.
    I have dropped into this vi, a copy of the menu ring typedef (same typedef as in the clusters, same values)....called reset all tubes.
    I'm trying now, to figure out how, with an event on the change of value for 'reset all tubes'....that I can start with the left selector, and change all the tubes (these are the menu ring selector)  to the same value as what has been selected with the 'reset all tubes' menu ring.
    I've created a local variable for the left selector. It is set to read values. (I'll be doing the same with the right one too, but just starting with the left).
    In examples I've seen where directly accessing a cluster, you could unbundle the cluster...loop through and change the values...maybe pull out all of the 'tubes' into an array and move through that to update the values.  And when you bundle or unbundle the cluster...you can see the values, etc, when you stretch them out on the block diagram.
    With the local variable..I can't see to 'stretch' it out like I was expecting..so I can access the values for the 'tubes'...and set them all to the value of the 'reset all tubes' ring menu value.
    Can someone put me on the path on the best way to do this....or is there a structure of component I'm missing here ?  Am I on the right track to begin with here?
    This would seem pretty basic to me, but I'm just missing something here on how to start...
    Thank you in advance,
    cayenne
    Solved!
    Go to Solution.
    Attachments:
    example_select_dropdown.ctl ‏5 KB
    public_selector_cluster.ctl ‏6 KB
    laptop_test_public.vi ‏12 KB

    nathand wrote:
    You can't do this with a for loop the way the cluster is structured, but why make it so complicated?  Just bundle the new value into the cluster as shown below:
    If you do want to use a for loop, consider restructuring your cluster.  Group the ring and a boolean into a cluster, then drop 7 of those into the selector cluster.  Then you can use "cluster to array" and "array to cluster" since all elements in the outer cluster will be of the same type.
    Also, be careful using rings as type definitions.  You probably want to use an enumeration instead.  The items in a ring do not update when you update the type definition because they're considered to be cosmetic; the items in an enumeration type definition do update, because the items in an enumeration are considered part of the data type.
    Oh my goodness!!
    What was MUCH easier than I was trying to make it!!
    I was attempting to do this reset, in an incremental fashion, as that later, I'm going to need to change values in this cluster by individual elements....and was using this as a way to try to understand how to iterate between cluster elements, and change the values of each one.
    This solution works much better for this 'reset' all solution.
    One question on this....with regard to the enum vs the ring menu.
    I was actually going to go with the enum, however, I could not find a way to make it LOOK like the ring menu...with the arrow to the side that a user would know to click to present the menu list of choices.
    I see with the enum, that you can remove the increment/decrement indicator.....and if the user clicks the control, it will indeed pop up a menu of choices...but there is no 'arrow' on that control to indicate to the user that it is a menu choice there.....
    Is there a way to make and enum look like a ring with the "drop down menu" control look?
    Again, thank you !!
    This helps!
    C

  • Xsl:include, dynamic href attribute

    Is it possible to use a xsl parameter or variable for the href attribute of xsl:include ?
    I tried
    <xsl:param name="xxx" />
    and then <xsl:include href="{$xxx}"/>
    or even
    <xsl:include>
    <xsl:attribute name="href">
    <xsl:value-of select="$xxx" />
    </xsl:attribute>
    </xsl:include>
    None of this works (I haven't tried with other xslt processors than Oracle).
    Any suggestions ?
    null

    I have attempted the same thing before as well. The only way I was able to dynamically build the xsl:include was to declare a new namespace e.g xmlns:out="output.xsl" in my XSL file and do something like the following:
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:out="output.xsl">
    <xsl:namespace-alias stylesheet-prefix="out" result-prefix="xsl"/>
    <xsl:varible name="xxx" select=" 'myFile.xsl' "/>
    <xsl:template match="/">
    <out:stylesheet version="1.0">
    <out:template match="/">
    <out:include>
    <xsl:attribute name="href">
    <xsl:value-of select="$xxx" />
    </xsl:attribute>
    </out:include>
    </out:template>
    </out:stylesheet>
    </xsl:template>
    </xsl:stylesheet>
    When applied to any valid XML document this produces the XSL file you are after as the output.
    To use this output against your intended XML source consider the following: A Java program can very quickly apply the above stylesheet to any XML source to get the output you want... then apply that XSL result to the actual XML document you are wanting to transform. From here you can do what you want with the transformed result.

  • Xsl:include not resolving no matter HOW I load the xslt

    I cannot get *<xsl:include>* to work with XMLTRANSFORM in a PL/SQL environment in Oracle 11.2.0.3. I am exclusively working inside the database.
    I have a base XSLT which includes another XSLT using xsl:include. I want to load the base XSLT as an XMLTYPE and have it transform another XML document, as if the entire XSLT were one large document.
    I have loaded the base (base.xslt), the extension (include_with_base.xslt), and the combination of the two (entire_thing.xslt) in the XDB catalog. base.xslt has this statement inside its xsl:stylesheet node, attempting to include the other xslt:
    *<xsl:include href="/public/include_with_base.xslt" />*
    I have the xslts stored in XDB. This verifies they are intact:
    1. The base xslt which has the xsl:include statement in it loads just fine.
    select xdburitype('/public/base.xslt').getXML() from dual;
    2. The extension which is the target of the include reference in the base xslt loads just fine.
    select xdburitype('/public/include_with_base.xslt').getXML() from dual;
    3. The combination of the two, where I cut-and-paste all children of xslt:stylesheet from include_with_base.xslt into the xslt:stylesheet node of base.xslt also loads just fine.
    select xdburitype('/public/entire_thing.xslt').getXML() from dual;
    However, when I try to execute a transformation of some test xml using base.xslt, it fails:
    select XMLTRANSFORM(xdburitype('/public/xml_input.xml').getXML(), xdburitype('/public/base.xslt').getXML()) FROM dual;
    When I try to execute the same transformation of the same test xml using entire_thing.xslt, it works:
    select XMLTRANSFORM(xdburitype('/public/xml_input.xml').getXML(), xdburitype('/public/entire_thing.xslt').getXML()) FROM dual;
    When I perform the transformation using altovaxml and the two xslts are in the same disk directory (and I use a relative reference with no path information rather than an absolute reference like I show in the examples above), the transformation works just fine.
    What can I do to make XMLTRANSFORM work with an XSLT that has an essential <xsl:include ... /> reference in it?
    Edited by: user11359697 on Apr 15, 2013 1:49 PM

    For fun, here's an implementation of what I would call the "poor man" include.
    The query takes the URI of the main stylesheet as input and recursively replaces all xsl:include directives with the content of the corresponding stylesheet.
    It supports relative URIs.
    Test case :
    */public/include1.xsl*
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:include href="./include2.xsl"/>
      <xsl:template name="test">
        <TEST/>
      </xsl:template>
    </xsl:stylesheet>
    {code}
    */public/include2.xsl*
    {code:xml}
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template name="test2">
        <TEST2/>
      </xsl:template>
    </xsl:stylesheet>
    {code}
    */public/main.xsl*
    {code:xml}
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:include href="./include1.xsl"/>
      <xsl:template match="/">
        <xsl:call-template name="test"/>
      </xsl:template>
    </xsl:stylesheet>
    {code}
    and the query that rebuilds the complete stylesheet :
    {code}
    SQL> select xmlserialize(document      -- for display purpose
      2           xmlquery(
      3           'declare namespace xsl = "http://www.w3.org/1999/XSL/Transform"; (::)
      4            declare function local:include($href as xs:string) as element(xsl:stylesheet)
      5            {
      6              copy $d := fn:doc($href)/xsl:stylesheet
      7              modify (
      8                for $i in $d/xsl:include
      9                return replace node $i
    10                       with local:include(resolve-uri($i/@href, $href))/child::*
    11              )
    12              return $d
    13            }; (::)
    14            local:include($main_xsl)'
    15           passing '/public/main.xsl' as "main_xsl"
    16           returning content
    17           )
    18         indent
    19         )
    20  from dual;
    XMLSERIALIZE(DOCUMENTXMLQUERY(
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template name="test2" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <TEST2/>
      </xsl:template>
      <xsl:template name="test" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <TEST/>
      </xsl:template>
      <xsl:template match="/">
        <xsl:call-template name="test"/>
      </xsl:template>
    </xsl:stylesheet>
    {code}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Xsl:include from classpath

    We are using the XML SDK for Java. We've being trying to use the <xsl:include> tag to include stylesheets with header and footer templates into other stylesheets.
    I get the following error when I try to parse the stylesheet with my xml at run time on the server using the XMLProcessor class:
    XSL-1002: Error while processing include XSL file (no protocol: /common.xsl)
    The only way we can get the <xsl:include> to work is to use the fully qualified URL. For example:
    <xsl:include href="http://localhost/common.xsl"/>.
    Does anybody know how to get the processor to include using the classpath rather than making another request to the web server?
    null

    The transformer won't search the classpath, because that isn't an XSLT concept. If you want your program to control where an xsl:included document is to be loaded from, then you need to write a class that implements URIResolver and set your TransformerFactory to use it. You'd do that like this:SAXTransformerFactory factory = (SAXTransformerFactory) TransformerFactory.newInstance();
    factory.setURIResolver(new BasicURIResolver());(That's an example from code that I wrote.) That class that implements URIResolver simply has to take the href that it's given and do its own classpath search, like this:private static class BasicURIResolver implements URIResolver {
       * @see URIResolver#resolve(String, String)
      public Source resolve(String href, String base) throws TransformerException {
        String url = // some calculation from its parameters
        InputStream is = this.getClass().getResourceAsStream(url);
        return new StreamSource(is);
    }The "resolve" method will be called for every xsl:include, and I had to do some debugging to see what actually gets passed in its parameters. If you want the regular processing to take place instead of your own classpath search then I believe you can return null.
    You might want to invent your own convention, e.g. <xsl:include href="cp://myXSL.xsl"/>, to distinguish those XSLs for which you want to search the classpath.
    By the way, I believe the default, if you don't specify any path information at all, is for the transformer to search in the same directory as the containing XSL.
    PC&#178;

  • Xsl:include msg - document following root element must be well-formed

    I am getting the following message when I try to execute a transaction that takes an XML file & transforms it.  The message is:
    "[ERROR]: XSLTransform error: javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed."
    The transaction loads an xml input file, and then transforms it.  The transformation stylesheet does some formatting to the xml.  The stylesheet has an include in it that adds an element to the output. 
    Input XML data
    <?xml version="1.0" encoding="UTF-8"?>
    <Rowset>
        <Row>
            <ItemNo>00000000001884304</ItemNo>
            <ItemDesc>Test Item Description</ItemDesc>
        </Row>
    </Rowset>
    Expected output:
    <?xml version="1.0" encoding="UTF-8"?>
    <Item>
        <Items ItemDesc="Test Item Description" RawItemNo="00000000001884304" dotties="...................." editedItemNo="1884304" supernova="**********" />
    </Item>
    If I point the <xsl:include to a web folder on a test box, it will read & translate the data into the expected output.  However, when I have both the initial stylesheet and the include stylesheet in the same Web folder in MII, I get the above message.  If the URL is any different, it generates an IO error. 
    The initial stylesheet is
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
    <xsl:output method="xml" />
    <xsl:include href="http://myserver:myport/XMII/CM/foldername/testcalls_2.xsl"/>
    <xsl:variable name="wrkitem" select="//ItemNo"/>
    <xsl:template match="Row">
         <xsl:call-template name="RowEdit"/>
    </xsl:template>
    <xsl:template name="RowEdit" match="Row">
          <Item>
         <xsl:element name="Items" use-attribute-sets="RowChange">
               </xsl:element>
           </Item>
    </xsl:template>
    <xsl:attribute-set name="RowChange">
         <xsl:attribute name="RawItemNo">
               <xsl:value-of select="//ItemNo"/>
         </xsl:attribute>
         <xsl:attribute name="editedItemNo">
              <xsl:call-template name="removeLeadingZeros">
                   <xsl:with-param name="originalString" select="$wrkitem"/>
              </xsl:call-template>
         </xsl:attribute>
         <xsl:attribute name="ItemDesc">
                   <xsl:value-of select="//ItemDesc"/>
         </xsl:attribute>
         <xsl:attribute name="dotties">
              <xsl:call-template name="dots">
                         <xsl:with-param name="count" select="20"/>
                  </xsl:call-template>
         </xsl:attribute>
         <xsl:attribute name="supernova">
              <xsl:call-template name="stars">
              </xsl:call-template>
         </xsl:attribute>
    </xsl:attribute-set>
      <xsl:template name="dots">
            <xsl:param name="count" select="1"/>
          <xsl:if test="$count > 0">
            <xsl:text>.</xsl:text>
            <xsl:call-template name="dots">
              <xsl:with-param name="count" select="$count - 1"/>
            </xsl:call-template>
          </xsl:if>
      </xsl:template>
    <xsl:template name="removeLeadingZeros"> 
      <xsl:param name="originalString"/> 
      <xsl:choose> 
        <xsl:when test="starts-with($originalString,'0')"> 
          <xsl:call-template name="removeLeadingZeros"> 
            <xsl:with-param name="originalString"> 
              <xsl:value-of select="substring-after($originalString,'0' )"/> 
            </xsl:with-param> 
          </xsl:call-template> 
        </xsl:when> 
        <xsl:otherwise> 
          <xsl:value-of select="$originalString"/>
        </xsl:otherwise> 
      </xsl:choose> 
    </xsl:template>
    </xsl:stylesheet>
    and the stylesheet being called by the xsl:include -
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template name="stars" match="Item">
    <Stars>
         <xsl:element name="BBB">
              <xsl:text>**********</xsl:text>
         </xsl:element>
    </Stars>
    </xsl:template>
    </xsl:stylesheet>
    FYI, both of the stylesheets above are in the same folder on the WEB tab in MII.  The full name (properties tab) is:
    foldername/WEB/Test/stylesheet.xsl
    Also, I am able to browse & view each of them in IE.  The url they are at is:
    http://server:port/XMII/CM/foldername/test/stylesheet.xsl
    Both stylesheets appear to be well-formed.
    If I use any other syntax other than the full URL, the error it generates is an IO Exception on the included stylesheet.  The markup message above makes me believe that it is at least attempting to handle the included stylesheet. 
    In the Link editor of the xsl Transformation Incoming tab, there are two assignments being made.
    1.  Transform property
    object= xsl_transformation_0
    property=Transform
    expression="db://foldername/WEB/Test/stylesheet.xsl" (this is the initial, not included stylesheet)
    Link type=Assign Value
    2.  Input property
    object= xsl_transformation_0
    property=Input
    Expression=testitems_0.XmlContent
    Link type=Assign XML
    Running MII 12.0
    Thoughts?  Any input appreciated.

    In the first one you have two namespaces both with the same prefix.
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" and xmlns:xsi="http://xxxxxx/webservices/sites/"
    Thanks,
    Gaurav Jain
    Flex SDK Team
    http://www.gauravj.com/blog

  • Problems faced when using xsl:include and extension functions

    I am Working in XML and XSLT using Oracle's XML Parser V2.
    Previously i had worked in Microsoft technology using MSXMLParser.
    I am facing some problems in XSLT. They are as below...
    1. Using <xsl-include href="Somexsl.xsl">
    the oraclexmlparser processor is giving the error : XSL-1002: Error while processing include XSL file (no protocol: Submenu.xsl).
    * Can u tell me why i am getting this error, and what is the fix for this.
    The same case with <xsl:import> too.
    2. In case i have to write some functions in the previous WD of xsl i used these statements
    <?xml version='1.0'?>
    <!DOCTYPE PageRoot SYSTEM "../../Common/dtd/PageNavBar.dtd">
    <xsl:stylesheet
    xmlns:xsl="http://www.w3.org/TR/WD-xsl"
    xmlns:html="http://www.w3.org/TR/REC-html40"
    result-ns="">
    <xsl:script xmlns:xsl="uri:xsl"><![CDATA[
    var strWebContentPath = "/SurSITE/Content/";
    var strWebImagePath = "/SurSITE/sursitegraphics/";
    function IncScript()
    return "<script language='javascript' src='/SurSITE/Includes/avalidations.js'></script>";
    ]]>
    </xsl:script>
    To call the function i used this
    <xsl:eval no-entities='true'> IncScript();</xsl:eval>
    * Can u tell me how do i do this now, i tried with the code above using the current name space (<xsl:stylesheet version="1.1"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" />)
    Please use the example given above.
    I will be very greatfull to u if u can give me some suggestion or help for the above said problems.
    Thanking you and eagerly waiting for your reply(s).
    null

    The current version is "1.0" not "1.1"
    You haven't included the code for what your <xsl:include>
    statement looks like, which seems to be what it's complaining
    about...
    XSLT 1.0 has no <xsl:eval>, this is a microsoft specific tag
    from a pre-XSLT-1.0 version.
    XSLT 1.0 has no <xsl:script> element either.

  • xsl:include in XSL Workshop

    I am trying to use <xsl:include> for some proxy stylesheet. I use the form
    <xsl:include href="filename.xsl" />
    I get the following error when process the stylesheet:
    'Bad URI found while including/importing file: no protocol: filename.xsl'
    Currently I am just working with the workshops, I have not deployed the xsl stilesheets yet to the server.
    Everything works as expected in XMLSpy.
    Does anybody have an example of a working <xsl:include>?

    what about putting that file in the respository? or set up the XMLDIR and put it there? I have never done it but just a though.
    Ben

  • Xsl:include return incorrect base url

    I am using FOP to generate PDF file in servlet.
              I have 2 stylesheets (e.g. a.xsl and b.xsl), they are located in <myapplication>\webapp\application\stylesheet.
              In a.xsl, it includes b.xsl:
              <xsl:include href="a.xsl"/>
              When I test the stylesheet in the command line (dos prompt), it runs fine. However, when I run it in weblogic (6.0), there is an error:
              org.xml.sax.SAXParseException: File "file://C:/bea/wlserver6.0/b.xsl" not found.
              The base url for b.xsl should be the same as a.url. I believe there is a bug in weblogic, isn't?
              Is there anyone who knows how to resolve this exception?
              Thanks.
              - Christina
              

    'set' is a reserved word. So is your column 'values'. Always avoid using reserved words.
    MySQL :: MySQL 5.5 Reference Manual :: 9.3 Reserved Words

  • Xalan, xsl:include, The system cannot find the file specified

     

    Hi
    Xalan is unable to parse stylesheets which contain xsl:include
    directives, even if the file being included is in the same directory.
    I'm currently porting our web application to weblogic 6.0 sp2 running on
    Windows 2000. The application works fine except for one annoying problem,
    this problem only manifests on Weblogic 6.0 sp2.
    I've got a servlet which makes use of a jsp tag. The tag uses the
    ServletContext.getResource() to reference a stylesheet in the webapps' xsl
    subdirectory. If that stylesheet contains an xsl:include e.g. <xsl:include
    href="myother.xsl"/>, myother.xsl is contained in the same directory as the
    stylesheet containing the include. Xalan fails to parse the stylesheet. The
    following exception is thrown "org.apache.xalan.XSLProcessorException: The
    system cannot find the file specified".
    I've currently amended the weblogic classpath as follows
    set
    CLASSPATH=.;c:\myjars\xerces.jar;c:\myjars\xalan.jar;c:\myjars\bsf.jar;c:\my
    jars\js.jar;.\lib\weblogic_sp.jar;.\lib\weblogic.jar
    xerces v1.4
    xalan v1.2.2
    bsf (as supplied with xalan 1.2.2)
    js (Mozilla Rhino 15R2)
    The code in the jsp tag to load the stylesheet is as follows
    XSLTProcessor processor =
    XSLTProcessorFactory.getProcessorUsingLiaisonName("org.apache.xalan.xpath.xd
    om.XercesLiaison");
    URL styleSheetUrl =
    pageContext.getServletContext().getResource("/xsl/myxsl.xsl");
    StylesheetRoot stylesheet = processor.processStylesheet(new
    XSLTInputSource(styleSheetUrl.toExternalForm()));
    Any help would be appreciated.
    Regards
    Tony

  • Xsl:include and WAR Files

              We are trying to deploy our application using WAR file approach. We are using
              Weblogic 6.0 SP2 All our JSP and servlets are working fine.
              We have our reports generated based on XSL files. XSL files are put into the war
              file.
              In my transformation servlet, I am loading the original xsl file by calling getResourceAsStream(xslFileName);
              During the xsl transformation if we have any includes for another xsl file, I
              am getting an exception
              java.net.MalformedURLException: no protocol: myIncluded.xsl
              Basically in my original XSL file I have the following line
              <xsl:include href="myIncluded.xsl" />
              Could somebody tell me what I should doing to get rid off this exception.
              Thanks in advance
              SK
              

    The href attribute needs a protocal to determin what kind of uri it is dealing with file,http, etc..
    try changing this
    <xsl:include href="myIncluded.xsl" />to this
    <xsl:include href="file://./myIncluded.xsl" />
    or this
    <xsl:include href="file://myIncluded.xsl" />
    I'm not sure how this plays out seeing how your using the getResourceAsStream method. I dont know if getting a resource this way will allow the xsl processor to resolve the url correctly or not. You may have to use a jar protocal or something like that to get it to work. You may even need to specify the absolute url to the include file.

  • XSL Include

    When using XSL Include, is it possible to include HTML files as well? I would like to have a common footer on all of my xsl stylesheets and was hoping xsl-include would do the trick. It will bring in the text, but it strips all the <> tags and leaves me with just plain text. Is there something I can do to the include file to preserve all the HTML tags upon inclusion via xsl-include?

    What you can do is:
    1. Create named templates for
    "header" and "footer".
    2. Put these templates in an .xsl file
    called common.xsl
    3. <xsl:include href="common.xsl"/>
    in the stylesheet where you want
    to use the common header and
    footer.
    4. Add <xsl:call-template name="header"/>
    and <xsl:call-template name="footer"/>
    at the appropriate places in your
    new stylesheet.

Maybe you are looking for

  • Ajuda com Product/Software Component/Business System

    Pessoal Preciso de uma ajuda de vcs, estou com um ambiente que o BASIS instalou tudo mas o Produto/Software Component SAP NFe 1.0 não está aparecendo no SLD portanto nao consigo fazer a amarracao com o Business System ( que foi criado ). Vcs sabem me

  • Help with exporting A Small AVI

    I am working on a project for school using my schools computers to edit with Premiere Pro and After Effects cs3. I edited my project and exported it through the media encoder using H2.64 codec ane exported it as a .mp4 and it was slow for the my teac

  • View for parameters

    Hi, Is there any pre-defined view in oracle, to find out parameters and datatypes of procedures and fuctions created by user Thanks Pavan Kumar N

  • Temp Tables in Oracle?

    Hi. Where can i find information abount using temp tables in Oracle? I usually work with SQL Server and use temp tables. I don't have any idea about temp tables in Oracle. Could you give me any information? Thanks. I'm sorry for may english, I'm span

  • Hyper-V Replication - Subnet Configuration Between Datacenters?

    I'm designing a DR solution in a geographically separate datacenter which will use Hyper-V 2012 R2 Replication to replicate several of our VMs to another Hyper-V cluster. The VMs will run a mix of Linux and Windows, with the Windows servers being Exc