私たちはMS XML 4で一連のシリアライズを行っています。C++ enumをシリアル化するときには、表を使用して各可能な値を文字列に変換し、その文字列を属性値として格納します。デシリアライズすると、その属性値が読み取られ、テーブルのすべての項目と比較され、対応する列挙型の値が取得されます。見つけられなかった場合は、エラーが発生します。xs:choiceはC++列挙型と同等ですか?
外部プログラムによるXMLの作成を容易にするために、関心のあるすべてのデータ型に対してXMLスキーマを公開しました。列挙型の属性は次のように定義されます。
<xs:complexType>
//other fields here
<xs:attribute name="Color" type="xs:string"></xs:attribute>
</xs:complexType>
これは機能しますが、可能な文字列値の定義はありません。可能な値をこの定義にどのように追加できますか? xs:choiceを使うのですか?
実際には(私はあなたに同意しますが)彼らは本質的に同じことを成し遂げませんか? –