我是wsdl / xsd的初学者,试图使用以下两个来生成Java类 文件
我从wsdl2java收到一些错误,包括wsdl文件没有定义服务,并且找不到xsd文件中的元素。
有谁知道问题可能是什么?
ChipDataJob.xsd
@Override
public void onChannelOpened(Channel channel) {
if (channel.getPath()
.equals(Constants.COPY_FILE_VIA_CHANNEL_PATH)) {
new SaveDataFromChannelTask(channel).execute();
}
}
protected class SaveDataFromChannelTask extends AsyncTask<Void, Void, Void> {
private final Channel channel;
public SaveDataFromChannelTask(Channel channel) {
this.channel = channel;
}
@Override
protected Void doInBackground(Void... params) {
Channel.GetInputStreamResult getInputStreamResult = channel.getInputStream(googleApiClient)
.await();
InputStream inputStream = getInputStreamResult.getInputStream();
saveFileToDisk(inputStream);
return null;
}
}
DataChipper.wsdl
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://contmgmt.ecm.omega/WorkspaceManager/ChipDataJob"
targetNamespace="http://contmgmt.ecm.omega/WorkspaceManager/ChipDataJob"
elementFormDefault="qualified" attributeFormDefault="qualified">
<xs:element name="dataChipperJob" type="tns:ChipJob"></xs:element>
<xs:element name="dataChipperResponse" type="xs:long"></xs:element>
<xs:element name="cancelResponse" type="xs:boolean"></xs:element>
<xs:complexType name="ChipJob">
<xs:sequence>
<xs:element name="outputFilename" type="xs:string">
</xs:element>
<xs:element name="uuidDataObjects">
<xs:simpleType>
<xs:list itemType="xs:string" />
</xs:simpleType>
</xs:element>
<xs:element name="parameters" type="tns:ChipParameters"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ChipParameters">
<xs:all>
<xs:element name="chipStartTime" type="xs:double">
</xs:element>
<xs:element name="chipEndTime" type="xs:double">
</xs:element>
<xs:element name="fillDuration" type="xs:float">
</xs:element>
<xs:element name="GapFillMethod">
<xs:simpleType final="restriction">
<xs:restriction base="xs:string">
<xs:enumeration value="NONE" />
<xs:enumeration value="ZERO_FILL" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="StitchMarkerFormat">
<xs:simpleType final="restriction">
<xs:restriction base="xs:string">
<xs:enumeration value="NONE" />
<xs:enumeration value="FILL" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SequenceMethod">
<xs:simpleType final="restriction">
<xs:restriction base="xs:string">
<xs:enumeration value="TIMECODE" />
<xs:enumeration value="MANUAL" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:schema>
答案 0 :(得分:1)
以下是我发现wsdl出错的原因。
<wsdl:message name="dataChipperJob">
<wsdl:part name="job" element="tns:ChipJob" />
</wsdl:message>
<wsdl:message name="dataChipperResponse">
<wsdl:part name="taskId" element="xs:long" />
</wsdl:message>
<wsdl:message name="cancelResponse">
<wsdl:part name="cancelSuccess" element="xs:boolean" />
</wsdl:message>
元素标签引用元素类型而不是元素本身 这些应改为
<wsdl:message name="dataChipperJob">
<wsdl:part name="job" element="tns:dataChipperJob" />
</wsdl:message>
<wsdl:message name="dataChipperResponse">
<wsdl:part name="taskId" element="tns:dataChipperResponse" />
</wsdl:message>
<wsdl:message name="cancelResponse">
<wsdl:part name="cancelSuccess" element="tns:cancelResponse" />
</wsdl:message>
wsdl也应该定义绑定和服务。