これらの xsd パーツ (xsd1 または xsd2) のうち、以下のサンプル コードに有効なものを教えてください。
Class definitions:
class A
{
int prop1;
int prop2;
}
class B : A {}
したがって、クラス A は基本クラスであり、クラス B は A を継承し、追加のプロパティはありません。
xsd1: この場合、wsimport を使用して xsd のこの部分を含む wsdl ファイルからコードを生成すると、A と B のすべての要素のコードが生成されます。ただし、svcutil を使用すると、クラス A のみが生成されます。
<xs:element name="B" nillable="true" type="tns:A" />
<xs:complexType name="A">
<xs:sequence>
<xs:element name="prop1" type="xs:string"/>
<xs:element name="prop2" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="A" nillable="true" type="tns:A" />
xsd1: この場合、wsimport と svcutil の両方が A と B のすべての要素を生成します。
<xs:complexType name="B">
<xs:complexContent mixed="false">
<xs:extension base="tns:A">
<xs:sequence />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="B" nillable="true" type="tns:A" />
<xs:complexType name="A">
<xs:sequence>
<xs:element name="prop1" type="xs:string"/>
<xs:element name="prop2" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="A" nillable="true" type="tns:A" />
それで、私の質問は...この最初の定義は有効ですか?