- From: Costello, Roger L. <costello@mitre.org>
- Date: Sun, 5 Jul 2009 18:20:56 -0400
- To: "xproc-dev@w3.org" <xproc-dev@w3.org>
Hi Folks, Consider this business rule: All person's social security number must be unique. How would you implement the rule, using only native XProc steps? (i.e. don't escape to XSLT) Below is an implementation I created. Can you come up with a better implementation? /Roger ***************************************************** check-SSNs.xpl ***************************************************** <p:declare-step xmlns:p="http://www.w3.org/ns/xproc" xmlns:c="http://www.w3.org/ns/xproc-step"> <p:input port="SSNs"> <p:document href="SSNs.xml" /> </p:input> <p:output port="result" /> <p:filter select="/*[count(distinct-values(//@ssn)) eq count(//@ssn)]" /> <p:count /> <p:choose> <p:when test="number(c:result) gt 0"> <p:identity> <p:input port="source"> <p:inline><unique-SSNs>true</unique-SSNs></p:inline> </p:input> </p:identity> </p:when> <p:otherwise> <p:identity> <p:input port="source"> <p:inline><unique-SSNs>false</unique-SSNs></p:inline> </p:input> </p:identity> </p:otherwise> </p:choose> </p:declare-step> ***************************************************** SSNs.xpl ***************************************************** <?xml version="1.0"?> <SSNs> <Person ssn="365-78-2145" /> <Person ssn="430-43-4530" /> <Person ssn="201-59-3021" /> <Person ssn="590-10-0902" /> <Person ssn="430-32-4329" /> </SSNs>
Received on Sunday, 5 July 2009 22:21:37 UTC