Subject: [xsl] XPath expression to convert XSD enumerations into a regex, longest value first From: "Roger L Costello costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 7 Jul 2022 17:02:06 -0000 |
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] Is it possible to use rep, Wendell Piez wapiez@ | Thread | Re: [xsl] XPath expression to conve, Martin Honnen martin |
Re: [xsl] Is it possible to use rep, Wendell Piez wapiez@ | Date | Re: [xsl] XPath expression to conve, Martin Honnen martin |
Month |