You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by "Sapozhnikov, Michael" <ms...@axsone.com> on 2002/11/11 22:50:22 UTC
Parent/Child relationship in AXIS
Hi,
I have a general question regarding generated XML in case when xsd extension
is used.
I have my types defined as follows:
<element name="Step" type="tns:ScriptFormType" abstract="true"/>
<complexType name="ScriptFormType">
<sequence>
<element name="FUNCTION" type="integer"/>
<element name="SelectedRow" type="nonNegativeInteger"/>
</sequence>
</complexType>
<element name="STEP_KS1" type="tns:ComplistStepKS1"
substitutionGroup="tns:Step"/>
<complexType name="ComplistStepKS1">
<complexContent>
<extension base="tns:ScriptFormType">
<sequence>
<element name="FORM" type="string" />
<element name="FIELDS" type="my_other_type"/>
</sequence>
</extension>
</complexContent>
</complexType>
I am talking not about generated child class, but about actual message on
the wire.
I have the message, captured by tcpmon:
<ns7:Step xsi:type="ns6:ComplistStepKS1"
xmlns:ns6="http://localhost/ctron/exec/schemas/csuvscni/complist"
xmlns:ns7="http://localhost/ctron/exec/schemas/AppGlobals">
<FORM>KS1</FORM>
<FIELDS>
<COMPNUM>999</COMPNUM>
<SRCCODE>AAA</SRCCODE>
</FIELDS>
<ns7:SelectedRow>0</ns7:SelectedRow>
<FUNCTION>32</FUNCTION>
</ns7:Step>
ComplistStepDS1 is the subclass of ScriptFormType, and as I understand
parent class should be initialized first and its fields should appear before
child fields in XML message. So I really expect it to be like this, because
<ns7:Step xsi:type="ns6:ComplistStepKS1"
xmlns:ns6="http://localhost/ctron/exec/schemas/csuvscni/complist"
xmlns:ns7="http://localhost/ctron/exec/schemas/AppGlobals">
<FUNCTION>32</FUNCTION>
<ns7:SelectedRow>0</ns7:SelectedRow>
<FORM>KS1</FORM>
<FIELDS>
<COMPNUM>999</COMPNUM>
<SRCCODE>AAA</SRCCODE>
</FIELDS>
</ns7:Step>
Am I right or wrong? Should Parent/Child relationship be reflected in XML
message itself?
I don't think this message could be validated ( I am not validating it right
now).
Is this expected behavior and does this happen only in AXIS?
Thanks,
Michael