我有一个xsd文件,用于定义我的服务请求。所以我使用xsd.exe为这个服务生成一个c#类。
这是xsd文件:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="schemaConectividade">
<xs:complexType>
<xs:choice>
<xs:element name="conectividadeParaOperadora" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="cabecalhoTransacao" type="ct_cabecalhoTransacao"/>
<xs:element name="dadosSolicitacao">
<xs:complexType>
<xs:sequence>
<xs:element name="atendimentoRN" type="xs:string"/>
<xs:element name="beneficiario">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="executante" type="xs:long"/>
<xs:element name="solicitante" type="xs:long"/>
<xs:element name="profissionalSolicitante" type="ct_profissionalSolicitante"/>
<xs:element name="caraterAtendimento" type="xs:int"/>
<xs:element name="procedimentosSolicitados">
<xs:complexType>
<xs:sequence>
<xs:element name="procedimento" type="ct_procedimento" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="operadoraParaConectividade" minOccurs="0">
<xs:complexType>
<xs:choice>
<xs:element name="retornoSchema" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="descricaoSchemaErro" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="retornoNegocio" type="ct_retornoNegocio" minOccurs="0"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:complexType name="ct_dadosTransacao">
<xs:sequence>
<xs:element name="horaTransacao" type="xs:time"/>
<xs:element name="dataTransacao" type="xs:date"/>
<xs:element name="numeroTransacao" type="xs:long"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ct_retornoNegocio">
<xs:sequence>
<xs:element name="statusRetorno">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="dadosTransacao" type="ct_dadosTransacao"/>
<xs:element name="transacaoErro" type="ct_transacaoErro" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ct_transacaoErro">
<xs:sequence>
<xs:element name="descricaoErro" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ct_cabecalhoTransacao">
<xs:sequence>
<xs:element name="numeroTransacao" type="xs:long"/>
<xs:element name="numeroAtendimento" type="xs:long"/>
<xs:element name="dataTransacao" type="xs:date"/>
<xs:element name="horaTransacao" type="xs:time"/>
<xs:element name="tipoTransacao" type="xs:integer"/>
<xs:element name="terminal" type="xs:long" minOccurs="0"/>
<xs:element name="tipoTerminal" type="xs:string" minOccurs="0"/>
<xs:element name="fonteDadosBeneficiario" type="xs:string" minOccurs="0"/>
<xs:element name="fonteDadosPrestador" type="xs:string" minOccurs="0"/>
<xs:element name="centralAtendimento" type="xs:long" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ct_profissionalSolicitante">
<xs:sequence>
<xs:element name="nomeProfissional" type="xs:string"/>
<xs:element name="conselhoProfissional" type="xs:string"/>
<xs:element name="numeroConselhoProfissional" type="xs:int"/>
<xs:element name="UF" type="xs:string"/>
<xs:element name="CBOS" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ct_procedimento">
<xs:sequence>
<xs:element name="sequencialProcedimento" type="xs:integer"/>
<xs:element name="dataAtendimento" type="xs:date"/>
<xs:element name="quantidade" type="xs:integer"/>
<xs:element name="procedimento" type="xs:string"/>
<xs:element name="situacaoTransacao" type="xs:string"/>
<xs:element name="mensagem" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
这是生成的界面:
using System.ServiceModel;
namespace MyNamespace
{
[ServiceContract(SessionMode = SessionMode.Allowed)]
public interface IOrizon
{
[System.ServiceModel.OperationContract]
[System.ServiceModel.XmlSerializerFormatAttribute()]
ResponseType TransacaoAex_Operation(RequestType conectividadeParaOperadora);
}
}
使用SoapUI测试此服务时,它会生成一个“TransacaoAex_Operation”标记,该标记不在我的xsd文件中:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<TransacaoAex_Operation>
<conectividadeParaOperadora>
...
有办法避免这种情况吗?