XML文档中的节点

时间:2008-11-19 21:18:46

标签: xsd biztalk

我设计了一个xml架构来解析传入的xml文档。接收位置从2个feed获取xml文档,其中一个拼写错误的文档中的节点,“Roookie”而不是“Rookie”,有没有办法让我现有的xsd解析这个文档?

4 个答案:

答案 0 :(得分:2)

你可能会预处理错误的XML文件,就像使用这个简单的XSL样式表一样:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml" indent="no"/>

<xsl:template match="Roookie">
        <Rookie>
                <xsl:apply-templates select="@*|node()" />
        </Rookie>
</xsl:template>

<xsl:template match="@*|node()" name="defaultRule">
        <xsl:copy>
                <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
</xsl:template>

</xsl:stylesheet>

答案 1 :(得分:0)

您需要替换文档中的元素或修改xsd以使用新的文档格式。

答案 2 :(得分:0)

只需修改您的架构以接受2个节点(Rookie或Roookie)之间的选择,而不仅仅是1个名为Rookie的节点。两个节点都具有相同的类型。 当然,如果Roo(o)kie具有复杂的内容,您将需要为此内容声明一个复杂类型,以避免重复2个元素的整个结构。

答案 3 :(得分:0)

这里的onyl答案是修改坏消息。 xsd是一份合同,应该通过提交系统来遵守。如果您对提交系统没有这种控制权,我建议使用新名称制作第二个模式,并使其适应拼写错误。我会为消息中的每个错误开始更改合同/ xsd,这会增加复杂性并降低可维护性。