我们如何在DataPower中实现动态模式验证?

时间:2015-12-09 11:28:16

标签: validation xsd-validation ibm-datapower

要求: 动态模式验证。

请求URL将包含查询字符串中的函数名称。

http://DataPowerIP:Port/CD_HTML/AOL.jsp?function_id=YY_TD_ICT_CER_CREATE

DataPower在其文件管理中将有多个XSD。需要一个XSLT,它可以帮助从URL获取查询字符串并提取函数id YY_TD_ICT_CER_CREATE

接下来,它会将功能ID名称与XSD文件名YY_TD_ICT_CER_CREATE.xsd匹配,如果匹配,则会进行scema验证。

2 个答案:

答案 0 :(得分:2)

在您的XSL中,您可以通过dp:variable('var://service/URI')获取您的URI。编写代码以将function_id解析为xsl:variable。然后使用要用于验证的模式文件的名称设置DataPower上下文变量:

<dp:set-variable name="'var://context/this/schema-file'"
    value="concat('local:///my-schemas/', $function-id-value, '.xsd')"/>

此XSL转换步骤之后的策略中的下一步将是验证步骤。在通常指定静态本地XSD的位置,请指定上下文变量:

DataPower Validate using var

答案 1 :(得分:0)

交替地,您可以直接通过dp:schema-validate()扩展函数在样式表处理URL-in中进行架构验证。

但我并没有真正看到允许Schema验证对客户端指定Schema的价值,至少在一般情况下如此。模式验证应确保输入数据有效。如果客户端可以指向任何Schema(例如,通过&#34; http://...&#34; Schema的URL),则输入不会被拒绝。

赫尔曼。