2012-03-08 10 views
1

特定のフィールドに対して制限/列挙を持つXSDファイル(XMLファイルのスキーマレイアウト)があります。例えば。私の属性は「車」と題され、特定の値(「ホンダ」、「フォード」、「GMC」、「トヨタ」など)のみが許可されます。XSD属性の派生制限/列挙

VBA(または他の言語)内のMSXMLおよび/またはDOM XMLモデルを使用して、Honda、Ford、GMC、Toyotaなどの制限を導き出す方法はありますか? XSDの属性/ノード( "Car")?

理想的な終了状態/私の目標は、ノードのxpathの場所が文字列形式(例えば "/ Root/Car")で渡され、文字列配列が返されるXSD/Mapをロードした後に関数を書くことですそのノードの許容フィールド!

洞察または参考になるものはありがとうございます。

ありがとうございました。

答えて

1

「簡単な」解決方法はわかりません。私は、あなたが何を記述しているのか、「手動で」、つまり非常に多くのコードを書いています。

私はこのようなことを見つけることができた唯一のライブラリ:http://xpath-on-schema.sourceforge.net/ですが、Javaベースであり.NETユーザーであるため実際には試しませんでした。

あなたは私の提案はXmlSchemaクラスを使用することです.NETで何か発展OKであれば:

using (FileStream fs = new FileStream(xsdPath, FileMode.Open, FileAccess.Read)) { 
    XmlSchema schema = XmlSchema.Read(fs, null); 
} 

をして、あなたが必要なものすべてにアクセスするには、比較的簡単に使用できるメソッドやクラスがありますスキーマ - 例えば許容値(または他の制限)のリストをFacetsプロパティに含む文字列のような単純型の制限に対応するクラスXmlSchemaSimpleTypeRestrictionがあります。