我正在尝试将类似于字节数组(byte [] [])的数据传递给我的Web服务来创建此xsd文件:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="FileResponse"
targetNamespace="http://tempuri.org/FileResponse.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/FileResponse.xsd"
xmlns:mstns="http://tempuri.org/FileResponse.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:complexType name="FileResponse">
<xs:sequence>
<xs:element name="SPResultItem" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="file" type="xs:unsignedByte" minOccurs="0" maxOccurs="unbounded"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Message" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="FileResponse" type="FileResponse"/>
</xs:schema>
XSD工具生成:
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/FileResponse.xsd")]
[System.Xml.Serialization.XmlRootAttribute(Namespace="http://tempuri.org/FileResponse.xsd", IsNullable=false)]
public partial class FileResponse {
private FileResponseSPResultStatus sPResultStatusField;
private sbyte[][] sPResultItemField;
private string messageField;
/// <remarks/>
public FileResponseSPResultStatus SPResultStatus {
get {
return this.sPResultStatusField;
}
set {
this.sPResultStatusField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute("file", typeof(sbyte), IsNullable=false)]
public sbyte[][] SPResultItem {
get {
return this.sPResultItemField;
}
set {
this.sPResultItemField = value;
}
}
/// <remarks/>
public string Message {
get {
return this.messageField;
}
set {
this.messageField = value;
}
}
}
正如你所看到的,转换似乎很好:xsd包含一个“sbyte [] []”字段......但是当我从这个webservice调用一个方法时(即使它不使用这个类)它崩溃了没有给信息...
如何创建一个接收sbyte [] []或byte [] []的XSD并且有效?非常感谢!!
答案 0 :(得分:0)
我这样解决了:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="FileResponse"
targetNamespace="http://tempuri.org/FileResponse.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/FileResponse.xsd"
xmlns:mstns="http://tempuri.org/FileResponse.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:complexType name="FileResponse">
<xs:sequence>
<xs:element name="SPResultItem" type="fileList" maxOccurs="unbounded"> </xs:element>
<xs:element name="Message" type="xs:string"></xs:element>
</xs:sequence>
<xs:complexType name ="fileList">
<xs:sequence>
<xs:element name="file" type="xs:base64Binary" ></xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="FileResponse" type="FileResponse"/>