有没有办法从DataContract导出XSD架构

Eri*_*tas 9 .net c# schema xsd datacontract

我正在使用DataContractSerializer将我的类序列化/反序列化为XML.一切正常,但在某些时候,我想为这些XML文件的格式建立一个独立于实际代码的标准模式.这样,如果在序列化过程中出现问题,我总是可以返回并检查标准模式应该是什么.或者,如果我确实需要修改模式,则修改是一个明确的决定,而不仅仅是稍后修改我的代码的影响.

此外,其他人可能正在编写其他可能不是基于.NET的软件,需要从这些XML文件中读取.我希望能够为他们提供某种模式的文档.

DataContract和XSD架构之间是否存在某种关系.有没有办法将类中的DataContract属性导出为XSD架构?

Ale*_*gas 7

是的,您可以使用XsdDataContractExporter.

MSDN文章从类中导出架构中提供了一个示例.


And*_*ass 5

Svcutil.exe 可以“导出已编译数据协定的元数据”DataContract 和 XSD
之间有关系:

当使用元数据终结点或 ServiceModel 元数据实用工具 (Svcutil.exe) 从 Windows Communication Foundation (WCF) 服务导出元数据时,DataContractSerializer 将 CLR 类型映射到 XSD。有关更多信息,请参阅数据协定序列化程序。

当 Svcutil.exe 用于访问 Web 服务描述语言 (WSDL) 或 XSD 文档并为服务或客户端生成数据协定时,DataContractSerializer 还将 XSD 映射到 CLR 类型。

您可以在运行时得到的XSD(S)为好,即使是在你的浏览器,通过建立一个MEX终结
默认情况下,WSDL 将包含对也可以通过端点访问的 XSD 的引用。