Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8977307
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 15, 20262026-06-15T19:20:27+00:00 2026-06-15T19:20:27+00:00

Let’s say we have a Web Service that use WSDL complex type extensions. Consider

  • 0

Let’s say we have a Web Service that use WSDL complex type extensions. Consider the (valid WSDL) example below where Vechicle is abstract. Two types, Car and Bike, inherit from it:

<xs:complexType name="Vehicle" abstract="true">
  <xs:sequence>
    <xs:element name="common1" type="xs:string" minOccurs="0"/>
    <xs:element name="common2" type="xs:string" minOccurs="0"/>
  </xs:sequence>
</xs:complexType>
<xs:complexType name="Car">
  <xs:complexContent>
    <xs:extension base="tns:Vehicle">
      <xs:sequence>
        <xs:element name="carValue1" type="xs:string" minOccurs="0"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
<xs:complexType name="Bike">
  <xs:complexContent>
    <xs:extension base="tns:Vehicle">
      <xs:sequence>
        <xs:element name="bikeValue1" type="xs:string" minOccurs="0"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

and a type Transport that uses the Vehicle type as one its elements:

<xs:complexType name="Transport">
  <xs:sequence>
      <xs:choice>
        <xs:element ref="tns:Car"/>
        <xs:element ref="tns:Bike"/>
      </xs:choice>
    <xs:element name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>

Note that Vehicle is not itself a possible type inside Transport and that’s of course because Vehicle is abstract. Pretty easy to generate the above in Java Metro stack. Blaise Doughan’s blogs gave me some valuable input here.

My question is how this will work in terms of web service interoperability, in particular in relation to WS-I Basic Profile. Can I be sure that WS-I compliant web service frameworks will be able to consume such web service?. I understand that WS-I basically only specifies a subset of what is allowed in WSDL as such. I’ve tried reading the WS-I specs to understand this issue but had no real luck. The language is simply too tough for me. I’ve found an article from 2004 which raises some concerns :

The basic reason for this concern is that the use of the extension
mechanism for value object inheritance is outside of the WS-I basic
profile, although not specifically excluded by it. Currently, there is
no mention of using the extension construct in the WS-I basic profile
and, additionally, the WS-I compliance test suite does not cover this
case.

…but that was in 2004 and clearly relate to WS-I Basic Profile v1.0. Since then WS-I Basic profile 1.1, 1.2 and 2.0 specs have been released.

So the question is : Will web services that use the WSDL value type extension feature (i.e <xs:complexType name="xxx" abstract="true"> and <xs:extension base="xxx">) work in all frameworks that claim to be WS-I Basic Profile compliant? Can they consume such web service?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-15T19:20:28+00:00Added an answer on June 15, 2026 at 7:20 pm

    WS-I Basic Profile says the following about the xml:

    The Profile uses Web Services Description Language (WSDL) to enable the description of services as sets of endpoints operating on messages. This section of the Profile incorporates the following specifications by reference (…): XML Schema Part 1: Structures

    So it references the XML Schema as something it is based on. In there, you’ll find:

    Abstract complex types can be used as {base type definition}s, or even as the {type definition}s of element declarations, provided in every case a concrete derived type definition is used for ·validation·, either via xsi:type (§2.6.1) or the operation of a substitution group.

    Furthermore, it defines the construction <extension base="QName"> about which the document has a lot to say.

    But all this is on a conceptual level, not necessarily directly relating it to object inheritance. While it’s probably not too difficult to make such a mapping (and your link exactly show that), it is also not strictly defined. I guess that’s what they talk about when raising the concerns.

    So technically and syntactically, the construction is part of the standard, but the implementation might handle it in unforeseen ways. On the other hand, a tool adhering the standard, should be able to both accept and output valid WS-I XML, and perform validation as also specified in the XML standard.

    To conclude, I’d say that any tool not able to handle your construction somehow, is not a valid WS-I implementation.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Let me explain best with an example. Say you have node class that can
Let's say that I have a SQLite database that I create in a separate
Let's say I have multiple requirements for a password. The first is that the
Let's say that I have a date in R and it's formatted as follows.
Let's say that we have an ARGB color: Color argb = Color.FromARGB(127, 69, 12,
Let's say you have a method that expects a numerical value as an argument.
Let's say I have a bunch of links that share a click event: <a
Let's say I have the following text: (example) <table> <tr> <td> <span>col1</span> </td> <td>col2</td>
Let's say that I have a html form (actually I have an editor -
Let's say that I have a binary that I am building, and I include

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.