[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
For some reason, I find xslt and xpath techniques are easy to forget. I believe I have done this before but couldn't remember exactly how. Ok, I have an xml schema and trying to convert it to DDL (data definition language) as SQL text.
For example, I picked this schema doc from the net http://www.xml.com/lpt/a/691:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" />
<xs:element name="author" type="xs:string" />
<xs:element name="character" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="friend-of"
type="xs:string" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="since" type="xs:date" />
<xs:element name="qualification"
type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="isbn" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:schema>
I have this template:
<xsl:template match="xs:element/xs:complexType/xs:sequence">
CREATE TABLE
<xsl:value-of select="../../@name" />
( )
<xsl:apply-templates />
</xsl:template>
It's doing what I want, but it's using recursive calls to apply to inner complex elements. How can I do this without recursion? In other words how to match elements in all depth?
Thank you.
[xsl] how to match elements in all depth
Subject: [xsl] how to match elements in all depth From: Mansour <mansour77@xxxxxxxxx> Date: Mon, 24 Mar 2008 19:34:42 -0300 |
For some reason, I find xslt and xpath techniques are easy to forget. I believe I have done this before but couldn't remember exactly how. Ok, I have an xml schema and trying to convert it to DDL (data definition language) as SQL text.
For example, I picked this schema doc from the net http://www.xml.com/lpt/a/691:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" />
<xs:element name="author" type="xs:string" />
<xs:element name="character" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="friend-of"
type="xs:string" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="since" type="xs:date" />
<xs:element name="qualification"
type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="isbn" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:schema>
And All I am trying to do for now, is to create two tables, like this: ========================================= CREATE TABLE book ( )
CREATE TABLE character ( ) =========================================
I have this template:
<xsl:template match="xs:element/xs:complexType/xs:sequence">
CREATE TABLE
<xsl:value-of select="../../@name" />
( )
<xsl:apply-templates />
</xsl:template>
It's doing what I want, but it's using recursive calls to apply to inner complex elements. How can I do this without recursion? In other words how to match elements in all depth?
Thank you.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] analyze string issues, Terry Ofner | Thread | Re: [xsl] how to match elements in , Mansour |
Re: [xsl] analyze string issues, Terry Ofner | Date | [xsl] Increase Doc-available timeou, Angela Williams |
Month |
Keywords