Subject: Re: [xsl] XPath expression to convert XSD enumerations into a regex, longest value first From: "Dimitre Novatchev dnovatchev@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 8 Jul 2022 01:57:00 -0000 |
Hi Roger, > Well, I devised a solution, but it sure ain't simple. > > string-join(for $i in reverse(sort(xs:restriction/xs:enumeration, (), function($enum) {string-length($enum/@value )})) return $i/@value, '|') > > Is there is a simpler XPath expression to solve this problem? I think this can be written in a good and readable way as below: string-join( sort(/*/xs:restriction/xs:enumeration/@value, (), function($s) {- string-length($s)}) , '|' ) Thanks, Dimitre On Thu, Jul 7, 2022 at 10:02 AM Roger L Costello costello@xxxxxxxxx < xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > Hi Folks, > > I have an XSD simpleType with enumeration values: > > <xsd:simpleType name="RunwayLightingType"> > <xsd:restriction base="xsd:string"> > <xsd:enumeration value="1"/> > <xsd:enumeration value="2"/> > <xsd:enumeration value="3"/> > <xsd:enumeration value="4"/> > <xsd:enumeration value="5"/> > <xsd:enumeration value="6"/> > <xsd:enumeration value="7"/> > <xsd:enumeration value="8"/> > <xsd:enumeration value="9"/> > <xsd:enumeration value="10"/> > <xsd:enumeration value="11"/> > <xsd:enumeration value="12"/> > </xsd:restriction> > </xsd:simpleType> > > I want to turn the values into a regex such that the longest value (not > the biggest value, the string longest value) is listed first: > > 12|11|10|9|8|7|6|5|4|3|2|1 > > Seems like a simple problem, right? Should have a simple solution, right? > > Well, I devised a solution, but it sure ain't simple. > > string-join(for $i in reverse(sort(xs:restriction/xs:enumeration, (), > function($enum) {string-length($enum/@value )})) return $i/@value, '|') > > Is there is a simpler XPath expression to solve this problem? > > /Roger
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XPath expression to conve, Martin Honnen martin | Thread | Re: [xsl] XPath expression to conve, Dimitre Novatchev dn |
Re: [xsl] Process the following gro, Eliot Kimber eliot.k | Date | Re: [xsl] XPath expression to conve, Dimitre Novatchev dn |
Month |