Java 如何为两个具有不同输入数据的公共元素设计xsd模式?

Java 如何为两个具有不同输入数据的公共元素设计xsd模式?,java,xml,xsd,Java,Xml,Xsd,我需要一个如何设计xsd模式来表示对象的建议 我有一个这样的接口 public interface Validator{ boolean validate(Q query); } 我有一些实现- public class SimpleValidator implements Validator{ private R param; public boolean validate(Q Query){ //some logic with u

我需要一个如何设计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="simpleValidator" type="simpleValidatorType"  substitutionGroup="validator"/>

<xsd:element name="anotherValidator" type="anotherValidatorType"  substitutionGroup="validator"/>
问题是,我只想使用标记
验证器
。例如,我想要这样的东西-

<validator type="simpleValidator>
     //simpleValidator data
</validator>

<validator type="anotherValidator>
     //anotherValidator data
</validator>

//另一个验证器数据

我认为这可以通过 我还发现了一个答案:可能会有帮助


在我的一个项目中,我与之脱钩,但有不同类型的地址,即shippingAddress、billingAddress。我们使用这种技术来解决我们的问题。

有趣的信息!谢谢我会读一读,试一下,然后给你写信告诉你它对我的作用。哇!它工作得很好!您可能知道一种方法,将属性名“xsi:type”更改为属性“type”?我的模式会很完美如果你知道答案,你可以在这里回答-好的,今晚我会尝试看一下,我的时区是GMT+6,需要赶我的巴士
<validator type="simpleValidator>
     //simpleValidator data
</validator>

<validator type="anotherValidator>
     //anotherValidator data
</validator>