簡體   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