所以在任何人告诉我我不应该这样做之前,我完全同意。但是我有一个来自第三方的xml DataFeed。我已经和他们联系,看看他们是否可以改变它,但我想我最好从双方攻击它。
XML中的违规标签如下:
<Tags>
<TagDimension id="Topic">
<ExternalId>Topic</ExternalId>
<Tags>
<Tag>
<Label>awesome</Label>
</Tag>
</Tags>
</TagDimension>
</Tags>
我绝不是XML / XSD专家。我的技能包括从VS命令行运行xsd.exe,它带来了我:
C:\ temp&gt; xsd sample.xml Microsoft(R)Xml架构/数据类型支持实用程序 [Microsoft(R).NET Framework,版本2.0.50727.3038] 版权所有(C)Microsoft Corporation。版权所有。 错误:处理'sample.xml'时出错。 - 表(标签)在嵌套关系中不能是子表。
处理此问题的最佳方法是什么?
答案 0 :(得分:1)
我发现“一种方式”虽然我不确定它是一种好方法。看起来XSD文件对递归命名的节点没有任何问题。它只是xsd.exe工具。我所做的是将内部<Tag>
节点重命名为<Tag2>
,这允许我生成xsd文件。然后我在Visual Studio中打开了xsd并将其重命名为<Tag>
。
看起来这更像是我对工具的依赖以及对XSD / XML缺乏了解的结果,但如果有更多知识渊博的人会对此感兴趣,我会很高兴。