我们如何在 DataPower 中实现动态模式验证?
How can we achive dynamic schema validation in DataPower?
要求:
动态模式验证。
请求URL将在查询字符串中包含函数名称。
http://DataPowerIP:Port/CD_HTML/AOL.jsp?function_id=YY_TD_ICT_CER_CREATE
DataPower 在其文件管理中将有多个 XSD。需要一个 XSLT,它可以帮助 t0 从 URL 中获取查询字符串并提取函数 idYY_TD_ICT_CER_CREATE
.
接下来它会将函数 ID 名称与 XSD 文件名 YY_TD_ICT_CER_CREATE.xsd
进行匹配,如果找到匹配项,将进行模式验证。
在您的 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的地方,改为指定上下文变量:
或者您可以在样式表处理中进行模式验证 URL-in 直接通过 dp:schema-validate() 扩展函数。
但我并没有真正看到允许针对客户端指定架构进行架构验证的价值,至少在一般情况下是这样。模式验证应确保输入数据有效。如果客户端可以指向任何模式(例如通过 "http://..." URL 模式)错误的输入不会被拒绝。
赫尔曼。
要求: 动态模式验证。
请求URL将在查询字符串中包含函数名称。
http://DataPowerIP:Port/CD_HTML/AOL.jsp?function_id=YY_TD_ICT_CER_CREATE
DataPower 在其文件管理中将有多个 XSD。需要一个 XSLT,它可以帮助 t0 从 URL 中获取查询字符串并提取函数 idYY_TD_ICT_CER_CREATE
.
接下来它会将函数 ID 名称与 XSD 文件名 YY_TD_ICT_CER_CREATE.xsd
进行匹配,如果找到匹配项,将进行模式验证。
在您的 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的地方,改为指定上下文变量:
或者您可以在样式表处理中进行模式验证 URL-in 直接通过 dp:schema-validate() 扩展函数。
但我并没有真正看到允许针对客户端指定架构进行架构验证的价值,至少在一般情况下是这样。模式验证应确保输入数据有效。如果客户端可以指向任何模式(例如通过 "http://..." URL 模式)错误的输入不会被拒绝。
赫尔曼。