我有具有以下结构的 XSD 架构:
ElementA
只有一个 ElementB
而 ElementC
有零个到无限个
ElementA -> ElementB -> ElementC[]
当我使用此模式和 xsd.exe
生成类时,它会生成多维数组:在使用 ElementA
的任何地方,它都会将 ElementC[][][]
。对于每个深度一维。有没有办法阻止 xsd.exe
这样做?
例如,XSD 定义了一个名为 carList
的元素,它只包含汽车标签(从零到无限的“汽车”)。然后 xsd.exe
应该创建一个名为 carList
的类,它只包含一个一维数组或汽车列表。相反,无论在哪里使用 carList
,它都会放置一个 car[][]
。不喜欢那样。
还有一个问题,除了生成将被填充和序列化的类之外,是否还有一种方法可以生成适合给定 XSD 的 XML?
最佳答案
我也使用 xsd.exe,但我不知道更好的方法,至少对于 .NET 平台而言。
从 XML 生成 XSD 架构文件后,您需要修改 XSD 文件中的维度范围,然后生成类。因为,XML 中的维度不明确。您目前可能只有一个节点,但也许您可以在将来添加更多。规则不确定。因此,您需要在生成代码文件之前手动编辑 XSD。
关于xml - 停止 xsd.exe 生成多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8137862/