(WCF)elementFormDefault ="合格"和attributeFormDefault ="合格"可能

时间:2018-04-04 17:34:38

标签: c# wcf xsd datacontract messagecontract

情况:我需要构建一个基于XSD的Web服务。

当XSD说:

时,可以创建WCF Web服务
elementFormDefault="qualified" attributeFormDefault="qualified"

OR

elementFormDefault="unqualified" attributeFormDefault="unqualified"

我在Stackoverflow或Google上找不到任何明确的答案。这些是其中之一还是两者兼而有之?

如果可能,它是否可以与MessageContracts和DataContracts组合?

基于Microsoft看起来不可能:

  

attributeFormDefault忽略。

     

elementFormDefault必须是合格的。所有元素都必须合格   对于DataContractSerializer支持的模式。这可以   通过将xs:schema / @ elementFormDefault设置为来完成   "合格"或者通过将xs:element / @ form设置为" qualified"在每一个上   个别元素声明。

我还发现this并不喜欢它:

  

一般情况下,由于单个文档中混合使用全局元素和本地元素可能会产生混淆和奇怪的语法,以及默认命名空间可能出现的问题,因此建议坚持使用elementFormDefault =“合格”。它可能更冗长,但是哪个命名空间/模式拥有给定元素也更清楚。如果XML文档作者想要减少前缀的数量,他们总是可以依赖“默认命名空间”。此外,由于使用默认命名空间时可能存在冲突,因此attributeFormDefault应该是不合格的。

0 个答案:

没有答案