繁体   English   中英

泛型类型 xsd 就像在 Java 中一样

[英]generic type xsd like in java

问题:在 xsd 对象定义中是否可以像在 Java 泛型中一样具有相同的行为?

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

更具体的:

爪哇:

  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>

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

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

为了完整起见,您可能还想阅读有关替换组的信息——它们为元素而不是类型提供了等效的机制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM