重构.xsd架构的工具?

时间:2012-01-18 16:20:41

标签: xsd

我有一个.xsd方案,它有多个根元素,很少有复杂和简单的类型,复杂类型引用那些根元素。由于那些根元素,我不能以我想要的方式生成.xml。所以我认为我需要添加将作为根元素的元素,并将所有其他元素添加为其子元素,否则我错了?

是否有可以帮助我创建根元素和重构方案的工具?我得到了什么: enter image description here

我在想也许我只需要用1个元素创建另一个xsd并在其中引用所有元素形成第一个xsd,但我不知道该怎么做。这是个好主意吗?

2 个答案:

答案 0 :(得分:2)

你的编辑的答案确实如同Pangea所说的那样。这是因为要引用另一个元素(如< xsd:element ref =“SomeElement”... />),必须全局声明引用的元素。

需要全局元素的其他场景是使用替换组。我想要建议的是,可能并不总是能够以一种方式重构XSD,这种方式只需要在实例XML中将所需的元素作为root用户。

哪个应该让你认为要解决你的问题,一个更好的方法可能是追求你不能以你想要的方式生成.xml的原因。如果你能描述一下,你可以在这里找到更好的答案......

我想添加这个答案的另一个原因是我注意到使用XML作为标记名称。虽然它可能看起来不错,但我可以告诉你,我已经看到了一些非常“大牌”的应用程序,这些应用程序只会用< XML />标签名称。 XML实际上是“保留的”,请查看XML规范的this section。引用:“名称以字符串”xml“开头,或者任何匹配的字符串((''X'|'x')('M'|'m')('L'|'l' )),保留用于本规范的此版本或未来版本的标准化。

始终使用规格......

答案 1 :(得分:1)

您在架构中定义的任何全局元素都是实例文档中的潜在根元素。如果您不想要此行为,请确保xsd中只有一个全局元素定义。它与该工具无关(尽管xml编辑器可以简化此工作)。