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

Similar Messages

  • Xsl:include xsl:import and clob

    I can use xslprocessor.processXSL to perform transformation where the XML and XSL are in CLOBs.
    However, is it possible to perform transformation if the XML and XSLs are in CLOBs and the XSL have xsl:include and xsl:import?
    Thanks and Regards,
    Andy

    It will be supported in later release.

  • Xsl:include and xml:import

    I want to use another stylesheet within the original one.
    the documentation just said how to declare an
    xsl:include or xsl:import element as top level, but no examples about how to call the imported or included stylesheet.
    I'll appreciate any examples you can provide to me .
    Thanks
    Chris

    I've done this, and the way i think about it is that each "imported" XSL document combines (or are appended) into the XSL document that imports the other XSL documents. As such, all of the template matching that is occuring has to be consistent with the way the XML tags are matching up with XSL templates.
    It is important that the templates in each imported XSL document will match up to the XML tags that the templates are designed to transform.
    In other words, if i have an employee list <emp>, and an XSL template matching the <emp> element, i can produce a transformation on the list itself. now, i can define a transformation for a child element of <emp> by "importing" the XSL document that defines the template match for the child element (for example, "emp/lastName" can be what the second XSL document matches on).
    Long story short, if you can paste the imported XSL into the importing XSL and things still work, then you can separate them out into multiple modular XSL files for inclusion.
    -dave
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Christos Kouros ([email protected]):
    I want to use another stylesheet within the original one.
    the documentation just said how to declare an
    xsl:include or xsl:import element as top level, but no examples about how to call the imported or included stylesheet.
    I'll appreciate any examples you can provide to me .
    Thanks
    Chris<HR></BLOCKQUOTE>
    null

  • Gif file in a xsl:include

    Hi,
    Can a .gif file be included in a xsl:include?
    I cannot use <img src="/images/delete.gif"/> since the "src" part is
    1)going to be dynamic and
    2)cannot be returned as a TAG in the XML as well.
    Thanks in advance...

    why can't you make the image path a variable or parameter...
    <xsl:param name="imgPath" select="your_code_or_set_it_externally" />
    <IMG>
         <xsl:attribute name="SRC">
              <xsl:value-of select="$imgPath" />
         </xsl:attribute>
    </IMG>

  • 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.

  • How can i include the file, not xsl file, to xsl ?

    Hi,
    I would like to include a file called 'head.inc' to xsl. How can i do that ?
    the content of the head.inc is simple, just a part of the html code.
    say:
    <html>
    <head></head>
    <body>
    i can't use <xsl:import /> or <xsl:include />, which tag i can ??
    Thx a lot !

    You could use the document() function to access it. But it would have to be a valid XML file, XSL doesn't allow you to risk including a fragment that might cause the result to be invalid XML. Which could happen with your example. Remember that XML and XSL work with elements, not with tags.

  • 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.

  • 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 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

  • 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

    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.

  • Problem using "xsl:include"

    I am trying to include one xsl file in another. When I do this, I get the error:
    "oracle.xml.parser.v2xslexception: xsl-1002: Error while processing xsl file (no protocol tabledef.xsl" - where tabledef.xsl is the name of the xsl file I am trying to include. Any thoughts? I bet I am missing something simple, but I've looked at it a few times and can't see anything obviously wrong.

    The included files are included by href.
    This href is relative to the current document's base URI.
    How are you passing the initial stylesheet
    to the XSL processor? in a stream perhaps, where it cannot determine the "current directory" to use as the base for the relative include's?

  • 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.

  • 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

  • Performance xsql:xml-include vs. xsl:document(...)  !

    Dear Steve,
    I have html markup file stored in XHTML format which is, of
    course, XML. Also, I put <marker id="some_name"/> in all places
    where I want XSLT injections.
    My XSLT is something like this:
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" indent="yes"/>
    <xsl:variable name="markup" select="document('MyMarkup.xml',/)"/>
    <xsl:template match="@* | node()">
    <xsl:copy>
    <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
    </xsl:template>
    <xsl:template match="/">
    <xsl:for-each select="$markup">
    <xsl:apply-templates select="html"/>
    </xsl:for-each>
    </xsl:template>
    <xsl:template match="html">
    <xsl:copy>
    <xsl:copy-of select="@*"/>
    <xsl:apply-templates/>
    </xsl:copy>
    </xsl:template>
    <xsl:template match="markup[@id='script']">
    <!-- do something here -->
    </xsl:template>
    </xsl:stylesheet>
    Now, here is the question. What is most efficient way to use
    this Markup technique?
    Is it <xsql:include-xml href=MyMarkup.xml/> in XSQL page
    and XSL processing the composite document or xsl:document
    function as I described?
    What is cached by XSQL servlet, if anything?
    The "markup" technique provides clear separation of labor and
    layers.
    And it is crucial to have it perform well. I think, that it
    would be very easy to cache xsql:include-xml document once and
    for all sessions or have a special attribute in this tag to
    explicitly ask for this.
    Sincerely,
    David

    ( I can't use
    <xml:transform>
    because this expects the xsl file as a parameter )But you know the name of the xsl file, so that shouldn't be a problem, correct...?
    But as to your question, the xml file is a static file, so the jsp:include will copy its contents (it acts like <%@ import %> in this case...). The jsp will only process the page if it detects it as a dynamic page, ie Servlet or JSP.
    Perhaps you can make an intermediary JSP that transforms the xml... I have never tried it, but would:
    //Intermediary JSP:
    <jsp:forward page="./stocks2.xml" />
    //then in the primary JSP
    <jsp:include page="./intermediary.jsp"/>It might fool the jsp:include into thinking the content is dynamic, while the jsp:forward would take care of processing the XML. That assumes that once the jsp:forward is done that the rest of the primary jsp will be handled... not sure if that is the case though...

Maybe you are looking for

  • Printing Problems with Acrobat Pro 9.5 for Mac

    I have Acrobat pro 9.5 for Mac.  I'm using a Canon MG8150 multi-function printer.  Everytime I try to print from Arobat Pro I get an error message.  Any suggestions?  I can print my pdfs from Apple Preview; so it's not the document or the printer.

  • Adobe Reader 9.3 takes over icons on Windows 7 Desktop

    This has repeated 4 times (downloaded 9.3 and installed) since I got a new laptop two months ago.  All icons become unusable with error SC_Reader.ico.   Adobe help was call but since this is a free product, no help was provided.  I have had several o

  • Amount difference of Import PO in table EKKO and KONV

    Hi Gurus I have created Import PO in which 1200 Qty Price is 100000(jpy) per 200 ,total price  of 1200/200 qty is 600000, but when i view the Table entries EKKO for this particular PO and I have checked in Total value field i find only 6000  i.e it i

  • Accounting doc is not create?

    Hello cham's, After creating the billing document it was not posted into finance and the system is showing accounting document is not created.  How to procede to resolve this error will anyone share your expertise?.

  • Authentication problem

    I have a few applications that are desinged practically in the same way. I am using IIS as a web server. One of the applications has a very strange problem. It would take much longer time to get data from the server than others. Here is a strange par