0

我正在使用 JiBX 基于外部源提供的 XSD 解组 XML;不幸的是,某些“必需”字段并不总是出现在 XML 中,这导致 JiBX 抛出“org.jibx.runtime.JiBXException: Missing required element”。

我知道我可以编辑 XSD 文件并将“必填”字段更改为可选字段,但由于这些文件会定期更新,我宁愿不这样做。我可以更改 JiBX 中的设置(在编译/绑定时或运行时)以在运行时忽略丢失的元素,例如,通过将与丢失元素对应的字段的值设置为 null?

编辑:更改即-> 例如:)

4

1 回答 1

0

JD,
为不同的模式定义创建 JiBX 绑定的最简单方法是将模式定义修改为所需的模式。
这可以通过在原始模式定义上运行 xml 转换来创建新模式来轻松干净地完成。
看看这个在运行 JiBX 之前修改模式的 maven 项目示例:https
://github.com/jibx/schema-library/blob/master/net.webservicex/net.webservicex.currencyconvertor/pom.xml 我知道 xml 转换语言很痛苦,但这解决了您将来在架构更改时遇到的问题。您的 xslt 命令看起来像这样:
<xsl:template match="//xs:attributeGroup[@name='FlifoLegAttributes']">
<xs:attributeGroup name="FlifoLegAttributes">
<xs:attribute name="AirRowType" type="OTA_CodeType" use=" optional ">
</xs:attribute>
</xs:attributeGroup>
</xsl:template>

我希望这有帮助。
大学教师

于 2012-08-28T20:44:54.950 回答