c# - 如何在 C# 中动态创建 XML 架构?

标签 c# xml xsd linq-to-xml

我尝试使用传统的 XElement 和 XAttribute 类从 C# 动态创建 XML 架构 (XSD),但使用冒号指定任何名称都是无效的。也就是说,我无法使用代码创建元素

... = new XElement("xs:element");

因为“:”是不允许的。

那么在 C# 中动态构建架构的正确方法是什么?

最佳答案

要创建架构,您应该使用 XmlSchema 类。下面的链接提供了以编程方式创建的综合示例:

http://msdn.microsoft.com/en-us/library/9ta3w88s.aspx


示例:

static void Main(string[] args)
{
    var schema = new XmlSchema();

    // <xs:element name="myElement" type="xs:string"/>
    var myElement = new XmlSchemaElement();
    schema.Items.Add(myElement);
    elementCat.Name = "myElement";
    elementCat.SchemaTypeName = 
        new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");

    // writing it out to any stream
    var nsmgr = new XmlNamespaceManager(new NameTable());
    nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
    schema.Write(Console.Out, nsmgr);

    Console.ReadLine();
}

关于c# - 如何在 C# 中动态创建 XML 架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5473975/

相关文章:

java - 如何将多个 XSD 文件合并为一个 XSD 文件?

c# - 如何在asp.net 网站中选择相对于root 的文件夹?

c# - 在对象中使用 BackgroundWorker 并更新 UI

c# - Linq 性能解析 XML 文件

xml - 使用 ANT 替换整个 XML 标签

java - XJC 不在 xs :union 内生成枚举

c# - 如何在 WPF Canvas 上绘制矩形

c# - "using"类型别名指令在同一个命名空间中不起作用

xml - 理解 XML 解析器的定义

.net - 如何修复 Visual Studio 生成的用于处理锯齿状数组的 Web 引用代理?