我需要驗證一些使用EXSLT的Schematrons http://cpe.sunat.gob.pe/sites/default/files/inline-images/Reglas%20de%20Validaci%C3%B3n.zip的XML。我使用的Xalan Apache和SaxonHE爲好,但由於schematrons使用正則表達式那些不起作用:匹配,我真的有驗證與個XML包含正則表達式的Schematron的問題,例如:使用Java中的EXSLT驗證XML?
<xsl:if test="./cbc:ID/@schemeID ='02' and not(regexp:match(./cbc:ID,'^[F][A-Z0-9]{3}-[0-9]{1,8}$|^(E001)-[0-9]{1,8}$|^[0-9]{1,4}-[0-9]{1,8}$'))">
對於EXSLT的代碼可以在GitHub https://github.com/bzerangue/exslt.org
我的問題是,如果有驗證使用Java或JavaScript的schematrons個XML的方式。
請幫幫我!
如果您不想更改生成的代碼,您可以添加一個函數'regexp:match()'作爲用xsl:function聲明的用戶定義函數,調用'fn:matches() '。 –
感謝Martin Honnen和Michael Kay,它確實有效:) –