解析XSD模式出错 - 未定义的complexType

3
我目前正在尝试将此XSD作为服务参考添加到我的ASP .Net MVC 4项目中(http://voip.letscall.pt/PortalWebAPI/metadata?xsd=1)。问题是无论我是做错了什么还是文件本身有问题,当我使用XSD.exe解析XSD时,它会给出以下错误信息:
Undefined complexType 'http://schemas.datacontract.org/2004/07/VS.PortalWebAPI:SupportTypes:Paging' 被用作复杂类型扩展的基本类型。
Paging SupportType 用于复杂类型,例如:
<xs:complexType name="GetPbxCompanyContacts">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q13="http://schemas.datacontract.org/2004/07/VS.PortalWebAPI.API.SupportTypes" base="q13:Paging">
        <xs:sequence>
          <xs:element minOccurs="0" name="BranchId" type="xs:int" />
          <xs:element minOccurs="0" name="Login" nillable="true" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="GetPbxCompanyContacts" nillable="true" type="tns:GetPbxCompanyContacts" />

PortalWebAPI有5个文件:
XSDS
- 服务类型(voip.letscall.pt/PortalWebAPI/metadata?xsd=1) - Wcf数据类型(voip.letscall.pt/PortalWebAPI/metadata?xsd=0) - Wcf集合类型(voip.letscall.pt/PortalWebAPI/metadata?xsd=2)
WSDLS
- soap11 (voip.letscall.pt/PortalWebAPI/soap11) - soap12 (voip.letscall.pt/PortalWebAPI/soap12)
然而,我仍然没有找到如何使用它。我只需要其中一个,还是需要导入全部?我也尝试了直接将其添加到项目中,通过“引用”->“添加服务引用”,只添加其中一个或所有文件,但运气不佳。

你是否正在导入包含“q13:Paging”定义的模式?如果是,请在你的问题中添加更多细节。 - helderdarocha
@helderdarocha 我已经更新了问题,提供了有关文件的更多信息。两个XSDS都没有对分页进行定义。 - Joao Batista
1
两个XSD [模式文档]都没有Paging的定义。太好了。 - C. M. Sperberg-McQueen
1个回答

1
在XML模式文档中应该有一个名为“Paging”的complexType,其目标命名空间映射到q13前缀。查找具有以下内容的文档:
targetNamespace="http://schemas.datacontract.org/2004/07/VS.PortalWebAPI.API.SupportTypes"

它应该包含Paging类型。

您还应该有一个xs:import语句:

<xs:import namespace="http://schemas.datacontract.org/2004/07/VS.PortalWebAPI.API.SupportTypes" 
           schemaLocation="/path/to/your-schema.xsd"/>

如果在该命名空间中未声明 Paging 类型,或者您未导入模式,则在尝试在扩展中使用它时将无法找到。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接