[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: collection is not working

Subject: Re: collection is not working
From: "Mukul Gandhi gandhi.mukul@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 3 Apr 2018 09:20:46 -0000
Re:  collection is not working
Hi Rahul,
   Here's something that I tried, which worked.

The XSLT stylesheet is,

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

                         xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
                         exclude-result-prefixes="xsi"
                         version="2.0">

    <xsl:output method="text"/>
    <xsl:param name="DocumentsURI" />

    <xsl:template match="/">
        <xsl:text>Filename  Schema name&#xa;</xsl:text>
        <xsl:for-each
select="collection(concat($DocumentsURI,'?select=*.xml;recurse=yes;on-error=ignore'))">
            <xsl:variable name="fileName" select="base-uri()"/>
            <xsl:variable name="schemaName"
select="article/@xsi:noNamespaceSchemaLocation"/>
            <xsl:value-of select="tokenize($fileName,'/')[last()]"/>
            <xsl:text> </xsl:text>
            <xsl:value-of select="$schemaName"/>
            <xsl:text>&#xa;</xsl:text>
        </xsl:for-each>
    </xsl:template>

</xsl:stylesheet>

Please create a parameter to stylesheet as follows,
name:  DocumentsURI
value: file:/C:/Users/mukul/Desktop/test
(the 'value' is where, all my XML files and XSLT are kept. Please mention
location as per your local environment)

I specified the XML files as follows,
aa.xml
<?xml version="1.0" encoding="UTF-8"?>
<article xsi:noNamespaceSchemaLocation="aa.xsd" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
   <name>aaas</name>
</article>

Similarly for other XML files.

After running the stylesheet I get following output,
Filename  Schema name
aa.xml aa.xsd
bb.xml bb.xsd
cc.xml cc.xsd

I used Saxon-HE 9.7.0.19, to test this.

Hope this helps.

On Mon, Apr 2, 2018 at 10:09 PM, Rahul Singh rahulsinghindia15@xxxxxxxxx <
xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

> Hi,
>
> I have 100 xml file which contains xml data with schemalocation namespace
> in root element, i have written xslt to merge file name with schema name in
> one file but i am not able to generate my output :
>
> *Input: *
> *aa.xml*
> <?xml version="1.0" encoding="UTF-8"?>
> *<article xsi:noSchemaLocation="aa.xsd">*
> <name>aaas</name>
> </article>
>
>
> *bb.xml*
> <?xml version="1.0" encoding="UTF-8"?>
> *<article xsi:noSchemaLocation="bb.xsd">*
> <name>ars</name>
> </article>
>
>
> *cc.xml*
> <?xml version="1.0" encoding="UTF-8"?>
> *<article> xsi:noSchemaLocation="cc.xsd"*
> <name>tytu</name>
> </article>
>
>
> *Expected output:*
>
> Filename  Schema name
> aa.xml      aa.xsd
> bb.xml      bb.xsd
> cc.xml      cc.xsd
>
>
> *code:*
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/
> 1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"
> xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/
> 2005/xpath-functions">
>     <xsl:output method="xml" indent="yes"/>
>     <xsl:strip-space elements="*"/>
>     <xsl:param name="DocumentsURI" select="'file:/C:/Users/rahul/
> Downloads/ARB/ARB'"/>
>     <xsl:template match="node()|@*">
>         <xsl:copy>
>             <xsl:apply-templates select="node()|@*"/>
>         </xsl:copy>
>     </xsl:template>
>     <xsl:template match="/">
>         <!--Generating Result Docuemnt-->
>         <xsl:result-document href="Merged.xml" method="xml" indent="yes">
>             <Articles>
>                 <xsl:for-each select="collection(concat($
> DocumentsURI,'?select=*.xml;recurse=yes;on-error=ignore'))">
>                     <xsl:apply-templates select="/article"/>
>                 </xsl:for-each>
>             </Articles>
>         </xsl:result-document>
>     </xsl:template>
> </xsl:stylesheet>
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <-list/2709226> (by
> email <>)
>



-- 
Regards,
Mukul Gandhi

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.