2011-06-09 55 views
1

在这些日子里,我不得不开发涉及xml模式定义的应用程序。那么,我使用某些系统和技术,其中大多数是与Microsoft相关的资源,我可以了解到并非所有xml实体都受到xml解析器和开发世界中可用的其他工具的支持。XML模式元素支持的子集:真相还是假的?

例如,我知道DataContractSerializer不能处理xml属性。

好,由微软或使用其DataContractSerializer总是生成XML模式浏览网页,我可以理解,它不仅属性,但今天可用的工具并不支持所有实体的XML里面,其实工具,如Xsd.exe,逐字:

XML模式中最支持 元素标准 规范的子集

1)好了,我的问题是:这些信息是真的吗? 2)xsd中的许多元素是否被当前的开发工具所支持是真的吗? 3)如果是,那么今天所有可用工具支持的xsd元素的最小子集是多少?

三江源

回答

2

我所知道的一些工具仅支持XSD的一小集,但补救措施是避免那些工具(像大多数其他人做的)。所以你的问题没有真正的答案。大多数主流的XSD验证器(与数据绑定工具不同)支持规范中的所有内容,但边缘情况除外:但它们在考虑边缘情况时有所不同。例如,Altova不执行唯一粒子归因约束;微软(我相信)支持他们自己的正则表达方式,而不是W3C规范中定义的方言。

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

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