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
</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>
</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(_at_)gmail(_dot_)com <
xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> 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
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--