xsl-list
[Top] [All Lists]

RE: Creating namespace and schema directives

2003-12-12 09:54:19

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



<Prev in Thread] Current Thread [Next in Thread>