我知道这个板上有几个关于 .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
……很可笑,嗯?