.xsd スキームの作成に関して、このボードにいくつかの回答があることは知っていますが、私がやろうとしていることに本当に合うものは何も見つかりませんでした。
ネストされた要素などを含む非常に単純な XML ファイル (名前空間や dtd はありません) があり、そこから XSD ファイルを生成しようとしています。Microsoft のコード (XSD 生成に関しては非常に頻繁に取り上げられています) を反映し、クラス (メソッド)XSD.exe
を使用してスキーム生成が行われていることを確認しました。XmlSchemaInference
InferScheme()
これで、XML ファイルは名前空間の from を使用XDocument.Load()
して既に読み込まれていますLINQ
。しかし、 を見るとXmlSchemaInference
、これは のみをXmlTextReader
xml ドキュメントの引数として取ることがわかります。
LINQ で使用するために XML ファイルをXDocument
ロードしてから、もう一度ロードしXmlTextReader
て XSD を作成する必要があるということは正しいですか? またはXDocument
、拡張メソッドが含まれているため、同様のメソッドを提供します.Validate()
か?
.net は何百ものクラスを提供しているように見えますが、完全な機能を提供できるクラスはありません。:/
要するに私がやろうとしていること:
XDocument
(LINQ)を使用して XML ファイルを読み込む- XDocument からネイティブ フレームワーク/
XmlSchemeSet
メソッド (何もない)を使用して XSD スキームを作成するxsd.exe
- 新しい XDocument オブジェクトで、次を使用して保存
XDocument.Save()
私がしなければならないと思われること:
- を使用して XML ファイルを読み込みます
XDocument
- を使用して XML ファイルを再度ロードします。
XmlTextReader
- 渡す
XmlTextReader
_XmlSchemaInference
XmlTextWriter
新しいものを渡すXmlSchemaInference
- を使用して文書を保存
XmlTextWriter
...かなりばかげていますよね?