【发布时间】:2014-11-19 07:59:35
【问题描述】:
我正在尝试从下面提到的 xsd 生成一个类,但出现以下异常:
Undefined complexType 'http://ws.orbitz.com/schemas/v3/Hotel:BasicStayDetails' 用作复杂类型扩展的基础。
Xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
targetNamespace="http://ws.orbitz.com/schemas/v3/Hotel"
xmlns:com="http://ws.orbitz.com/schemas/v3/Common"
xmlns="http://ws.orbitz.com/schemas/v3/Hotel">
<xsd:include schemaLocation="hotel_common.xsd"/>
<xsd:import namespace="http://ws.orbitz.com/schemas/v3/Common" schemaLocation="../common/common.xsd"/>
<xsd:element name="HotelShoppingResponse">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="com:CommonResponseValues">
<xsd:sequence>
<xsd:element name="PaginationKey" type="xsd:string" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Key to identify multiple hotel search requests performed for pagination. This key
will be used for tracking the client sessions for the same search criteria on
Pagination.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Location" type="com:Location" minOccurs="0" maxOccurs="1"/>
<xsd:element name="StayDetails" type="ShopStayDetails" minOccurs="1" maxOccurs="1"/>
<xsd:element name="Hotels" type="Hotels" minOccurs="1" maxOccurs="1"/>
<xsd:element name="Areas" type="com:Areas" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ShopStayDetails">
<xsd:complexContent>
<xsd:extension base="BasicStayDetails"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Hotels">
<xsd:sequence>
<xsd:element name="Hotel" type="ShopHotel" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="href" type="xsd:anyURI" use="required"/>
<xsd:attribute name="hasMoreHotels" type="xsd:boolean" use="optional"/>
<xsd:attribute name="responseCount" type="com:Number" use="required"/>
<xsd:attribute name="totalCount" type="com:Number" use="required">
<xsd:annotation>
<xsd:documentation>
This attribute reflects all the hotels that matches the search criteria
regardless of availability.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="ShopHotel">
<xsd:sequence>
<xsd:element name="Details" type="ShopDetails" minOccurs="0" maxOccurs="1"/>
<xsd:element name="Rooms" type="ShopRooms" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ShopDetails">
<xsd:complexContent>
<xsd:extension base="BasicDetails">
<xsd:sequence>
<xsd:element name="Areas" type="com:NeighborhoodAreas" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation xml:lang="en">Optional element - Contains list of neighborhood location
ids.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="availability" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation xml:lang="en">Optional element to distinguish the availability status of a
hotel as Available or Unknown.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ShopRooms">
<xsd:complexContent>
<xsd:extension base="BasicRooms">
<xsd:sequence>
<xsd:element name="RoomRates" type="RoomRates" minOccurs="0" maxOccurs="4"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
我们将不胜感激。 提前致谢。
【问题讨论】:
-
什么是定义:
除非它可以查找到 BasicStayDetails,否则它将是未知的。 -
Jonatan :它太大了,我不能粘贴它。请提出建议。
-
我会在 Altova XMLSpy 中打开 XSD,看看在查找部分导入时是否有问题。如果是,则需要在生成类之前修复。您尝试使用什么工具来生成类?
-
定义成
hotel_common.xsdcomplexTypeBasicStayDetails?当缺少XSD的引用(包含或导入)或缺少元素的定义时,会发生此错误。