我在WSDL4J,JDOM和Castor库的帮助下解析了wsdl文件。现在,我可以获得复杂的类型,但仍然无法访问其序列中的元素。
<xs:element name="AddInstanceGroupsResult">
<xs:complexType>
<xs:annotation>
<xs:documentation><![CDATA[
<p>Output from an AddInstanceGroups call.</p>
]]></xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="JobFlowId" type="tns:XmlStringMaxLen256" minOccurs="0">
<xs:annotation>
<xs:documentation><![CDATA[
<p>The job flow ID in which the instance groups are added.</p>
]]></xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InstanceGroupIds" type="tns:InstanceGroupIdsList" minOccurs="0">
<xs:annotation>
<xs:documentation><![CDATA[
<p>Instance group IDs of the newly created instance groups.</p>
]]></xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
例如,我可以将AddInstanceGroupsResult作为复杂类型到达,但我无法获取其中的基本元素(JobFlowId和InstanceGroupIds)..
case Structure.MODELGROUP:
Group modelGroup = (Group)ct;
ContentModelGroup contentModel = modelGroup.getContentModelGroup();
int count = contentModel.getParticleCount();
for (int n=0; n< count; n++){
ElementDecl elementDecl2 = (ElementDecl)contentModel.getParticle(n);
result.add(elementDecl2.getName());
resultLong.add(parseParameterName(elementDecl2.getName()));
resultType.add(elementDecl2.getType().getName());
}
有什么建议吗?感谢..
答案 0 :(得分:0)
您需要执行以下操作:
Sequence seq = ct.getSequence();
然后,一旦你完成了,你可以像复杂类型本身中的元素那样获得该序列中的元素,即
for(Element el : seq.getElements())
{
//do stuff
}