我知道这个板上有几个关于 .xsd 方案创建的答案,但我发现没有什么真正适合我正在尝试做的事情。
我有一个非常简单的 XML 文件,其中包含嵌套元素等(但没有命名空间或 dtd),我正在尝试从中生成一个 XSD 文件。我反映了 Microsoft 的代码XSD.exe
(在 XSD 生成方面经常被提及),并看到方案生成是通过使用XmlSchemaInference
类(InferScheme()
方法)完成的。
现在,我的 XML 文件已经使用-namespace加载XDocument.Load()
了。LINQ
但是当我查看时XmlSchemaInference
,我发现这只需要一个XmlTextReader
作为 xml 文档参数。
我是否正确地加载了我的 XML 文件以与 LINQ 一起使用XDocument
,然后再次加载它XmlTextReader
以创建 XSD?还是XDocument
提供类似的方法,因为它包含扩展方法.Validate()
?
我对 XML 感到很困惑,因为 .net 似乎提供了数百个类,但没有一个类能够提供完整的功能。:/
简而言之,我想做的是:
XDocument
使用(LINQ)加载 XML 文件- 使用XDocument中的本机框架/
XmlSchemeSet
方法(无内容)创建 XSD 方案xsd.exe
- 使用新的 XDocument 对象,保存使用
XDocument.Save()
看来我必须做的:
- 使用加载 XML 文件
XDocument
- 使用再次加载 XML 文件
XmlTextReader
- 传给
XmlTextReader
_XmlSchemaInference
- 传
XmlTextWriter
新到XmlSchemaInference
- 使用保存文档
XmlTextWriter
……很可笑,嗯?