在XML模式中引用C#类型?

时间:2015-06-20 03:06:50

标签: c# xml namespaces xml-namespaces

是否可以在XML Schema文件中引用C#项目中的类型?对于验证和智能,我的意思是......

假设我有以下内容:

namespace Example
{
  class myType
  { int test = 0; }
}

如何在模式文件中引用Example命名空间,以便我可以将myType用作元素类型?

1 个答案:

答案 0 :(得分:1)

不直接。

虽然有两种方法可以做到这一点。

第一种方法是将您的班级标记为Serializable,并使用XmlSerializer将其序列化为XML。与此相关,您还可以使用xsd.exe为您的班级创建架构, 可以用作您(其他)架构中的类型。 XmlSerializer可用于序列化和反序列化该类型。

在一个有点相关的说明中,如果你想要在XML中捕获方法(而不是数据类型或结构),你可以使用C#(或VB)扩展一些XSLT .NET或JavaScript)代码。 MSDN有更多关于如何执行此操作的文档,其基本思想是使用XsltArgumentListAddExtensionObject添加该方法。也可以使用msxsl:script直接在XSLT中执行此操作(有关详细信息,请参阅here)。