Thanks!!!
-----Original Message-----
From: Brandon Ibach [mailto:brandon(_dot_)ibach(_at_)single-sourcing(_dot_)com]
Sent: Thursday, July 14, 2011 12:49 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] DTD Namespaces and xslt output problems
Your sample document, as well as any document conforming to the given
DTD, has a default namespace declared
(http://www.wiley.com/namespaces/wiley). However, the template match
patterns in your XSLT are attempting to match elements that are not in
any namespace.
You either need to declare a prefix for the input document's default
namespace and use that in the match patterns or use the
"xpath-default-namespace" attribute, probably on the "xsl:stylesheet"
element, to declare the namespace for the unprefixed element names in
your match patterns.
-Brandon :)
On Thu, Jul 14, 2011 at 2:59 AM, JSRawat <jrawat(_at_)aptaracorp(_dot_)com>
wrote:
Hi All,
I have copied a sample DTD. I am not able to convert following INPUT using
following XSLT. If I comment DocType and Namespaces Attributes of
<component> in the input file, then I am getting the required output. I
want
to know the reason behind this and what should I do in the xslt so that I
will get the required result. Thanks in advance.
SAMPLE DTD
<!ELEMENT component (header,body)>
<!ATTLIST component
xmlns:wiley CDATA #FIXED "http://www.wiley.com/namespaces/wiley/wiley"
xmlns:cms CDATA #FIXED "http://cms.wiley.com"
xmlns:dctm CDATA #FIXED "http://www.documentum.com"
dctm:obj_id CDATA #IMPLIED
dctm:obj_status CDATA #IMPLIED
dctm:version_label CDATA #IMPLIED
dctm:link_version_label CDATA #IMPLIED
cms:chunk (yes|no) #IMPLIED
cms:link CDATA #IMPLIED
xml:id ID #IMPLIED
version (1.0.3) #REQUIRED
xmlns CDATA #FIXED "http://www.wiley.com/namespaces/wiley">
<!ELEMENT header (publicationMeta,contentMeta)>
<!ATTLIST header
xmlns:cms CDATA #FIXED "http://cms.wiley.com"
xmlns:dctm CDATA #FIXED "http://www.documentum.com"
dctm:obj_id CDATA #IMPLIED
dctm:obj_status CDATA #IMPLIED
dctm:version_label CDATA #IMPLIED
dctm:link_version_label CDATA #IMPLIED
xmlns CDATA #FIXED "http://www.wiley.com/namespaces/wiley">
<!ELEMENT body (section)>
<!ATTLIST body
xmlns:cms CDATA #FIXED "http://cms.wiley.com"
xmlns:dctm CDATA #FIXED "http://www.documentum.com"
dctm:obj_id CDATA #IMPLIED
dctm:obj_status CDATA #IMPLIED
dctm:version_label CDATA #IMPLIED
dctm:link_version_label CDATA #IMPLIED
xmlns CDATA #FIXED "http://www.wiley.com/namespaces/wiley">
<!ELEMENT contentMeta (title)>
<!ATTLIST contentMeta
xmlns:cms CDATA #FIXED "http://cms.wiley.com"
xmlns:dctm CDATA #FIXED "http://www.documentum.com"
dctm:obj_id CDATA #IMPLIED
dctm:obj_status CDATA #IMPLIED
dctm:version_label CDATA #IMPLIED
dctm:link_version_label CDATA #IMPLIED
xmlns CDATA #FIXED "http://www.wiley.com/namespaces/wiley">
<!ELEMENT publicationMeta (doi)>
<!ATTLIST publicationMeta
xmlns:cms CDATA #FIXED "http://cms.wiley.com"
xmlns:dctm CDATA #FIXED "http://www.documentum.com"
role CDATA #IMPLIED
dctm:obj_id CDATA #IMPLIED
dctm:obj_status CDATA #IMPLIED
dctm:version_label CDATA #IMPLIED
dctm:link_version_label CDATA #IMPLIED
cms:chunk (yes|no) #IMPLIED
cms:link CDATA #IMPLIED
position CDATA #IMPLIED
accessType CDATA #IMPLIED
xmlns CDATA #FIXED "http://www.wiley.com/namespaces/wiley">
<!ELEMENT section (p)>
<!ATTLIST section
xmlns:cms CDATA #FIXED "http://cms.wiley.com"
xmlns:dctm CDATA #FIXED "http://www.documentum.com"
dctm:obj_id CDATA #IMPLIED
dctm:obj_status CDATA #IMPLIED
dctm:version_label CDATA #IMPLIED
dctm:link_version_label CDATA #IMPLIED
xmlns CDATA #FIXED "http://www.wiley.com/namespaces/wiley">
<!ELEMENT doi (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT p (#PCDATA)*>
INPUT
<?xml version="1.0"?>
<!DOCTYPE component SYSTEM "sample.dtd"> <component version="1.0.3"
xmlns:wiley="http://www.wiley.com/namespaces/wiley/wiley"
xmlns="http://www.wiley.com/namespaces/wiley" xml:id="MBO31"> <header>
<publicationMeta>
<doi>10.1111/1432-1033</doi>
</publicationMeta>
<contentMeta>
<title>Title text</title>
</contentMeta>
</header>
<body>
<section>
<p>Paragraph text</p>
</section>
</body>
</component>
XSLT
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wiley="http://www.wiley.com/namespaces/wiley/wiley"
xmlns:cms="http://cms.wiley.com"
xmlns:dctm="http://www.documentum.com"
exclude-result-prefixes="xs wiley cms dctm"
version='2.0'>
<xsl:strip-space elements="*"/>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="component">
<html>
<head><title><xsl:value-of
select="header/contentMeta/title"/></title></head>
<body><xsl:apply-templates/></body>
</html>
</xsl:template>
<xsl:template match="header">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="publicationMeta"/>
<xsl:template match="contentMeta">
<div class="fm">
<xsl:apply-templates/>
</div>
</xsl:template>
<xsl:template match="body">
<div class="bdy">
<xsl:apply-templates/>
</div>
</xsl:template>
<xsl:template match="p">
<p>
<xsl:apply-templates/>
</p>
</xsl:template>
<xsl:template match="title">
<h1>
<xsl:apply-templates/>
</h1>
</xsl:template>
</xsl:stylesheet>
CURRENT OUTPUT
<?xml version="1.0" encoding="UTF-8"?>10.1111/1432-1033Title textParagraph
text
REQUIRED OUTPUT
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>Title text</title>
</head>
<body>
<div class="fm">
<h1>Title text</h1>
</div>
<div class="bdy">
<p>Paragraph text</p>
</div>
</body>
</html>
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--