Я пытаюсь передать своему веб-сервису что-то вроде массива байтового массива (byte [] []), чтобы я создал этот 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 [] []" ... Но когда я вызываю метод из этого веб-сервиса (даже если он не использует этот класс), он падает без предоставления информации ...
Как я могу создать XSD, который получает sbyte [] [] или byte [] [] и работает? Большое спасибо !!