【问题标题】:Webservice proxy class generationWeb服务代理类生成
【发布时间】:2026-02-08 01:35:01
【问题描述】:

我包含以下 xsd 文件:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns="http://www.xxxx.com/schemas/2005/06/messages" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.xxxx.com/schemas/2005/06/messages" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:include schemaLocation="xxxxCommonTypes.xsd" />
  <xs:element name="HotelDetailRQ">
    <xs:annotation>
      <xs:documentation>Request data to obtain detailed information for the specified hotel product.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent mixed="false">
        <xs:extension base="CoreRequest">
          <xs:sequence>
            <xs:element name="HotelCode">
              <xs:annotation>
                <xs:documentation>Hotel code to obtain detailed inormation.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:minLength value="1" />
                  <xs:maxLength value="10" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
</xs:schema>

通过;到一个wsdl文件

<wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:tns1="http://axis.frontend.hydra.xxxx.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://www.xxxx.com/wsdl/2005/06" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:intf="http://www.xxxx.com/wsdl/2005/06" targetNamespace="http://www.xxxx.com/wsdl/2005/06" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
          <wsdl:types>    
        <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://axis.frontend.hydra.xxxx.com">
                  <xsd:import schemaLocation="C:\Users\xxxx\HotelDetailRQ.xsd" namespace="http://www.xxxx.com/schemas/2005/06/messages" />
            </xsd:schema>
        </wsdl:types>
    .
    .
    .
</wsdl:definitions>

问题是当我将 wsdl 文件作为 Web 引用添加到 Visual Studio 时,它不会在 reference.cs 文件中生成 HotelDetailRQ 代理类。所以我无法使用生成的 HotelDetailRQ 类。

我没有使用 xsd 文件或 wsdl 文件的经验。你能指出我可能在这里犯错的地方吗?

【问题讨论】:

  • 添加为服务参考没有区别。我可能在这里遗漏了(很多)东西,所以如果您看到遗漏的东西,请告诉我,我会尝试添加它。

标签: c# .net xml web-services xsd


【解决方案1】:

您的架构文件包含另一个架构文件:

<xs:include schemaLocation="xxxxCommonTypes.xsd" />

您是否更新了该文件的路径?

任何错误消息也会有所帮助。

【讨论】:

  • 是的,包含被正确引用。没有错误消息。其他 CommonTypes.xsd 的对象在 reference.cs 中正确生成,但此 HotelDetailRQ.xsd(以及许多其他)的类不是..
  • 生成的文件中是否完全缺少 HotelDetailRQ 对象,或者它是否以某种方式生成不正确?也许您可以尝试使用 svcutil.exe(在命令行上)生成代理。调用:svcutil.exe 。这可能会显示更详细的错误消息...