如何在 C# 中动态创建 XML 架构?
我尝试使用传统的 XElement 和 XAttribute 类从 C# 动态创建 XML 架构 (XSD),但使用冒号指定任何名称都是无效的。也就是说,我无法创建元素
... = new XElement("xs:element");
是因为不允许使用“:”。
那么在 C# 中动态构建模式的正确方法是什么?
I try to dynamically create an XML schema (XSD) from C#, using the conventional XElement and XAttribute classes, but it is not valid to specify any names with colons. That is, I cannot create the element <xs:element> using the code
... = new XElement("xs:element");
because ":" is not allowed.
What is the correct way of dynamically building a schema in C# then?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
要创建架构,您应该使用 XmlSchema 类。下面的链接提供了以编程方式创建的综合示例:
http://msdn.microsoft.com/en-us/library/9ta3w88s.aspx
例子:
To create schemas, you should be using the XmlSchema class. The link below provides a comprehensive example of creating one programmatically:
http://msdn.microsoft.com/en-us/library/9ta3w88s.aspx
Example:
创建新的 XML 元素时,您应该注意冒号之前的部分(在本例中为
xs
)实际上是 XML 命名空间的别名(在 XSD 的情况下为xs
通常指的是http://www.w3.org/2001/XMLSchema
)。因此,要继续使用 XDocument 构建 XSD,您需要使用:请参阅此处的示例:
http://msdn.microsoft.com/en-us/library/bb292758.aspx
When creating new XML elements, you should be aware that the part before the colon (in this case,
xs
) is actually an alias for the XML namespace (in the case of an XSD,xs
usually refers tohttp://www.w3.org/2001/XMLSchema
). So, to continue using XDocument to build your XSD, you would want to use:See the example here:
http://msdn.microsoft.com/en-us/library/bb292758.aspx
我写了一个关于该主题的博客。您可以使用 DataTable 来保存架构。
I wrote a blog about that very subject. You can use a DataTable to save a schema.
如果你想创建xml,你应该使用XmlWriter类
If you want to create xml, you should use XmlWriter class