私は、プロジェクト定義を定義するクライアントをXMLで、プロジェクト定義スキーマに関連付ける(単純に)サプライヤは、データ供給スキーマとクライアント定義のプロジェクト定義とを満たすデータを供給する。スキーマと他のXMLファイルのグループを検証するための標準的な方法
私はこれを慣行/従うべきプロセスを定義することで行うことができますが、私の質問は「おそらくアノテーション/ appinfoを使ってこのタイプのことをする標準的な方法はありますか? (私の周りGoogleで検索してきたし、空が出ている)
私は程度によものの例は、(ほとんどのものは簡潔にするため取り除か)以下である:
簡体クライアントプロジェクトの定義スキーマ
<xs:schema ...>
<xs:element name="ProjectConfiguration">
<xs:complexType>
<xs:sequence>
<xs:element name="Enum" type="EnumType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:complexType name="EnumType">
<xs:sequence>
<xs:element name="Value" type="xs:string" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
</xs:schema>
クライアントプロジェクト定義のXML
<ProjectConfiguration id="myproj">
<Enum name="myenum">
<Value>AllowedValue1</Value>
<Value>AllowedValue2</Value>
</Enum>
</ProjectConfiguration>
簡体サプライヤーデータ供給スキーマ
<xs:schema ...>
<xs:element name="Data">
<xs:complexType>
<xs:attribute name="value" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Here, I want the type to be validated against the list supplied
in the Client Project Definition XML. I know (think) that XSD
won't cut this, but am wondering if there is anything
that will in a standard manner.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>
疑いを避けるために、私は自分のコードベースを完全に制御していますが、外部からの制約はありません。最終的なソリューションは複数の階層/ストック構成(およびこれらのビア構成の継承および修正)を必要とするため、クライアントはすべてのプロジェクトのスキーマを定義する必要はありません。
私がしようとしているものと根本的に異なる別の方法がある場合、私はすべての耳です!
ありがとうございました。それはSchematronの方法が最高かもしれないように聞こえる。よく理解されています - 私は調査し、私のインスタンスで働いていた解決策で答えを出します。 – GHC