I am writing an xslt file to transform the contents of one
xml document to another that has an associated schema. If I
create a new xml document with XMLSpy and assign the schema,
it produces the following directives in the root element:
<ACORD
xmlns="http://www.ACORD.org/standards/PC_Surety/ACORD1.4.1/xml/"
xmlns:Marsh="http://www.marsh.com/" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.ACORD.org/standards/PC_Surety/ACORD1.4.1/xml/
C:\MYDOCU~1\Marsh\ACORD\XSD\Marsh_ACORD_1-4-1.xsd">
I can specify this element in my xslt template as:
<xsl:element name="ACORD" namespace="
http://www.ACORD.org/standards/PC_Surety/ACORD1.4.1/xml/" >
but I can find no documentation on how to reproduce the second namespace
directive or the schema directive.
The xmlns:xsi declaration should be generated automatically when you do
<xsl:attribute name="xsi:schemaLocation"
namespace="http://www.w3.org/2001/XMLSchema-instance">...</xsl:attribute
The xmlns:Marsh one is more tricky: in XSLT 2.0 you've got
<xsl:namespace>, but in 1.0 the only way of generating a namespace node
that isn't actually used by the element or any of its attributes is to
copy the namespace node from somewhere. One way is to have a source
document
<dummy xmlns:Marsh="http://www.marsh.com/"/>
and then do <xsl:copy-of
select="document('dummy.xml')/dummy/namespace::Marsh"/>
Michael Kay
____________________
Ed Trembicki-Guy
Application Designer
Marsh USA Inc.
Waterfront Corporate Center
121 River Street
Hoboken, NJ 07030
Phone: (201) 284-3278
Fax: (201) 284-2095
Internet: Ed(_dot_)Trembicki-Guy(_at_)marsh(_dot_)com
____________________
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list