Hi,
This is my first ground-up web service using the Axis 1.1 Release. The
service has 2 operations:
1. getContract - returns contract information
2. getNavigation - returns a NavigationElement which will contain an
unlimited amount of NavigationElements (to be openned in a TreeView
control).
I ran WSDL2Java against the attached WSDL and have discovered:
1. Many of the generated classes have a prefix of "_" or "__"
2. Some of the request (GetContract, GetNavigation) and domain
(Contract) classes are not generated at all.
Here is the system.out of the classes that are generated from WSDL2Java:
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\domain\holders\NavigationElementArrayHolder.java
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\request\_GetContractType_DerivedFinancialType.java
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\domain\_NavigationElement.java
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\domain\___Contract_FinancialSummary_ContractorType.java
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\domain\_ContractMod.java
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\domain\holders\ContractFinancialSummaryArrayHolder.java
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\domain\_TTOModNTEAdj.java
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\domain\__Contract_FinancialSummary.java
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\domain\holders\__Contract_FinancialSummaryHolder.java
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\domain\___Contract_FinancialSummary_Type.java
ContractManagementServiceSOAPBindingImpl.java already exists, WSDL2Java
will not overwrite it.
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\service\ContractManagementServicePortType.java
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\service\ContractManagementServiceSOAPBindingStub.java
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\service\ContractManagementService.java
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\service\ContractManagementServiceLocator.java
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\service\ContractManagementServiceTestCase.java
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\service\deploy.wsdd
Generating
E:\webservices\samples-axis\WEB-INF\src\com\bah\contractmgmt\service\undeploy.wsdd
Notice how GetContractType, GetNavigationType, ContractType classes are
not generated?
Is there a way that Axis prefers the schema to be so that there are no
underscores and ALL of the domain objects are generated?
I've attached the WSDL and schema (validated in XMLSpy). Please take a
quick look at these files and let me know if I've missed something.
Thank you,
Ann
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Keast (Booz Allen & Hamilton) -->
<schema targetNamespace="urn:bah:contract:0.1:types:request" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:imsreq="urn:bah:contract:0.1:types:request" elementFormDefault="unqualified" attributeFormDefault="unqualified" version="2.0">
<import namespace="urn:bah:contract:0.1:types:contract" schemaLocation="ims_contract.xsd"/>
<element name="GetContract" type="imsreq:GetContractType"/>
<complexType name="GetContractType">
<sequence>
<element name="ContractID" type="positiveInteger"/>
<element name="DerivedFinancialType" minOccurs="0">
<simpleType>
<restriction base="string">
<enumeration value="FinancialSummary"/>
<enumeration value="SmallBusinessCompliance"/>
<enumeration value="JamisSummary"/>
</restriction>
</simpleType>
</element>
<element name="IncludeContractHeaderDetail" type="boolean"/>
</sequence>
</complexType>
<element name="GetNavigation" type="imsreq:GetNavigationType"/>
<complexType name="GetNavigationType">
<sequence>
<element name="ContractID" type="positiveInteger"/>
</sequence>
</complexType>
</schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Keast (Booz Allen & Hamilton) -->
<schema targetNamespace="urn:bah:contract:0.1:types:contract" xmlns:imscontract="urn:bah:contract:0.1:types:contract" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified" version="2.0">
<element name="Contract" type="imscontract:ContractType"/>
<complexType name="ContractType">
<sequence>
<element name="ID" type="long"/>
<element name="ContractName" type="string"/>
<element name="Description" type="string"/>
<element name="Notes" type="string"/>
<element name="ProgramManager" type="string"/>
<element name="ContractOfficer" type="string"/>
<element name="ActiveContractModTitle" type="string"/>
<element name="ActiveContractModExecutionDate" type="date"/>
<element name="JamisID" type="string"/>
<element name="PassThruBurden" type="double"/>
<element name="ManagementReserve" type="double"/>
<element name="SBCPercentThreshold" type="double"/>
<element name="CheckedOut" type="boolean"/>
<element name="Locked" type="long"/>
<element name="LockedBy" type="string"/>
<element name="LockedAt" type="date"/>
<element name="FinancialSummary" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="ContractorType">
<simpleType>
<restriction base="string">
<enumeration value="Prime"/>
<enumeration value="Sub"/>
</restriction>
</simpleType>
</element>
<element name="DetailRecordName" type="string"/>
<element name="SignedAmount" type="decimal"/>
<element name="TotalSpentAmount" type="decimal"/>
<element name="RemainAmount" type="decimal"/>
<element name="RSRVSignAmount" type="decimal"/>
<element name="RSRVRemAmount" type="decimal"/>
<element name="CostToCompleteAmount" type="decimal"/>
<element name="Type">
<simpleType>
<restriction base="string">
<enumeration value="NTE"/>
<enumeration value="LCAT"/>
</restriction>
</simpleType>
</element>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
<element name="ContractMod" type="imscontract:ContractModType"/>
<complexType name="ContractModType">
<sequence>
<element name="ID" type="long"/>
<element name="ContractID" type="string"/>
<element name="Description" type="string"/>
<element name="Notes" type="string"/>
<element name="IsFinancial" type="boolean"/>
<element name="ActivationDate" type="date"/>
<element name="CheckedOut" type="boolean"/>
<element name="Locked" type="long"/>
<element name="LockedBy" type="string"/>
<element name="LockedAt" type="date"/>
</sequence>
</complexType>
<element name="TTOModNTEAdj" type="imscontract:TTOModNTEAdjType"/>
<complexType name="TTOModNTEAdjType">
<sequence>
<element name="ID" type="long"/>
<element name="TTOModID" type="long"/>
<element name="NTEID" type="long"/>
<element name="FromAmount" type="decimal"/>
<element name="ToAmount" type="decimal"/>
<element name="CheckedOut" type="boolean"/>
<element name="Locked" type="long"/>
<element name="LockedBy" type="string"/>
<element name="LockedAt" type="date"/>
</sequence>
</complexType>
</schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Keast (Booz Allen & Hamilton) -->
<schema targetNamespace="urn:bah:contract:0.1:types:navigation" xmlns:imsnavigation="urn:bah:contract:0.1:types:navigation" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified" version="2.0">
<element name="NavigationElement" type="imsnavigation:NavigationElementType"/>
<complexType name="NavigationElementType" mixed="true">
<sequence minOccurs="0" maxOccurs="unbounded">
<element name="Name" type="string"/>
<element name="Key" type="string"/>
<element ref="imsnavigation:NavigationElement" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
</schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Keast (Booz Allen & Hamilton) -->
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:imscontract="urn:bah:contract:0.1:types:contract" xmlns:imsnavigation="urn:bah:contract:0.1:types:navigation" xmlns:imsrequest="urn:bah:contract:0.1:types:request" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:bah:contract:0.1:service:ContractManagementService" targetNamespace="urn:bah:contract:0.1:service:ContractManagementService">
<types>
<xs:schema>
<xs:import namespace="urn:bah:contract:0.1:types:contract" schemaLocation="ims_contract.xsd"/>
<xs:import namespace="urn:bah:contract:0.1:types:navigation" schemaLocation="ims_navigation.xsd"/>
<xs:import namespace="urn:bah:contract:0.1:types:request" schemaLocation="ims_request.xsd"/>
</xs:schema>
</types>
<message name="GetContractRequest">
<part name="Request" element="imsrequest:GetContract"/>
</message>
<message name="GetContractResponse">
<part name="Response" element="imscontract:Contract"/>
</message>
<message name="GetNavigationRequest">
<part name="Request" element="imsrequest:GetNavigation"/>
</message>
<message name="GetNavigationResponse">
<part name="Response" element="imsnavigation:NavigationElement"/>
</message>
<portType name="ContractManagementServicePortType">
<operation name="GetContract">
<input message="tns:GetContractRequest"/>
<output message="tns:GetContractResponse"/>
</operation>
<operation name="GetNavigation">
<input message="tns:GetNavigationRequest"/>
<output message="tns:GetNavigationResponse"/>
</operation>
</portType>
<binding name="ContractManagementServiceSOAPBinding" type="tns:ContractManagementServicePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetContract">
<soap:operation soapAction="getContract"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="GetNavigation">
<soap:operation soapAction="getNavigation"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="ContractManagementService">
<port name="ContractManagementService" binding="tns:ContractManagementServiceSOAPBinding">
<soap:address location="https://webservices.bahhaws.us/ContractManagementService"/>
</port>
</service>
</definitions>