Subject: RE: [xsl] filter From: TSchutzerWeissmann@xxxxxxxxxxxxxxxx Date: Tue, 3 Dec 2002 13:41:19 -0000 |
Paul, Why not substitute /xs:element/xs:complexType/xs:sequence/xs:element[@maxOccurs=5] for xs:element[starts-with(@ref,'GRP')] ? It doesn't have to be '5', but it can't be a variable. regards, Tom > -----Original Message----- > From: Paul [mailto:reganmian@xxxxxxxxx] > Sent: 03 December 2002 13:31 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] filter > > > Can somebody give any hints on the key definition > from string filter to other fact, as I don't think > a variable can be defined over the key. > > many thanks > Paul > =========================== > I had a filter question need help, many thanks in > advance !! > > Instead of being filtered by > [starts-with(@ref,'GRP')] > Is there a way use the fact that it is a > /xs:element/xs:complexType/xs:sequence/xs:element[@maxOccurs= > > some value] (to identify/filter the 'GRP' element) > > There are several places in the XSL(the XSL is > for the schema in the back) using this filter : > <xsl:key name="byGRP" > match="xs:element[not(starts-with(@ref, 'GRP'))]" > use="generate-id(preceding::xs:element > [starts-with(@ref,'GRP')][1])"/> > > <xsl:key name="elements" match="xs:element" > use="generate-id((preceding-sibling::xs:element | > self::xs:element) > [starts-with(@ref,'GRP')][last()])"/> > > <xsl:template match="xs:sequence"> > ... > <xsl:for-each select="//xs:element[starts-with > (@ref,'GRP')]"> > ... > <xsl:for-each select ="(xs:element | > xs:choice/xs:element | xs:sequence/xs:element | > xs:choice/xs:sequence/xs:element)[starts-with(@ref, > 'GRP')][1]"> > ... > </xsl> > > > > ======== schema ======= > <xs:schema > xmlns:xs="http://www.w3.org/2001/XMLSchema"> > <xs:element name="snoopy-a"> > <xs:simpleType> > <xs:restriction base="xs:sString"> > <xs:length value="9"/> > <xs:pattern value="[0-9]*"/> > </xs:restriction> > </xs:simpleType> > </xs:element> > <xs:element name="snoopy-b"> > <xs:simpleType> > <xs:restriction base="xs:string"> > <xs:length value="2"/> > <xs:pattern value="[0-9]*"/> > </xs:restriction> > </xs:simpleType> > </xs:element> > <xs:element name="snoopy-c"> > <xs:simpleType> > <xs:restriction base="xs:string"> > <xs:length value="2"/> > <xs:pattern value="[0-9]*"/> > </xs:restriction> > </xs:simpleType> > </xs:element> > <xs:element name="snoopy-d"> > <xs:simpleType> > <xs:restriction base="xs:string"> > <xs:maxLength value="4"/> > <xs:pattern value="[a-z,A-Z,\s]*"/> > </xs:restriction> > </xs:simpleType> > </xs:element> > <xs:element name="snoopy-e"> > <xs:simpleType> > <xs:restriction base="xs:string"> > <xs:length value="2"/> > <xs:pattern value="[0-9]*"/> > </xs:restriction> > </xs:simpleType> > </xs:element> > <xs:element name="snoopy-f"> > <xs:simpleType> > <xs:restriction base="xs:string"> > <xs:length value="2"/> > <xs:pattern value="[0-9]*"/> > </xs:restriction> > </xs:simpleType> > </xs:element> > <xs:element name="rabbit-tele"> > <xs:simpleType> > <xs:restriction base="xs:string"> > <xs:length value="10"/> > <xs:pattern value="[0-9]*"/> > </xs:restriction> > </xs:simpleType> > </xs:element> > <xs:element name="rabbit-name"> > <xs:simpleType> > <xs:restriction base="xs:string"> > <xs:length value="2"/> > <xs:pattern value="[0-9]*"/> > </xs:restriction> > </xs:simpleType> > </xs:element> > <xs:element name="WOLF-tele"> > <xs:simpleType> > <xs:restriction base="xs:string"> > <xs:length value="10"/> > <xs:pattern value="[0-9]*"/> > </xs:restriction> > </xs:simpleType> > </xs:element> > <xs:element name="WOLF-name"> > <xs:simpleType> > <xs:restriction base="xs:string"> > <xs:length value="2"/> > <xs:pattern value="[0-9]*"/> > </xs:restriction> > </xs:simpleType> > </xs:element> > <xs:complexType name="rabbit"> > <xs:sequence> > <xs:element ref="rabbit-tele" minOccurs="0"/> > <xs:element ref="rabbit-name" minOccurs="0"/> > </xs:sequence> > </xs:complexType> > <xs:element name="Harry-GROUP-ROW" type="rabbit"/> > <xs:element name="Harry-GROUP"> > <xs:complexType> > <xs:sequence> > <xs:element ref="Harry-GROUP-ROW" > maxOccurs="unbounded"/> > </xs:sequence> > </xs:complexType> > </xs:element> > <xs:complexType name="WOLF"> > <xs:sequence> > <xs:element ref="WOLF-tele" minOccurs="0"/> > <xs:element ref="WOLF-name" minOccurs="0"/> > </xs:sequence> > </xs:complexType> > <xs:element name="MickeyMouse-GROUP-ROW" > type="WOLF"/> > <xs:element name="MickeyMouse-GROUP"> > <xs:complexType> > <xs:sequence> > <xs:element ref="MickeyMouse-GROUP" > maxOccurs="unbounded"/> > </xs:sequence> > </xs:complexType> > </xs:element--> > > <!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--> > <xs:element name="MSG"> > <xs:complexType> > <xs:sequence> > <xs:element ref="snoopy-a"/> > <xs:element ref="snoopy-b"/> > <xs:element ref="snoopy-c"/> > <xs:element ref="Harry-GROUP"/> > <xs:element ref="snoopy-d"/> > <xs:element ref="snoopy-e"/> > <xs:element ref="MickeyMouse-GROUP"/> > <xs:element ref="snoopy-f"/> > <xs:choice> > <xs:element ref="snoopy-g"/> > <xs:element ref="snoopy-h"/> > </xs:choice> > <xs:element ref="snoopy-i"/> > <xs:element ref="snoopy-j"/> > <xs:element ref="WoodStock-GROUP"/> > </xs:sequence> > </xs:complexType> > </xs:element> > > </xs:schema> > > > many thanks > > Paul > > > > __________________________________________________ > Do you Yahoo!? > Yahoo! Mail Plus - Powerful. Affordable. Sign up now. > http://mailplus.yahoo.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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] filter, Paul | Thread | RE: [xsl] filter, Paul |
[xsl] special character, Sachdeva, Rajeev | Date | Re: [xsl] Doing HTTP/POST from XSLT, Daniel Veillard |
Month |