类似于Java中的通用类型xsd

问题描述 投票:0回答:1

问题:在xsd对象定义中可能具有与Java泛型相同的行为?

所以,基本上我需要的是Soap方法,以将xml对象类型返回为返回对象(子对象之一)的具体类型,而不是父对象(基本类型)。基本上,wsdl表示返回的对象是父对象或子对象之一。

更多具体:

Java:

  public <T extends BaseObject> T getData(){
    ....
    return oneOfTheChildObjectsOfBaseObject;
   }

xsd:

           <xs:complexType name="baseObject">
             <xs:complexContent>
               <xs:sequence>
                 <xs:element name="element1" type="xs:string"/>
                </xs:sequence>
              </xs:complexContent>
            </xs:complexType>


    <xs:complexType name="Child1">
        <xs:complexContent>
         <xs:extension base="tns:baseObject">
                      .... specific child props
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Child2">
        <xs:complexContent>
         <xs:extension base="tns:baseObject">
                   .... specific child props
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
java spring soap xsd spring-ws
1个回答
0
投票

SOAP消息只是一个XML文档,其信封符合SOAP模式,<body>标记符合其中一种操作类型的模式。

在XML中执行所需操作的标准方法是使用xsi:type属性提供元素的具体类型。您指定的must类型是从基本类型派生的,否则XML处理器应报告错误。根据XSD的构造方式,关于允许的类型可能还有其他规则。

为了完整起见,您可能还需要阅读有关取代组的信息-它们为元素而非类型提供了等效的机制。

© www.soinside.com 2019 - 2024. All rights reserved.