オブジェクトを表現するためにxsd スキーマを設計する方法についてアドバイスが必要です。
私はそのようなインターフェースを持っています
public interface Validator{
boolean validate(Q query);
}
そして、私はいくつかの実装を持っています -
public class SimpleValidator implements Validator{
private R param;
public boolean validate(Q Query){
//some logic with using param
}
public void setParam(R param){
this.param = param;
}
}
public class AnotherValidator implements Validator{
private Data data1;
private Data data1;
public boolean validate(Q Query){
//some logic with using data1 and data2
}
public void setData1(Data data1){
this.data1 = data1;
}
public void setData2(Data data2){
this.data2 = data2;
}
}
私はそのような決定を持っています -
ルート要素を作成します-<xsd:element name="validator" type="validatorType"/>
そしてそのような要素 -
<xsd:element name="simpleValidator" type="simpleValidatorType" substitutionGroup="validator"/>
<xsd:element name="anotherValidator" type="anotherValidatorType" substitutionGroup="validator"/>
が必要な場所でタグsimpleValidator
とを使用できるようになりました。例 -anotherValidator
validator
<anotherValidator>
<data1 value="value1"/>
<data2 value="value2"/>
</anotherValidator>
問題は、 tag のみを使用したいということですvalidator
。例として、私はこのようなものが欲しい -
<validator type="simpleValidator>
//simpleValidator data
</validator>
<validator type="anotherValidator>
//anotherValidator data
</validator>