XML Schema元素支持子集:真或假?

时间:2011-06-09 10:49:23

标签: xml xml-serialization xsd

在这些日子里,我不得不开发涉及xml架构定义的应用程序。好吧,我使用某些系统和技术,其中大部分是与Microsoft相关的资源,我可以了解到并非xml解析器和开发领域中提供的其他工具都支持所有xml实体。

例如,我知道DataContractSerializer无法处理xml属性。

好吧,浏览网页我可以理解它不仅是属性,而且今天可用的工具不支持xml中的所有实体,实际上是微软或Xsd.exe之类的工具,如DataContractSerializer总是使用,逐字:

生成xml架构
  

支持最多的子集   xml架构标准中的元素   说明书

1)好吧,我的问题是:这个信息是真的吗? 2)现有的开发工具是否支持xsd中的许多元素? 3)如果是,那么今天所有工具都支持的xsd元素的最小子集是什么?

三江源

1 个答案:

答案 0 :(得分:2)

我知道一些工具只支持一小部分XSD,但补救措施是避免使用这些工具(就像大多数其他人一样)。所以你的问题没有真正的答案。大多数主流的XSD验证器(与数据绑定工具不同)支持规范中的所有内容(边缘情况除外):但它们在边缘情况的基础上有所不同。例如,Altova没有强制实施Unique Particle Attribution约束;微软(我相信)支持他们自己的正则表达方言而不是W3C规范中定义的方言。

数据绑定工具有点不同,因为它们面临着将XSD构造映射到某些其他类型系统中的东西的挑战,并且取决于其他类型系统是什么,一些构造不容易映射。据我所知,许多数据绑定工具都存在混合内容问题。

我不知道“DataContractSerializer”是什么,但是如果它真的不处理XML属性那么它看起来就像要避免的那样。