xsl-list
[Top] [All Lists]

Re: [xsl] Insert elment in XSD

2008-02-28 05:25:22
igutierrez027(_at_)ikasle(_dot_)ehu(_dot_)es 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[(_at_)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/

--~------------------------------------------------------------------
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>
--~--

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