Re: [xsl] Insert elment in XSD

Subject: Re: [xsl] Insert elment in XSD
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Thu, 28 Feb 2008 13:24:47 +0100
igutierrez027@xxxxxxxxxxxxx wrote:
Hello everybody!

I have one XSD and I need insert into it one elment along one stylesheet. I am using XSLT 2.0 with Oxygen.

This is my XSD:

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified"
targetNamespace="http://bibtexml.sf.net/"; xmlns:dc="http://purl.org/dc/elements/1.1/";
xmlns:ns1="http://bibtexml.sf.net/"; version="2.0">


<xs:import namespace="http://purl.org/dc/elements/1.1/"; schemaLocation="dc.xsd"/>

    <xs:element name="article">
    <xs:complexType>
      <xs:all>

<xs:element ref="ns1:author" minOccurs="1" maxOccurs="1"/>
<xs:element ref="ns1:title" minOccurs="1" maxOccurs="1"/>
</xs:all>
</xs:complexType>
</xs:element>



The element that I need insert is


<xs:element ref="ns1:reviewed" minOccurs="0" maxOccurs="1"/>

and I need to insert it between de tag <xs:all> . The result was:

 <xs:element name="article">
    <xs:complexType>
      <xs:all>

<xs:element ref="ns1:reviewed" minOccurs="0" maxOccurs="1"/>

<xs:element ref="ns1:author" minOccurs="1" maxOccurs="1"/>
<xs:element ref="ns1:title" minOccurs="1" maxOccurs="1"/>
</xs:all>
</xs:complexType>
</xs:element>


I know how to create the element, but I need the template's instructions to instert it into the XSD using the Stylesheet.


  <xsl:stylesheet
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
     xmns:xs="http://www.w3.org/2001/XMLSchema";
     version="2.0">

     <xsl:template match="@* | node()">
       <xsl:copy>
         <xsl:apply-templates select="@* | node()"/>
       </xsl:copy>
     </xsl:template>

<xsl:template match="xs:element[@name = 'article']/xs:complexType/xs:all">
<xsl:copy>
<xs:element ref="ns1:reviewed" minOccurs="0" maxOccurs="1"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>




--

	Martin Honnen
	http://JavaScript.FAQTs.com/

Current Thread