Link to home
Start Free TrialLog in
Avatar of TimB
TimB

asked on

[ERROR] ct-props-correct.4 - when using JAXB

Hello,

Hope this is in the right topic area - It could also go in the Java area.


I have a set of XSD files, as far as I know, these are validated, and wel formed.

I'm using java with JAXB to parse these XSDs, and create java classes from them.

When I attempto do this, I get the following error:

[ERROR] ct-props-correct.4

What does this mean? and does anyone know how to get rid of it?

Here's the complete error list.


compile:
     [echo] Compiling the schema external binding file...
      [xjc] Compiling file:/D:/jwsdp-1.3/jaxb/samples/hotelAvailRQ/FIDELIO_Hotel
AvailRQ.xsd
      [xjc] [ERROR] ct-props-correct.4: Error for type '#AnonType_CreditCardCred
itCards'.  Duplicate attribute uses with the same name and target namespace are
specified.  Name of duplicate attribute use is 'privacyIndicator'.
      [xjc]   line 436 of Profile.xsd


Thanks for any help,

TimB
Avatar of TimB
TimB

ASKER

I found a useful link here:

http://www.w3.org/TR/xmlschema-1/#ct-props-correct

which says that:

Schema Component Constraint: Complex Type Definition Properties Correct

All of the following must be true:
1 The values of the properties of a complex type definition must be as described in the property tableau in The Complex Type Definition Schema Component (§3.4.1), modulo the impact of Missing Sub-components (§5.3).
2 If the {base type definition} is a simple type definition, the {derivation method} must be extension.
3 Circular definitions are disallowed, except for the ·ur-type definition·. That is, it must be possible to reach the ·ur-type definition· by repeatedly following the {base type definition}.
4 Two distinct attribute declarations in the {attribute uses} must not have identical {name}s and {target namespace}s.
5 Two distinct attribute declarations in the {attribute uses} must not have {type definition}s which are or are derived from ID.


----------------------------------------------------

I now know that "Two distinct attribute declarations in the {attribute uses} must not have identical {name}s and {target namespace}s. " but I don't know how to fix it.

thanks,
TimB
Avatar of TimB

ASKER

This problem is occuring (I think) because an attribute that has a use of 'privacyIndicator' is definined in an XSD on my computer.  'privacyIndicator' is also defined in another XSD that the XSD's on my system refference.

I need to find a way to tell the binding compiler:  "Ignore the external 'privacyIndicator' definition, and only take notice of the local one"

I'm pretty sure that this should be done in the 'bindings configuration' .xjb file, but don't know the syntax.

Can anyone do this using JAXB, Castor, or any XSD to java tool?

If you need any more information, or have any suggestions, just say.

Thanks,
TimB
Avatar of TimB

ASKER

How can I increase the number of points on this question?

Thanks,
TimB
Can you post your xsd file?
ASKER CERTIFIED SOLUTION
Avatar of savalou
savalou

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of TimB

ASKER

Here's profile.xsd:

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by Brad More (Micros Fidelio Asia Pacific) -->
<xs:schema targetNamespace="http://www.micros.com/2002A" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.micros.com/2002A" elementFormDefault="qualified" attributeFormDefault="unqualified" version="3.0">
      <xs:include schemaLocation="FIDELIO_CommonTypes.xsd"/>
      <xs:complexType name="Profile">
            <xs:annotation>
                  <xs:documentation>Comment describing your root element</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                  <xs:element ref="ProfileIds" minOccurs="0"/>
                  <xs:element ref="Accesses" minOccurs="0"/>
                  <xs:choice>
                        <xs:element ref="Customer" minOccurs="0"/>
                        <xs:element ref="CompanyInfo" minOccurs="0"/>
                  </xs:choice>
                  <xs:element ref="Preferences" minOccurs="0"/>
                  <xs:element ref="Affiliations" minOccurs="0"/>
                  <xs:element ref="Agreements" minOccurs="0"/>
                  <xs:element ref="VendorComments" minOccurs="0"/>
                  <xs:element name="TPE_Extensions" type="TPE_Extensions" minOccurs="0"/>
            </xs:sequence>
            <xs:attributeGroup ref="ProfileTypeAttributes"/>
            <xs:attributeGroup ref="PrivacyAttributes"/>
      </xs:complexType>
      <xs:element name="Access">
            <xs:annotation>
                  <xs:documentation>Captures change/create user audit trail information.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element name="AccessPerson" type="PersonName" minOccurs="0">
                              <xs:annotation>
                                    <xs:documentation xml:lang="en">Actual named user / operator who executed the change or access.</xs:documentation>
                              </xs:annotation>
                        </xs:element>
                        <xs:element name="accessComment" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attribute name="actionType" use="optional">
                        <xs:simpleType>
                              <xs:restriction base="xs:string">
                                    <xs:enumeration value="Create"/>
                                    <xs:enumeration value="Read"/>
                                    <xs:enumeration value="Update"/>
                                    <xs:enumeration value="Delete"/>
                              </xs:restriction>
                        </xs:simpleType>
                  </xs:attribute>
                  <xs:attribute name="actionDate" type="xs:dateTime" use="optional"/>
                  <xs:attribute name="actionSystemId" type="xs:string" use="optional"/>
                  <xs:attribute name="accessUserId" type="xs:string" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="Accesses">
            <xs:annotation>
                  <xs:documentation>Collection of Access objects.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="Access" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="Affiliation">
            <xs:annotation>
                  <xs:documentation xml:lang="en">Defines an entity that provides travel services or benefits to a customer or company.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="Organizations" minOccurs="0"/>
                        <xs:element ref="Employers" minOccurs="0"/>
                        <xs:element ref="TravelArrangers" minOccurs="0"/>
                        <xs:element ref="TravelClubs" minOccurs="0"/>
                        <xs:element ref="InsurancePlans" minOccurs="0"/>
                        <xs:element ref="TPA_Extensions" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="Affiliations">
            <xs:annotation>
                  <xs:documentation>Collection of affiliation objects.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="Affiliation" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="Agreement">
            <xs:annotation>
                  <xs:documentation xml:lang="en">Section of a business profile that contains information about trading partner agreements.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="Certifications" minOccurs="0"/>
                        <xs:element ref="AllianceConsortiums" minOccurs="0"/>
                        <xs:element ref="CommissionInfos" minOccurs="0"/>
                        <xs:element ref="TPA_Extensions" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="Agreements">
            <xs:annotation>
                  <xs:documentation>Collection of Agreement objects.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="Agreement" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="AllianceConsortium">
            <xs:annotation>
                  <xs:documentation xml:lang="en">Provides information about alliance partnerships and consortiums of members grouped together to obtain trading partner agreements for travel service and privileges.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="AllianceMembers" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attribute name="allianceId" type="xs:string" use="optional"/>
                  <xs:attribute name="effectiveDate" type="xs:date" use="optional"/>
                  <xs:attribute name="expirationDate" type="xs:date" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="AllianceConsortiums">
            <xs:annotation>
                  <xs:documentation>Collection of Alliance Consortium objects.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="AllianceConsortium" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="AllianceMember">
            <xs:annotation>
                  <xs:documentation>Wraps and extends CompanyName</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="CompanyName"/>
                  </xs:sequence>
                  <xs:attribute name="memberCode" type="xs:string" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="AllianceMembers">
            <xs:annotation>
                  <xs:documentation>Collection of Alliance Member objects</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="AllianceMember" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="BankAccount">
            <xs:annotation>
                  <xs:documentation>Bank account representation.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element name="accountNames" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attribute name="bankId" type="xs:string" use="optional"/>
                  <xs:attribute name="accountType" type="xs:string" use="optional"/>
                  <xs:attribute name="accountNumber" type="xs:string" use="optional"/>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="BankAccounts">
            <xs:annotation>
                  <xs:documentation>Collection of bank account objects.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="BankAccount" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="BusinessLocale">
            <xs:annotation>
                  <xs:documentation xml:lang="en">The jurisdiction in which a company is authorized to do business. Uses the Address entity to indicate the location of business using any of the components of the address (e.g., city, state, zip code, country, etc.)</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element name="Address" type="AddressData"/>
                  </xs:sequence>
                  <xs:attribute name="default" type="xs:boolean" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="BusinessLocales">
            <xs:annotation>
                  <xs:documentation>Collection of BusinessLocale</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="BusinessLocale" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="Certification">
            <xs:annotation>
                  <xs:documentation xml:lang="en">Information about certifications or accreditation held by the company.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:simpleContent>
                        <xs:extension base="xs:string">
                              <xs:attribute name="certificationId" type="xs:string" use="optional"/>
                              <xs:attribute name="certificationType" use="optional">
                                    <xs:annotation>
                                          <xs:documentation>An indication of whether a certification is part of a consortium or alliance partnership.
                                                Valid values: (Single Vendor|Alliance).</xs:documentation>
                                    </xs:annotation>
                                    <xs:simpleType>
                                          <xs:restriction base="xs:string">
                                                <xs:enumeration value="SingleVndr"/>
                                                <xs:enumeration value="Alliance"/>
                                          </xs:restriction>
                                    </xs:simpleType>
                              </xs:attribute>
                              <xs:attribute name="effectiveDate" type="xs:date" use="optional"/>
                              <xs:attribute name="expirationDate" type="xs:string" use="optional"/>
                        </xs:extension>
                  </xs:simpleContent>
            </xs:complexType>
      </xs:element>
      <xs:element name="Certifications">
            <xs:annotation>
                  <xs:documentation>Collection of Certification objects</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="Certification" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="Citizenship">
            <xs:annotation>
                  <xs:documentation>Object representaion of country(ies) in which customer has been granted citizenthip.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:attribute name="default" type="xs:boolean" use="optional"/>
                  <xs:attribute name="countryName" type="xs:string" use="optional"/>
                  <xs:attribute name="countryCode" type="xs:string" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="Citizenships">
            <xs:annotation>
                  <xs:documentation>Collection of Citizenship objects</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="Citizenship" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="ClubMemberName">
            <xs:annotation>
                  <xs:documentation>Wraps and extends Person Name for use with club memberships.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="PersonName" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attribute name="clubMemberId" type="xs:string" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="CompanyInfo">
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="CompanyName" minOccurs="0"/>
                        <xs:element name="Addresses" minOccurs="0">
                              <xs:complexType>
                                    <xs:sequence>
                                          <xs:element name="Address" type="Address" maxOccurs="unbounded"/>
                                    </xs:sequence>
                              </xs:complexType>
                        </xs:element>
                        <xs:element name="Telephones" minOccurs="0">
                              <xs:complexType>
                                    <xs:sequence>
                                          <xs:element name="Telephone" type="BaseTelephone" maxOccurs="unbounded"/>
                                    </xs:sequence>
                              </xs:complexType>
                        </xs:element>
                        <xs:element name="EMails" minOccurs="0">
                              <xs:complexType>
                                    <xs:sequence>
                                          <xs:element name="EMail" type="BaseEMail" maxOccurs="unbounded"/>
                                    </xs:sequence>
                              </xs:complexType>
                        </xs:element>
                        <xs:element name="URLs" minOccurs="0">
                              <xs:complexType>
                                    <xs:sequence>
                                          <xs:element name="URL" type="BaseURL" maxOccurs="unbounded"/>
                                    </xs:sequence>
                              </xs:complexType>
                        </xs:element>
                        <xs:element ref="BusinessLocales" minOccurs="0"/>
                        <xs:element ref="PaymentForms" minOccurs="0"/>
                        <xs:element ref="ContactPersons" minOccurs="0"/>
                        <xs:element ref="TravelArrangers" minOccurs="0"/>
                        <xs:element ref="LoyaltyPrograms" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="CompanyInfos">
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="CompanyInfo" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="CompanyName">
            <xs:complexType>
                  <xs:simpleContent>
                        <xs:extension base="xs:string">
                              <xs:attribute name="companyIdCode" type="xs:string" use="optional"/>
                              <xs:attribute name="codeContext" type="xs:string" use="optional"/>
                        </xs:extension>
                  </xs:simpleContent>
            </xs:complexType>
      </xs:element>
      <xs:element name="CompanyNames">
            <xs:annotation>
                  <xs:documentation>Colleciton of CompanyName</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="CompanyName" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="CommissionInfo">
            <xs:annotation>
                  <xs:documentation xml:lang="en">Contains information about agreements for commission arrangements with the business entity.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:simpleContent>
                        <xs:extension base="xs:string">
                              <xs:attribute name="commissionPlanCode" type="xs:string" use="optional"/>
                              <xs:attribute name="commissionRateText" type="xs:string" use="optional"/>
                              <xs:attribute name="commissionRatePercentage" use="optional">
                                    <xs:simpleType>
                                          <xs:restriction base="xs:decimal">
                                                <xs:maxInclusive value="100.00"/>
                                          </xs:restriction>
                                    </xs:simpleType>
                              </xs:attribute>
                              <xs:attribute name="currencyCode" type="xs:string" use="optional"/>
                        </xs:extension>
                  </xs:simpleContent>
            </xs:complexType>
      </xs:element>
      <xs:element name="CommissionInfos">
            <xs:annotation>
                  <xs:documentation>Collection of commission nfo objects.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="CommissionInfo" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="ContactPerson">
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="PersonName"/>
                        <xs:element name="Addresses" minOccurs="0">
                              <xs:complexType>
                                    <xs:sequence>
                                          <xs:element name="Address" type="Address" maxOccurs="unbounded"/>
                                    </xs:sequence>
                              </xs:complexType>
                        </xs:element>
                        <xs:element name="Telephones" minOccurs="0">
                              <xs:complexType>
                                    <xs:sequence>
                                          <xs:element name="Telephone" type="Telephone" maxOccurs="unbounded"/>
                                    </xs:sequence>
                              </xs:complexType>
                        </xs:element>
                        <xs:element name="EMails" minOccurs="0">
                              <xs:complexType>
                                    <xs:sequence>
                                          <xs:element name="EMail" type="EMail" maxOccurs="unbounded"/>
                                    </xs:sequence>
                              </xs:complexType>
                        </xs:element>
                        <xs:element ref="CompanyNames" minOccurs="0"/>
                        <xs:element ref="EmployeeInfos" minOccurs="0"/>
                        <xs:element name="URLs" minOccurs="0">
                              <xs:complexType>
                                    <xs:sequence>
                                          <xs:element name="URL" type="URL" maxOccurs="unbounded"/>
                                    </xs:sequence>
                              </xs:complexType>
                        </xs:element>
                  </xs:sequence>
                  <xs:attribute name="RPH" type="xs:int" use="optional"/>
                  <xs:attribute name="default" type="xs:boolean" use="optional"/>
                  <xs:attribute name="contactType" type="xs:string" use="optional"/>
                  <xs:attribute name="relation" type="xs:string" use="optional"/>
                  <xs:attribute name="emergencyFlag" type="xs:boolean" use="optional"/>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="ContactPersons">
            <xs:annotation>
                  <xs:documentation>Collection of POC's</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="ContactPerson"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="CreditCards">
            <xs:annotation>
                  <xs:documentation>Collection of Credit Card objects (CreditCard.xsd)</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element name="CreditCard" maxOccurs="unbounded">
                              <xs:complexType>
                                    <xs:complexContent>
                                          <xs:extension base="CreditCard">
                                                <xs:attributeGroup ref="PrivacyAttributes"/>
                                          </xs:extension>
                                    </xs:complexContent>
                              </xs:complexType>
                        </xs:element>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="Customer">
            <xs:annotation>
                  <xs:documentation>Basic customer infomration.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element name="PersonName" type="PersonName"/>
                        <xs:element name="Telephones" minOccurs="0">
                              <xs:complexType>
                                    <xs:sequence>
                                          <xs:element name="Telephone" type="Telephone" maxOccurs="unbounded"/>
                                    </xs:sequence>
                                    <xs:attributeGroup ref="PrivacyAttributes"/>
                              </xs:complexType>
                        </xs:element>
                        <xs:element name="EMails" minOccurs="0">
                              <xs:complexType>
                                    <xs:sequence>
                                          <xs:element name="EMail" type="EMail" maxOccurs="unbounded"/>
                                    </xs:sequence>
                                    <xs:attributeGroup ref="PrivacyAttributes"/>
                              </xs:complexType>
                        </xs:element>
                        <xs:element name="Addresses" minOccurs="0">
                              <xs:complexType>
                                    <xs:sequence>
                                          <xs:element name="Address" type="Address" maxOccurs="unbounded"/>
                                    </xs:sequence>
                                    <xs:attributeGroup ref="PrivacyAttributes"/>
                              </xs:complexType>
                        </xs:element>
                        <xs:element name="URLs" minOccurs="0">
                              <xs:complexType>
                                    <xs:sequence>
                                          <xs:element name="URL" type="URL" maxOccurs="unbounded"/>
                                    </xs:sequence>
                                    <xs:attributeGroup ref="PrivacyAttributes"/>
                              </xs:complexType>
                        </xs:element>
                        <xs:element ref="Citizenships" minOccurs="0"/>
                        <xs:element ref="PetInfo" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="PaymentForms" minOccurs="0"/>
                        <xs:element ref="RelatedTravelers" minOccurs="0"/>
                        <xs:element ref="ContactPersons" minOccurs="0"/>
                        <xs:element ref="Documents" minOccurs="0"/>
                        <xs:element ref="CustomerLoyaltyPrograms" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attribute name="gender" use="optional">
                        <xs:simpleType>
                              <xs:restriction base="xs:string">
                                    <xs:enumeration value="Female"/>
                                    <xs:enumeration value="Male"/>
                              </xs:restriction>
                        </xs:simpleType>
                  </xs:attribute>
                  <xs:attribute name="deceased" use="optional" default="No">
                        <xs:simpleType>
                              <xs:restriction base="xs:string">
                                    <xs:enumeration value="Yes"/>
                                    <xs:enumeration value="No"/>
                              </xs:restriction>
                        </xs:simpleType>
                  </xs:attribute>
                  <xs:attribute name="lockOutType" type="xs:string" use="optional">
                        <xs:annotation>
                              <xs:documentation>Indicates reason for locking out record, such as Emergency, Incident, etc. </xs:documentation>
                        </xs:annotation>
                  </xs:attribute>
                  <xs:attribute name="dateOfBirth" type="xs:date" use="optional"/>
                  <xs:attribute name="currency" type="xs:string" use="optional"/>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="CustomerLoyaltyProgram">
            <xs:annotation>
                  <xs:documentation xml:lang="en">Program rewarding frequent use by accumulating credits for services provided by vendors.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:complexContent>
                        <xs:extension base="BaseLoyaltyProgram">
                              <xs:attributeGroup ref="PrivacyAttributes"/>
                        </xs:extension>
                  </xs:complexContent>
            </xs:complexType>
      </xs:element>
      <xs:element name="CustomerLoyaltyPrograms">
            <xs:annotation>
                  <xs:documentation>Collection of Customer Loyalty Program objects</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="CustomerLoyaltyProgram" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="DirectBill">
            <xs:annotation>
                  <xs:documentation>Describe direct billing information</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="CompanyName"/>
                        <xs:element name="Address" type="AddressData" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="DirectBills">
            <xs:annotation>
                  <xs:documentation>Collection of direct bill candidates for this customer.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="DirectBill" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="Document">
            <xs:annotation>
                  <xs:documentation>Object representation of government issued travel documents.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element name="documentLimitations" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attribute name="holderName" type="xs:string" use="optional"/>
                  <xs:attribute name="documentType" type="xs:string" use="optional"/>
                  <xs:attribute name="documentId" type="xs:string" use="optional"/>
                  <xs:attribute name="issuingAuthority" type="xs:string" use="optional"/>
                  <xs:attribute name="issuanceLocation" type="xs:string" use="optional"/>
                  <xs:attribute name="gender" use="optional">
                        <xs:simpleType>
                              <xs:restriction base="xs:string">
                                    <xs:enumeration value="Female"/>
                                    <xs:enumeration value="Male"/>
                              </xs:restriction>
                        </xs:simpleType>
                  </xs:attribute>
                  <xs:attribute name="dateOfBirth" type="xs:date" use="optional"/>
                  <xs:attribute name="effectiveDate" type="xs:date" use="optional"/>
                  <xs:attribute name="expirationDate" type="xs:date" use="optional"/>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="Documents">
            <xs:annotation>
                  <xs:documentation>Collection of Document objects.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="Document" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="EmployeeInfo">
            <xs:annotation>
                  <xs:documentation>Describes and employee, position, title, etc.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:simpleContent>
                        <xs:extension base="xs:string">
                              <xs:attribute name="employeeId" type="xs:string" use="optional"/>
                              <xs:attribute name="employeeLevel" type="xs:string" use="optional"/>
                              <xs:attribute name="employeeTitle" type="xs:string" use="optional"/>
                              <xs:attribute name="employeeStatusType">
                                    <xs:annotation>
                                          <xs:documentation>Status of employment.</xs:documentation>
                                    </xs:annotation>
                                    <xs:simpleType>
                                          <xs:restriction base="xs:string">
                                                <xs:enumeration value="Active"/>
                                                <xs:enumeration value="Retired"/>
                                                <xs:enumeration value="Leave"/>
                                                <xs:enumeration value="Terminated"/>
                                          </xs:restriction>
                                    </xs:simpleType>
                              </xs:attribute>
                        </xs:extension>
                  </xs:simpleContent>
            </xs:complexType>
      </xs:element>
      <xs:element name="EmployeeInfos">
            <xs:annotation>
                  <xs:documentation>Collection of Empoyee Info objects.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="EmployeeInfo" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="Employer">
            <xs:annotation>
                  <xs:documentation xml:lang="en">Company or organization that employs the customer</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="CompanyName" minOccurs="0"/>
                        <xs:element ref="RelatedEmployers" minOccurs="0"/>
                        <xs:element ref="EmployeeInfo" minOccurs="0"/>
                        <xs:element name="internalRefNumber" type="xs:string" minOccurs="0" maxOccurs="unbounded">
                              <xs:annotation>
                                    <xs:documentation xml:lang="en">Accounting code(s) assigned to travel for employer.</xs:documentation>
                              </xs:annotation>
                        </xs:element>
                        <xs:element ref="TravelArrangers" minOccurs="0"/>
                        <xs:element ref="LoyaltyPrograms" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attribute name="default" type="xs:boolean" use="optional"/>
                  <xs:attribute name="officeType" type="xs:string" use="optional"/>
                  <xs:attribute name="expirationDate" type="xs:date" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="Employers">
            <xs:annotation>
                  <xs:documentation>Collection of Employer objects.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="Employer" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="Insurance">
            <xs:annotation>
                  <xs:documentation>Travel insurance carried by customer or company</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:attribute name="RPH" type="xs:int" use="optional"/>
                  <xs:attribute name="insuranceType" type="xs:string" use="optional"/>
                  <xs:attribute name="policyNumber" type="xs:string" use="required"/>
                  <xs:attribute name="carrier" type="xs:string" use="optional"/>
                  <xs:attribute name="insuredName" type="xs:string" use="optional"/>
                  <xs:attribute name="effectiveDate" type="xs:date" use="optional"/>
                  <xs:attribute name="expirationDate" type="xs:date" use="optional"/>
                  <xs:attribute name="underwriter" type="xs:string" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="InsurancePlans">
            <xs:annotation>
                  <xs:documentation>Collection of Insurance objects.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="Insurance" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="LoyaltyPrograms">
            <xs:annotation>
                  <xs:documentation>Collection of Loyalty Program objects.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element name="LoyaltyProgram" type="BaseLoyaltyProgram" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="Organization">
            <xs:annotation>
                  <xs:documentation xml:lang="en">Membership organization that has travel benefits, programs, or discounts.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="OrganizationMemberName" minOccurs="0"/>
                        <xs:element ref="OrganizationName" minOccurs="0"/>
                        <xs:element ref="RelatedOrganizationName" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="TravelArrangers" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attribute name="default" type="xs:boolean" use="optional"/>
                  <xs:attribute name="organizationType" type="xs:string" use="optional"/>
                  <xs:attribute name="expirationDate" type="xs:date" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="OrganizationMemberName">
            <xs:annotation>
                  <xs:documentation>Wraps and extends PersonName for use with Organization elements.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="PersonName"/>
                  </xs:sequence>
                  <xs:attribute name="orgMemberId" type="xs:string" use="optional"/>
                  <xs:attribute name="orgMemberLevel" type="xs:string" use="optional"/>
                  <xs:attribute name="orgMemberTitle" type="xs:string" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="OrganizationName">
            <xs:annotation>
                  <xs:documentation>Wraps CompanyName for use with Organization elements.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="CompanyName"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="Organizations">
            <xs:annotation>
                  <xs:documentation>Collection of organization objects.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="Organization" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="PaymentForm">
            <xs:annotation>
                  <xs:documentation>Encapsulates all manner of payment type informaton.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="CreditCards" minOccurs="0"/>
                        <xs:element ref="BankAccounts" minOccurs="0"/>
                        <xs:element ref="DirectBills" minOccurs="0"/>
                        <xs:element ref="Vouchers" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="PaymentForms">
            <xs:annotation>
                  <xs:documentation>Collection of payment form.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="PaymentForm" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="PersonName" type="PersonName">
            <xs:annotation>
                  <xs:documentation>Wrapper for PersonName complexType (PersonName.xsd)</xs:documentation>
            </xs:annotation>
      </xs:element>
      <xs:element name="PetInfo" type="xs:string">
            <xs:annotation>
                  <xs:documentation>Information regarding pet(s) that may accompany owner while travelling.</xs:documentation>
            </xs:annotation>
      </xs:element>
      <xs:element name="Preferences">
            <xs:annotation>
                  <xs:documentation>Collection of Preference Collections</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="PreferenceCollection" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="PreferenceCollection">
            <xs:annotation>
                  <xs:documentation>Collection of preference elements groupable by travel type</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="PreferenceElement" minOccurs="0" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attribute name="travelType" type="xs:string" use="optional"/>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="PreferenceElement">
            <xs:annotation>
                  <xs:documentation>Encapsulates customer or company preference(s).</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element name="prefDescription" type="DescriptiveText" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attribute name="preferenceRPH" type="xs:int" use="optional"/>
                  <xs:attribute name="prefType" type="xs:string" use="optional"/>
                  <xs:attribute name="prefCode" type="xs:string" use="optional"/>
                  <xs:attribute name="prefLevel" type="xs:string" use="optional"/>
                  <xs:attribute name="value" type="xs:string" use="optional"/>
                  <xs:attribute name="priortiy" type="xs:string" use="optional"/>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="ProfileId" type="HotelUniqueId"/>
      <xs:element name="ProfileIds">
            <xs:annotation>
                  <xs:documentation>Collection of UniqueId objects to server as reference id's for this profile in various destination/recipient systems.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="ProfileId" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="RelatedEmployer">
            <xs:annotation>
                  <xs:documentation>Wrapper for CompanyName for use with Employer elements.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="CompanyName"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="RelatedEmployers">
            <xs:annotation>
                  <xs:documentation>Collection of Related Employer objects.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="RelatedEmployer" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="RelatedOrganizationName" type="xs:string">
            <xs:annotation>
                  <xs:documentation xml:lang="en">String list of Identifiefs that define a subsidiary, or entity related to the organization.</xs:documentation>
            </xs:annotation>
      </xs:element>
      <xs:element name="RelatedTraveler">
            <xs:annotation>
                  <xs:documentation>Other travel profiles associated with this individual.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="UniqueId"/>
                        <xs:element ref="PersonName"/>
                  </xs:sequence>
                  <xs:attribute name="relationsip" type="xs:string" use="optional"/>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="RelatedTravelers">
            <xs:annotation>
                  <xs:documentation>Collection of related traveler obects.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="RelatedTraveler" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="TravelArranger">
            <xs:annotation>
                  <xs:documentation xml:lang="en">Companies or individuals responsible for making travel plans or transactions either for the customer or company.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="CompanyName" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attribute name="default" type="xs:boolean" use="optional"/>
                  <xs:attribute name="travelArrangerType" type="xs:string" use="optional"/>
                  <xs:attribute name="contactRPH" type="xs:int" use="optional"/>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="TravelArrangers">
            <xs:annotation>
                  <xs:documentation>Collection of travel arranger.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="TravelArranger" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="TravelClub">
            <xs:annotation>
                  <xs:documentation xml:lang="en">Identifies a travel club that offers special privileges and related services.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="TravelClubName"/>
                        <xs:element ref="ClubMemberName" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attribute name="expirationDate" type="xs:date" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="TravelClubName">
            <xs:annotation>
                  <xs:documentation>Travel club name wrapper for company name</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="CompanyName"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="TravelClubs">
            <xs:annotation>
                  <xs:documentation>Collection of travel club objects</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="TravelClub" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="VendorComment">
            <xs:complexType>
                  <xs:complexContent>
                        <xs:extension base="DescriptiveText">
                              <xs:attribute name="commentType" use="optional">
                                    <xs:simpleType>
                                          <xs:restriction base="xs:string">
                                                <xs:enumeration value="Blacklist"/>
                                                <xs:enumeration value="Comment"/>
                                                <xs:enumeration value="Other"/>
                                          </xs:restriction>
                                    </xs:simpleType>
                              </xs:attribute>
                              <xs:attribute name="otherCommentType" type="xs:string" use="optional"/>
                              <xs:attribute name="guestViewable" type="xs:boolean" use="optional"/>
                              <xs:attribute name="proprietary" type="xs:string" use="optional"/>
                        </xs:extension>
                  </xs:complexContent>
            </xs:complexType>
      </xs:element>
      <xs:element name="VendorComments">
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="VendorComment" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="Voucher">
            <xs:annotation>
                  <xs:documentation>Voucher information</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:attribute name="effectiveDate" type="xs:date" use="optional"/>
                  <xs:attribute name="expirationDate" type="xs:date" use="optional"/>
                  <xs:attribute name="seriesCode" type="xs:string" use="optional"/>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="Vouchers">
            <xs:annotation>
                  <xs:documentation>Collection of voucher.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="Voucher" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="PrivacyAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="TPA_Extensions" type="xs:anyType"/>
</xs:schema>
Avatar of TimB

ASKER

This is FIDELIO_CommonTypes.xsd it defines the Privicy attributes that I think I get the error from:



<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by Brad More (Micros Fidelio Asia Pacific) -->
<xs:schema targetNamespace="http://www.micros.com/2002A" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.micros.com/2002A" elementFormDefault="qualified" attributeFormDefault="unqualified" version="3.1">
      <xs:complexType name="Address">
            <xs:choice>
                  <xs:element name="AddressData" type="AddressData"/>
                  <xs:sequence>
                        <xs:element name="Text" type="Text" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:choice>
            <xs:attribute name="primary" type="xs:boolean" use="optional"/>
            <xs:attribute name="addressType" use="optional">
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="Billing"/>
                              <xs:enumeration value="Business"/>
                              <xs:enumeration value="Corporate"/>
                              <xs:enumeration value="Home"/>
                              <xs:enumeration value="Mailing"/>
                              <xs:enumeration value="Other"/>
                              <xs:enumeration value="Shipping"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="otherAddressType" type="xs:string" use="optional"/>
            <xs:attributeGroup ref="PrivacyAttributes"/>
      </xs:complexType>
      <xs:element name="AddressSearch">
            <xs:annotation>
                  <xs:documentation>Combines a street adress with a vector component to define a search area</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element name="Address" type="AddressData"/>
                        <xs:element ref="Vector" minOccurs="0"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:complexType name="Amenity">
            <xs:annotation>
                  <xs:documentation>Used to describe both room type and property amenities.</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                  <xs:element name="amenityDescription" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="amenityCode" type="xs:string" use="required"/>
            <xs:attribute name="amenityType" use="optional">
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="Property"/>
                              <xs:enumeration value="Room"/>
                              <xs:enumeration value="Both"/>
                              <xs:enumeration value="Nearby"/>
                              <xs:enumeration value="Exists"/>
                              <xs:enumeration value="Other"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="otherType" type="xs:string" use="optional"/>
            <xs:attribute name="availabilityFlag" use="optional">
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="ConfirmableComplimentary"/>
                              <xs:enumeration value="ConfirmableCost"/>
                              <xs:enumeration value="OnRequestComplimentary"/>
                              <xs:enumeration value="OnRequestCost"/>
                              <xs:enumeration value="Exists"/>
                              <xs:enumeration value="Other"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="otherFlag" type="xs:string" use="optional"/>
      </xs:complexType>
      <xs:complexType name="Amount">
            <xs:annotation>
                  <xs:documentation>Object representation of an amount with included currency and currency conversion factors.</xs:documentation>
            </xs:annotation>
            <xs:simpleContent>
                  <xs:extension base="xs:float">
                        <xs:attribute name="currency" type="xs:string" use="optional"/>
                        <xs:attribute name="currencyFactor" type="xs:float" use="optional"/>
                  </xs:extension>
            </xs:simpleContent>
      </xs:complexType>
      <xs:complexType name="AddressData">
            <xs:annotation>
                  <xs:documentation>Defines a physical address of parties.</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                  <xs:element name="addressLine" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="bldgRoom" type="xs:string" use="optional">
                  <xs:annotation>
                        <xs:documentation xml:lang="en">Building name, room, apartment, or suite number.</xs:documentation>
                  </xs:annotation>
            </xs:attribute>
            <xs:attribute name="city" type="xs:string" use="optional"/>
            <xs:attribute name="cityCode" type="xs:string" use="optional"/>
            <xs:attribute name="stateProv" type="xs:string" use="optional"/>
            <xs:attribute name="postalCode" type="xs:string" use="optional"/>
            <xs:attribute name="countryCode" type="xs:string" use="optional"/>
      </xs:complexType>
      <xs:complexType name="BaseCreditCard">
            <xs:annotation>
                  <xs:documentation>Encapsulates credit card and credit card billing information.</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                  <xs:element name="BillingAddress" type="AddressData" minOccurs="0"/>
                  <xs:element ref="CardIssuerName" minOccurs="0"/>
            </xs:sequence>
            <xs:attribute name="primary" type="xs:boolean" use="optional"/>
            <xs:attribute name="cardHolderName" type="xs:string" use="required"/>
            <xs:attribute name="cardType" use="optional">
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="Credit"/>
                              <xs:enumeration value="Debit"/>
                              <xs:enumeration value="CentralBill"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="cardCode" type="xs:string" use="optional"/>
            <xs:attribute name="cardNumber" type="xs:string" use="required"/>
            <xs:attribute name="seriesCode" type="xs:string" use="optional"/>
            <xs:attribute name="effectiveDate" type="xs:date" use="optional"/>
            <xs:attribute name="expirationDate" type="xs:date" use="required"/>
      </xs:complexType>
      <xs:complexType name="BaseEMail">
            <xs:annotation>
                  <xs:documentation>Email address information.</xs:documentation>
            </xs:annotation>
            <xs:simpleContent>
                  <xs:extension base="xs:string">
                        <xs:attribute name="primary" type="xs:boolean" use="optional"/>
                        <xs:attribute name="emailType" type="xs:string" use="optional"/>
                  </xs:extension>
            </xs:simpleContent>
      </xs:complexType>
      <xs:complexType name="BaseLoyaltyProgram">
            <xs:annotation>
                  <xs:documentation xml:lang="en">Identifies a membership or loyalty program offered by the company by name of the program.</xs:documentation>
            </xs:annotation>
            <xs:attribute name="programType" type="xs:string" use="optional"/>
            <xs:attribute name="programId" type="xs:string" use="optional"/>
            <xs:attribute name="membershipId" type="xs:string" use="optional"/>
            <xs:attribute name="loyaltyLevel" type="xs:string" use="optional"/>
            <xs:attribute name="signUpDate" type="xs:date" use="optional"/>
            <xs:attribute name="expireDate" type="xs:date" use="optional"/>
            <xs:attribute name="travelSector" type="xs:string" use="optional"/>
            <xs:attribute name="singleVendorIndicator" type="xs:string" use="optional"/>
      </xs:complexType>
      <xs:complexType name="BaseTelephone">
            <xs:annotation>
                  <xs:documentation>Telephone number data.</xs:documentation>
            </xs:annotation>
            <xs:choice>
                  <xs:element ref="PhoneNumber"/>
                  <xs:element ref="PhoneData"/>
            </xs:choice>
            <xs:attribute name="primary" type="xs:boolean" use="optional"/>
            <xs:attribute name="phoneUseType" use="optional">
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="Home"/>
                              <xs:enumeration value="Business"/>
                              <xs:enumeration value="Mobile"/>
                              <xs:enumeration value="HomeFax"/>
                              <xs:enumeration value="BusinessFax"/>
                              <xs:enumeration value="Pager"/>
                              <xs:enumeration value="Telex"/>
                              <xs:enumeration value="TTY"/>
                              <xs:enumeration value="Other"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="otherPhoneType" type="xs:string" use="optional"/>
      </xs:complexType>
      <xs:complexType name="BaseURL">
            <xs:simpleContent>
                  <xs:extension base="xs:anyURI"/>
            </xs:simpleContent>
      </xs:complexType>
      <xs:element name="BookingChannel">
            <xs:complexType>
                  <xs:attribute name="type" use="required">
                        <xs:annotation>
                              <xs:documentation>The type of booking channel. Valid Values: Global Distribution System (GDS), Alternative Distribution System (ADS), Sales and Catering System (SCS), Property Management System (PMS), Central Reservation System (CRS), Tour Operator System (TOS), Internet and ALL</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                              <xs:restriction base="xs:NMTOKENS">
                                    <xs:enumeration value="GDS"/>
                                    <xs:enumeration value="ADS"/>
                                    <xs:enumeration value="SCS"/>
                                    <xs:enumeration value="PMS"/>
                                    <xs:enumeration value="CRS"/>
                                    <xs:enumeration value="TOS"/>
                                    <xs:enumeration value="Internet"/>
                                    <xs:enumeration value="Other"/>
                              </xs:restriction>
                        </xs:simpleType>
                  </xs:attribute>
                  <xs:attribute name="otherType" type="xs:string" use="optional"/>
                  <xs:attribute name="primary" type="xs:boolean">
                        <xs:annotation>
                              <xs:documentation>Indicates whether the enumerated booking channel is the primary means of connectivity used by the source.</xs:documentation>
                        </xs:annotation>
                  </xs:attribute>
            </xs:complexType>
      </xs:element>
      <xs:element name="CardIssuerName">
            <xs:annotation>
                  <xs:documentation>Name and id of issuing banking authority or institution.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:simpleContent>
                        <xs:extension base="xs:string">
                              <xs:attribute name="issuerId" type="xs:string" use="optional"/>
                        </xs:extension>
                  </xs:simpleContent>
            </xs:complexType>
      </xs:element>
      <xs:element name="CodeRef">
            <xs:complexType>
                  <xs:attribute name="code" type="xs:string" use="optional"/>
                  <xs:attribute name="codeContext" type="xs:string" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:complexType name="CreditCard">
            <xs:complexContent>
                  <xs:extension base="BaseCreditCard">
                        <xs:attributeGroup ref="PrivacyAttributes"/>
                  </xs:extension>
            </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="DatePeriod">
            <xs:choice>
                  <xs:element name="duration" type="xs:duration"/>
                  <xs:element name="dateTime" type="xs:dateTime"/>
            </xs:choice>
      </xs:complexType>
      <xs:complexType name="DateTimePeriod">
            <xs:choice>
                  <xs:element name="period" type="xs:duration"/>
                  <xs:element name="dateTime" type="xs:dateTime"/>
                  <xs:element name="date" type="xs:date"/>
                  <xs:element name="time" type="xs:time"/>
            </xs:choice>
      </xs:complexType>
      <xs:complexType name="DescriptiveText">
            <xs:choice maxOccurs="unbounded">
                  <xs:element name="Text" type="Text"/>
                  <xs:element name="Image" type="xs:string"/>
                  <xs:element name="Url" type="xs:anyURI"/>
            </xs:choice>
      </xs:complexType>
      <xs:simpleType name="DOW">
            <xs:restriction base="xs:string">
                  <xs:enumeration value="Mon"/>
                  <xs:enumeration value="Tue"/>
                  <xs:enumeration value="Wed"/>
                  <xs:enumeration value="Thu"/>
                  <xs:enumeration value="Fri"/>
                  <xs:enumeration value="Sat"/>
                  <xs:enumeration value="Sun"/>
            </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="DOWPattern">
            <xs:attributeGroup ref="DOWPatternAttributes"/>
      </xs:complexType>
      <xs:attributeGroup name="DOWPatternAttributes">
            <xs:attribute name="Mon" type="xs:boolean" use="optional"/>
            <xs:attribute name="Tue" type="xs:boolean" use="optional"/>
            <xs:attribute name="Wed" type="xs:boolean" use="optional"/>
            <xs:attribute name="Thu" type="xs:boolean" use="optional"/>
            <xs:attribute name="Fri" type="xs:boolean" use="optional"/>
            <xs:attribute name="Sat" type="xs:boolean" use="optional"/>
            <xs:attribute name="Sun" type="xs:boolean" use="optional"/>
      </xs:attributeGroup>
      <xs:complexType name="EMail">
            <xs:annotation>
                  <xs:documentation xml:lang="en">Wrapper class for BaseEMail that provide privacy extensions.</xs:documentation>
            </xs:annotation>
            <xs:simpleContent>
                  <xs:extension base="BaseEMail">
                        <xs:attributeGroup ref="PrivacyAttributes"/>
                  </xs:extension>
            </xs:simpleContent>
      </xs:complexType>
      <xs:element name="ExtraBed">
            <xs:annotation>
                  <xs:documentation>Representation of extra bed pricing detail</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element name="Amount" type="Amount" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attribute name="extraBedType" use="optional">
                        <xs:simpleType>
                              <xs:restriction base="xs:string">
                                    <xs:enumeration value="Crib"/>
                                    <xs:enumeration value="Rollaway"/>
                                    <xs:enumeration value="Other"/>
                              </xs:restriction>
                        </xs:simpleType>
                  </xs:attribute>
                  <xs:attribute name="otherType" type="xs:string" use="optional"/>
                  <xs:attribute name="quantity" type="xs:int" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="ExtraPerson">
            <xs:annotation>
                  <xs:documentation>Extra person object.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element name="Amount" type="Amount" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attribute name="extraPersonType" use="required">
                        <xs:simpleType>
                              <xs:restriction base="xs:string">
                                    <xs:enumeration value="Adult"/>
                                    <xs:enumeration value="Child"/>
                                    <xs:enumeration value="Infant"/>
                                    <xs:enumeration value="Other"/>
                              </xs:restriction>
                        </xs:simpleType>
                  </xs:attribute>
                  <xs:attribute name="otherType" type="xs:string" use="optional"/>
                  <xs:attribute name="quantity" type="xs:int" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:attributeGroup name="FIDELIO_PayloadStdAttributes">
            <xs:annotation>
                  <xs:documentation xml:lang="en">The OTA_PayloadStdAttributes defines the standard attributes that appear on the root element for all OTA payloads.</xs:documentation>
            </xs:annotation>
            <xs:attribute name="echoToken" type="xs:string" use="optional"/>
            <xs:attribute name="timeStamp" type="xs:dateTime" use="optional"/>
            <xs:attribute name="target" use="optional" default="Production">
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="Test"/>
                              <xs:enumeration value="Production"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="version" type="xs:string" use="optional"/>
            <xs:attribute name="securityToken" type="xs:string" use="optional"/>
            <xs:attribute name="sequenceNmbr" type="xs:integer" use="optional"/>
            <xs:attribute name="primaryLanguageId" type="xs:string" use="optional"/>
            <xs:attribute name="altLanguageId" type="xs:string" use="optional"/>
      </xs:attributeGroup>
      <xs:element name="GeoSearch">
            <xs:annotation>
                  <xs:documentation xml:lang="en">Combines a geographic position with a direction vector to provide for a search location.  The vector element can be used to indicate a search radius, general direction or specific reference depending upon which (if any) attributes are set.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="Position"/>
                        <xs:element ref="Vector" minOccurs="0"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="GuestCount">
            <xs:complexType>
                  <xs:attribute name="count" type="xs:int" use="optional"/>
                  <xs:attribute name="ageQualifyingCode" use="optional">
                        <xs:simpleType>
                              <xs:restriction base="xs:string">
                                    <xs:enumeration value="Adult"/>
                                    <xs:enumeration value="Child"/>
                                    <xs:enumeration value="Infant"/>
                                    <xs:enumeration value="Other"/>
                              </xs:restriction>
                        </xs:simpleType>
                  </xs:attribute>
                  <xs:attribute name="otherAgeQualifyingCode" type="xs:string" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="GuestCounts">
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="GuestCount" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attribute name="guestOccupancyIndicator" type="xs:string" use="optional" default="EachRoom">
                        <xs:annotation>
                              <xs:documentation xml:lang="en">GuestOccupancyInd :  Value of "EachRoom" means that the guests defined in the GuestCounts object apply to each room in the NumberOfRooms for the RoomStay.  Value of "AllRooms" means that the guests defined in the GuestCounts object apply to all rooms combined in the NumberOfRooms for the RoomStay.</xs:documentation>
                        </xs:annotation>
                  </xs:attribute>
                  <xs:attribute name="isPerRoom" type="xs:boolean" use="optional">
                        <xs:annotation>
                              <xs:documentation>Boolean Is for each room of a RoomStay</xs:documentation>
                        </xs:annotation>
                  </xs:attribute>
            </xs:complexType>
      </xs:element>
      <xs:element name="HotelAreaSearch">
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="Vector"/>
                  </xs:sequence>
                  <xs:attributeGroup ref="HotelReferenceAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:complexType name="HotelContact">
            <xs:annotation>
                  <xs:documentation>Basic contact information for Hotel Property. </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                  <xs:element name="Addresses" minOccurs="0">
                        <xs:annotation>
                              <xs:documentation xml:lang="en">Collection of simple postal addresses.  Differentiated from AddressInfo by lack of defined address type and privacy attributes.</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                              <xs:sequence>
                                    <xs:element name="Address" type="AddressData" maxOccurs="unbounded"/>
                              </xs:sequence>
                        </xs:complexType>
                  </xs:element>
                  <xs:element name="EMails" minOccurs="0">
                        <xs:complexType>
                              <xs:sequence>
                                    <xs:element name="EMail" type="BaseEMail" maxOccurs="unbounded"/>
                              </xs:sequence>
                        </xs:complexType>
                  </xs:element>
                  <xs:element name="ContactPhoneNumbers" minOccurs="0">
                        <xs:annotation>
                              <xs:documentation xml:lang="en">Again, add collection of phone numbers alone, bypassing TelephoneInfo type wrapper that provides for privacy attributes.</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                              <xs:sequence>
                                    <xs:element name="ContactPhoneNumber" type="BaseTelephone" maxOccurs="unbounded"/>
                              </xs:sequence>
                        </xs:complexType>
                  </xs:element>
                  <xs:element name="HotelInformation" minOccurs="0">
                        <xs:complexType>
                              <xs:sequence>
                                    <xs:element name="HotelInfo" maxOccurs="unbounded">
                                          <xs:complexType>
                                                <xs:complexContent>
                                                      <xs:extension base="DescriptiveText">
                                                            <xs:attribute name="infoType" use="optional">
                                                                  <xs:simpleType>
                                                                        <xs:restriction base="xs:string">
                                                                              <xs:enumeration value="Directions"/>
                                                                              <xs:enumeration value="CheckInInfo"/>
                                                                              <xs:enumeration value="CheckOutInfo"/>
                                                                              <xs:enumeration value="Other"/>
                                                                        </xs:restriction>
                                                                  </xs:simpleType>
                                                            </xs:attribute>
                                                            <xs:attribute name="otherInfoType" type="xs:string" use="optional"/>
                                                      </xs:extension>
                                                </xs:complexContent>
                                          </xs:complexType>
                                    </xs:element>
                              </xs:sequence>
                        </xs:complexType>
                  </xs:element>
                  <xs:element name="URLs" minOccurs="0">
                        <xs:complexType>
                              <xs:sequence>
                                    <xs:element name="URL" type="BaseURL"/>
                              </xs:sequence>
                        </xs:complexType>
                  </xs:element>
                  <xs:element ref="Vector" minOccurs="0"/>
            </xs:sequence>
      </xs:complexType>
      <xs:element name="HotelNameSearch">
            <xs:complexType>
                  <xs:attributeGroup ref="HotelReferenceAttributes"/>
            </xs:complexType>
      </xs:element>
      <xs:attributeGroup name="HotelReferenceAttributes">
            <xs:attribute name="chainCode" type="xs:string" use="optional">
                  <xs:annotation>
                        <xs:documentation xml:lang="en">The code that identifies a hotel chain or management group. The hotel chain code is decided between vendors.  This attribute is optional if the hotel is an independent property that can be identified by the HotelCode attribute.</xs:documentation>
                  </xs:annotation>
            </xs:attribute>
            <xs:attribute name="brandCode" type="xs:string" use="optional">
                  <xs:annotation>
                        <xs:documentation xml:lang="en">A code that identifies the brand or flag of a hotel, often used for independently-owned or franchised properties who are known by a specific brand.</xs:documentation>
                  </xs:annotation>
            </xs:attribute>
            <xs:attribute name="hotelCode" type="xs:string" use="required">
                  <xs:annotation>
                        <xs:documentation xml:lang="en">The code that uniquely identifies a single hotel property. The hotel code is decided between vendors.</xs:documentation>
                  </xs:annotation>
            </xs:attribute>
            <xs:attribute name="hotelName" type="xs:string" use="optional">
                  <xs:annotation>
                        <xs:documentation xml:lang="en">The full, proper ordered name for the property code indicated.</xs:documentation>
                  </xs:annotation>
            </xs:attribute>
            <xs:attribute name="areaId" type="xs:string" use="optional"/>
            <xs:attribute name="cityCode" type="xs:string" use="optional">
                  <xs:annotation>
                        <xs:documentation xml:lang="en">Hotel City</xs:documentation>
                  </xs:annotation>
            </xs:attribute>
            <xs:attribute name="countryCode" type="xs:string" use="optional"/>
      </xs:attributeGroup>
      <xs:complexType name="HotelUniqueId">
            <xs:annotation>
                  <xs:documentation xml:lang="en">HotelReservationID
The HotelReservationID  object contains various unique (ReservationID) and non unique (ConfirmationID, CancellationID) identifiers that the trading partners associate to the reservation</xs:documentation>
            </xs:annotation>
            <xs:attribute name="idType" use="required">
                  <xs:annotation>
                        <xs:documentation xml:lang="en">ResIDType : ResIDType
An enumerated type that defines the type of  Reservation ID.
</xs:documentation>
                  </xs:annotation>
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="Account"/>
                              <xs:enumeration value="PNR"/>
                              <xs:enumeration value="Locator"/>
                              <xs:enumeration value="GNR"/>
                              <xs:enumeration value="Folio"/>
                              <xs:enumeration value="Confirmation"/>
                              <xs:enumeration value="Reservation"/>
                              <xs:enumeration value="Cancellation"/>
                              <xs:enumeration value="ClientId"/>
                              <xs:enumeration value="Other"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="otherIdType" type="xs:string" use="optional"/>
            <xs:attribute name="idValue" type="xs:string" use="required">
                  <xs:annotation>
                        <xs:documentation xml:lang="en">ResIDValue : String
This is the actual value associated with ResIDType as generated by the system that is the source of the ResIDType</xs:documentation>
                  </xs:annotation>
            </xs:attribute>
            <xs:attribute name="idSource" type="xs:string" use="optional">
                  <xs:annotation>
                        <xs:documentation xml:lang="en">ResIDSource : String
A unique identifier to indicate the source system which generated the ResIDValue</xs:documentation>
                  </xs:annotation>
            </xs:attribute>
            <xs:attribute name="idSourceType" type="xs:string" use="optional"/>
            <xs:attribute name="forGuest" type="xs:boolean" use="optional" default="false">
                  <xs:annotation>
                        <xs:documentation xml:lang="en">ForGuest : Boolean
Boolean used to determine if the ResIDValue is given to guest</xs:documentation>
                  </xs:annotation>
            </xs:attribute>
            <xs:attribute name="resGuestRPH" type="xs:integer" use="optional">
                  <xs:annotation>
                        <xs:documentation xml:lang="en">ResGuestRPH : Integer
This is a reference placeholder, used as an index for this guest in this reservation. In the ResGuest object it is used like all other RPH attributes to send the delta of a reservation.
It is used by the RoomStay and Service objects to indicate which guests are associated with that room stay or service.  It is also used to link a guest with a ReservationID</xs:documentation>
                  </xs:annotation>
            </xs:attribute>
      </xs:complexType>
      <xs:simpleType name="infoType">
            <xs:restriction base="xs:string">
                  <xs:enumeration value="Description"/>
                  <xs:enumeration value="Policy"/>
                  <xs:enumeration value="Marketing"/>
                  <xs:enumeration value="SpecialInstructions"/>
                  <xs:enumeration value="Other"/>
            </xs:restriction>
      </xs:simpleType>
      <xs:attributeGroup name="ChannelMessagePriority">
            <xs:annotation>
                  <xs:documentation>Encapsulates gds message type / message priority handling.</xs:documentation>
            </xs:annotation>
            <xs:attribute name="priority" use="optional">
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="gdsTypeA"/>
                              <xs:enumeration value="gdsTypeB"/>
                              <xs:enumeration value="wwwChannel"/>
                              <xs:enumeration value="wwwBooking"/>
                              <xs:enumeration value="Other"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="otherPriority" type="xs:string"/>
      </xs:attributeGroup>
      <xs:complexType name="Paragraph">
            <xs:complexContent>
                  <xs:extension base="DescriptiveText">
                        <xs:attribute name="paragraphNumber" type="xs:int" use="optional"/>
                  </xs:extension>
            </xs:complexContent>
      </xs:complexType>
      <xs:attributeGroup name="PaymentMethodAttributes">
            <xs:attribute name="paymentMethod" type="paymentMethodType" use="required"/>
            <xs:attribute name="otherPaymentMethod" type="xs:string" use="optional"/>
      </xs:attributeGroup>
      <xs:simpleType name="paymentMethodType">
            <xs:restriction base="xs:string">
                  <xs:enumeration value="CreditCard"/>
                  <xs:enumeration value="DirectBill"/>
                  <xs:enumeration value="Voucher"/>
                  <xs:enumeration value="Other"/>
            </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="PersonName">
            <xs:annotation>
                  <xs:documentation xml:lang="en">Construct to hold a full person name</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                  <xs:element name="namePrefix" type="xs:string" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                              <xs:documentation xml:lang="en">Salutation of honorific. (e.g., Mr. Mrs., Ms., Miss, Dr., etc.) </xs:documentation>
                        </xs:annotation>
                  </xs:element>
                  <xs:element name="givenName" type="xs:string" minOccurs="0">
                        <xs:annotation>
                              <xs:documentation xml:lang="en">Given name, first name or names</xs:documentation>
                        </xs:annotation>
                  </xs:element>
                  <xs:element name="middleName" type="xs:string" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                              <xs:documentation xml:lang="en">The middle name of the person name</xs:documentation>
                        </xs:annotation>
                  </xs:element>
                  <xs:element name="nameSuffix" type="xs:string" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                              <xs:documentation xml:lang="en">Hold various name suffixes and letters e.g., Jr., Sr., III, Ret., Esq., etc.)</xs:documentation>
                        </xs:annotation>
                  </xs:element>
                  <xs:element name="surnamePrefix" type="xs:string" minOccurs="0">
                        <xs:annotation>
                              <xs:documentation xml:lang="en">"van der", "von", "de", etc.</xs:documentation>
                        </xs:annotation>
                  </xs:element>
                  <xs:element name="surname" type="xs:string">
                        <xs:annotation>
                              <xs:documentation xml:lang="en">Family name, last name. Required for identification of the individual in the profile. </xs:documentation>
                        </xs:annotation>
                  </xs:element>
                  <xs:element name="nameTitle" type="xs:string" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                              <xs:documentation xml:lang="en">Degree or honors (e.g., Ph.D., M.D., etc.)   </xs:documentation>
                        </xs:annotation>
                  </xs:element>
                  <xs:element name="nameOrdered" type="xs:string" minOccurs="0">
                        <xs:annotation>
                              <xs:documentation xml:lang="en">Complete and full name, in order.</xs:documentation>
                        </xs:annotation>
                  </xs:element>
            </xs:sequence>
      </xs:complexType>
      <xs:element name="PhoneData">
            <xs:annotation>
                  <xs:documentation>Encapsulates telephone number data as individual bits.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:attribute name="phoneTechType" type="xs:string" use="optional"/>
                  <xs:attribute name="countryAccessCode" type="xs:string" use="optional"/>
                  <xs:attribute name="areaCityCode" type="xs:string" use="optional"/>
                  <xs:attribute name="phoneNumber" type="xs:string" use="optional"/>
                  <xs:attribute name="extension" type="xs:string" use="optional"/>
                  <xs:attribute name="PIN" type="xs:string" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="PhoneNumber" type="xs:string">
            <xs:annotation>
                  <xs:documentation>Single phone number element encompassing country code, area code, number, ext. etc</xs:documentation>
            </xs:annotation>
      </xs:element>
      <xs:element name="POS">
            <xs:annotation>
                  <xs:documentation xml:lang="en">POS defines the identity of the party that is connecting to the system and is making a request</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="Source" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:element name="Position">
            <xs:complexType>
                  <xs:attribute name="latitude" type="xs:string"/>
                  <xs:attribute name="longitude" type="xs:string"/>
                  <xs:attribute name="altitude" type="xs:string"/>
            </xs:complexType>
      </xs:element>
      <xs:attributeGroup name="PrivacyAttributes">
            <xs:attribute name="privacyIndicator" use="optional">
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="yes"/>
                              <xs:enumeration value="no"/>
                              <xs:enumeration value="inherit"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="privacyMarketingIndicator" use="optional">
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="yes"/>
                              <xs:enumeration value="no"/>
                              <xs:enumeration value="inherit"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="privacySynchIndicator" use="optional">
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="yes"/>
                              <xs:enumeration value="no"/>
                              <xs:enumeration value="inherit"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
      </xs:attributeGroup>
      <xs:attributeGroup name="ProfileTypeAttributes">
            <xs:attribute name="profileType" use="required">
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="Customer"/>
                              <xs:enumeration value="GDS"/>
                              <xs:enumeration value="Corporation"/>
                              <xs:enumeration value="Trvl_Agnt"/>
                              <xs:enumeration value="Wholesaler"/>
                              <xs:enumeration value="Group"/>
                              <xs:enumeration value="TourOperator"/>
                              <xs:enumeration value="CRO"/>
                              <xs:enumeration value="RepCompany"/>
                              <xs:enumeration value="InternetBroker"/>
                              <xs:enumeration value="Airline"/>
                              <xs:enumeration value="Hotel"/>
                              <xs:enumeration value="CarRental"/>
                              <xs:enumeration value="CruiseLine"/>
                              <xs:enumeration value="Employee"/>
                              <xs:enumeration value="Other"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="otherProfileType" type="xs:string" use="optional"/>
      </xs:attributeGroup>
      <xs:complexType name="PropertyLocation">
            <xs:sequence>
                  <xs:element name="HotelAddresses">
                        <xs:complexType>
                              <xs:sequence>
                                    <xs:element name="HotelAddress" type="AddressData" maxOccurs="unbounded"/>
                              </xs:sequence>
                        </xs:complexType>
                  </xs:element>
                  <xs:element name="HotelContacts"/>
            </xs:sequence>
      </xs:complexType>
      <xs:attributeGroup name="RatePlanAttributes">
            <xs:attribute name="ratePlanCode" type="xs:string" use="optional">
                  <xs:annotation>
                        <xs:documentation xml:lang="en">A string value may be used to request a particular code or an ID if the guest qualifies for a specific rate, such as AARP, AAA, a corporate rate, etc., or to specify a negotiated code as a result of a negotiated rate. This is not a persistent value, therefore no length is defined for the string.</xs:documentation>
                  </xs:annotation>
            </xs:attribute>
            <xs:attribute name="converted" type="xs:boolean" use="optional"/>
            <xs:attribute name="ratePlanCategory" type="xs:string" use="optional"/>
            <xs:attribute name="ratePlanId" type="xs:string" use="optional"/>
            <xs:attribute name="ratePlanType" use="optional">
                  <xs:annotation>
                        <xs:documentation xml:lang="en">An enumerated type that allows the query to specify a rate category type, and provides major categories for comparison across brands.</xs:documentation>
                  </xs:annotation>
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="Standard"/>
                              <xs:enumeration value="Club"/>
                              <xs:enumeration value="Corporate"/>
                              <xs:enumeration value="Deluxe"/>
                              <xs:enumeration value="Premium"/>
                              <xs:enumeration value="Economy"/>
                              <xs:enumeration value="Family"/>
                              <xs:enumeration value="Govt"/>
                              <xs:enumeration value="TrvlIndustry"/>
                              <xs:enumeration value="Military"/>
                              <xs:enumeration value="Senior"/>
                              <xs:enumeration value="Promotion"/>
                              <xs:enumeration value="SuperSaver"/>
                              <xs:enumeration value="Volume"/>
                              <xs:enumeration value="Weekend"/>
                              <xs:enumeration value="Group"/>
                              <xs:enumeration value="Negotiated"/>
                              <xs:enumeration value="Package"/>
                              <xs:enumeration value="TrvlAgent"/>
                              <xs:enumeration value="Convention"/>
                              <xs:enumeration value="Tour"/>
                              <xs:enumeration value="ALL"/>
                              <xs:enumeration value="Priveleged"/>
                              <xs:enumeration value="FrequentGuest"/>
                              <xs:enumeration value="SearchQualifier"/>
                              <xs:enumeration value="AirlineFrequentTraveller"/>
                              <xs:enumeration value="AutoFrequentTraveller"/>
                              <xs:enumeration value="IATA"/>
                              <xs:enumeration value="psuedoCityCode"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
      </xs:attributeGroup>
      <xs:attributeGroup name="ReservationActionTypeAttributes">
            <xs:attribute name="reservationActionType" use="optional">
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="New"/>
                              <xs:enumeration value="Update"/>
                              <xs:enumeration value="Cancel"/>
                              <xs:enumeration value="Delete"/>
                              <xs:enumeration value="Commit"/>
                              <xs:enumeration value="Ignore"/>
                              <xs:enumeration value="Other"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="otherReservationActionType" type="xs:string" use="optional"/>
      </xs:attributeGroup>
      <xs:attributeGroup name="ReservationStatusTypeAttributes">
            <xs:attribute name="reservationStatusType" use="optional">
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="Reserved"/>
                              <xs:enumeration value="Requested"/>
                              <xs:enumeration value="RequestDenied"/>
                              <xs:enumeration value="Cancelled"/>
                              <xs:enumeration value="CommitConfirmed"/>
                              <xs:enumeration value="LegCancelled"/>
                              <xs:enumeration value="IgnoreConfirmed"/>
                              <xs:enumeration value="InHouse"/>
                              <xs:enumeration value="CheckedOut"/>
                              <xs:enumeration value="Other"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="otherReservationStatusType" type="xs:string" use="optional"/>
      </xs:attributeGroup>
      <xs:attributeGroup name="RoomTypeAttributes">
            <xs:attribute name="roomType" type="xs:string" use="optional"/>
            <xs:attribute name="roomTypeCode" type="xs:string" use="optional"/>
            <xs:attribute name="roomId" type="xs:string" use="optional"/>
            <xs:attribute name="roomCategoryCode" type="xs:string" use="optional"/>
            <xs:attribute name="promoCode" type="xs:string" use="optional"/>
            <xs:attribute name="invBlockCode" type="xs:string" use="optional"/>
            <xs:attribute name="quantity" type="xs:int" use="optional"/>
      </xs:attributeGroup>
      <xs:complexType name="SearchCriterion">
            <xs:choice>
                  <xs:element ref="AddressSearch" minOccurs="0"/>
                  <xs:element ref="GeoSearch" minOccurs="0"/>
                  <xs:element name="Telephone" type="BaseTelephone" minOccurs="0"/>
                  <xs:element ref="HotelAreaSearch" minOccurs="0"/>
                  <xs:element ref="HotelNameSearch" minOccurs="0"/>
                  <xs:element ref="CodeRef" minOccurs="0"/>
                  <xs:element name="Amenity" type="Amenity" minOccurs="0"/>
            </xs:choice>
            <xs:attribute name="searchCriterionRPH" type="xs:int" use="required"/>
            <xs:attribute name="exactMatch" type="xs:boolean" use="optional"/>
            <xs:attribute name="importance" use="optional">
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="Mandatory"/>
                              <xs:enumeration value="High"/>
                              <xs:enumeration value="Medium"/>
                              <xs:enumeration value="Low"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
      </xs:complexType>
      <xs:complexType name="SearchCriterionMatch">
            <xs:attribute name="searchCriterionRPH" type="xs:int" use="required"/>
            <xs:attribute name="match" type="xs:boolean" use="required"/>
            <xs:attribute name="relevance" use="required">
                  <xs:simpleType>
                        <xs:restriction base="xs:decimal">
                              <xs:maxInclusive value="100.00"/>
                              <xs:minInclusive value="0.00"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
      </xs:complexType>
      <xs:element name="Source">
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="UniqueId" minOccurs="0"/>
                        <xs:element ref="Position" minOccurs="0"/>
                        <xs:element ref="BookingChannel" minOccurs="0"/>
                  </xs:sequence>
                  <xs:attribute name="sourceType" use="required">
                        <xs:simpleType>
                              <xs:restriction base="xs:string">
                                    <xs:enumeration value="Agent"/>
                                    <xs:enumeration value="GDS"/>
                                    <xs:enumeration value="SignatureGDS"/>
                                    <xs:enumeration value="Switch"/>
                                    <xs:enumeration value="Web"/>
                                    <xs:enumeration value="Other"/>
                              </xs:restriction>
                        </xs:simpleType>
                  </xs:attribute>
                  <xs:attribute name="otherSourceType" type="xs:string" use="optional"/>
                  <xs:attribute name="agentSine" type="xs:string" use="optional"/>
                  <xs:attribute name="pseudoCityCode" type="xs:string" use="optional"/>
                  <xs:attribute name="agentCity" type="xs:string" use="optional"/>
                  <xs:attribute name="agentCountry" type="xs:string" use="optional"/>
                  <xs:attribute name="currency" type="xs:string" use="optional"/>
                  <xs:attribute name="agentDutyCode" type="xs:string" use="optional"/>
                  <xs:attribute name="carrierCode" type="xs:string" use="optional"/>
                  <xs:attribute name="airportCode" type="xs:string" use="optional"/>
                  <xs:attribute name="firstDepartPoint" type="xs:string" use="optional"/>
                  <xs:attribute name="ERSPUserId" type="xs:string" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:complexType name="StayDateRange">
            <xs:choice>
                  <xs:element name="HardDateRange">
                        <xs:complexType>
                              <xs:attribute name="startDate" type="xs:date" use="required"/>
                              <xs:attribute name="endDate" type="xs:date" use="required"/>
                              <xs:attribute name="los" type="xs:int" use="optional"/>
                        </xs:complexType>
                  </xs:element>
                  <xs:element name="SoftDateRange">
                        <xs:complexType>
                              <xs:attribute name="minLos" type="xs:int" use="optional"/>
                              <xs:attribute name="maxLos" type="xs:int" use="optional"/>
                              <xs:attribute name="earliestEndDate" type="xs:dateTime" use="optional"/>
                              <xs:attribute name="latestEndDate" type="xs:dateTime" use="optional"/>
                              <xs:attribute name="earliestStartDate" type="xs:dateTime" use="optional"/>
                              <xs:attribute name="latestStartDate" type="xs:dateTime" use="optional"/>
                              <xs:attribute name="arrivalDOW" type="DOW" use="optional"/>
                              <xs:attribute name="departureDOW" type="DOW" use="optional"/>
                        </xs:complexType>
                  </xs:element>
            </xs:choice>
      </xs:complexType>
      <xs:complexType name="SuipplementalData" mixed="true"/>
      <xs:element name="SupplementalData" type="DescriptiveText">
            <xs:annotation>
                  <xs:documentation>Element wrapper</xs:documentation>
            </xs:annotation>
      </xs:element>
      <xs:element name="TargetGDS">
            <xs:complexType>
                  <xs:simpleContent>
                        <xs:extension base="xs:string">
                              <xs:attribute name="airlineAddress" type="xs:string" use="optional"/>
                        </xs:extension>
                  </xs:simpleContent>
            </xs:complexType>
      </xs:element>
      <xs:complexType name="Telephone">
            <xs:annotation>
                  <xs:documentation>Wrapper to BaseTelephone to provide type and privacy data.</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                  <xs:extension base="BaseTelephone">
                        <xs:attributeGroup ref="PrivacyAttributes"/>
                  </xs:extension>
            </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Text">
            <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                        <xs:attribute name="formatted" type="xs:boolean" use="optional"/>
                        <xs:attribute name="language" type="xs:language" use="optional"/>
                  </xs:extension>
            </xs:simpleContent>
      </xs:complexType>
      <xs:complexType name="TextSection">
            <xs:sequence>
                  <xs:element name="SubSection" type="TextSubSection" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="title" type="xs:string" use="optional"/>
            <xs:attribute name="language" type="xs:language" use="optional"/>
      </xs:complexType>
      <xs:complexType name="TextSubSection">
            <xs:sequence>
                  <xs:element name="Paragraph" type="Paragraph" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="subTitle" type="xs:string" use="optional"/>
            <xs:attribute name="subCode" type="xs:string" use="optional"/>
            <xs:attribute name="subSectionNumber" type="xs:int" use="optional"/>
            <xs:attribute name="language" type="xs:language" use="optional"/>
      </xs:complexType>
      <xs:element name="TimeSpan">
            <xs:annotation>
                  <xs:documentation xml:lang="en">Represents a time slice.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:attribute name="start" type="xs:dateTime" use="required"/>
                  <xs:attribute name="end" type="xs:dateTime" use="optional"/>
                  <xs:attribute name="duration" type="xs:int" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:complexType name="TPE_Extensions">
            <xs:annotation>
                  <xs:documentation>Other infomration that may, in part or in whole be mutually agreed upon by transacting partners.</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                  <xs:restriction base="xs:anyType"/>
            </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="UniqueId">
            <xs:attribute name="url" type="xs:string" use="optional"/>
            <xs:attribute name="id" type="xs:string" use="required"/>
            <xs:attribute name="idType" use="optional">
                  <xs:simpleType>
                        <xs:restriction base="xs:string">
                              <xs:enumeration value="ARC"/>
                              <xs:enumeration value="CLIAA"/>
                              <xs:enumeration value="GDS"/>
                              <xs:enumeration value="IATA"/>
                              <xs:enumeration value="TIDS"/>
                              <xs:enumeration value="Other"/>
                        </xs:restriction>
                  </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="otherIdType" type="xs:string" use="optional"/>
            <xs:attribute name="instance" type="xs:string" use="optional"/>
            <xs:attribute name="discoveryUrl" type="xs:string" use="optional"/>
      </xs:complexType>
      <xs:element name="UniqueId" type="UniqueId"/>
      <xs:complexType name="URL">
            <xs:annotation>
                  <xs:documentation>Wrapper calss for BaseURL that provide for privacy attributes.</xs:documentation>
            </xs:annotation>
            <xs:simpleContent>
                  <xs:extension base="BaseURL">
                        <xs:attribute name="primary" type="xs:boolean" use="optional"/>
                        <xs:attributeGroup ref="PrivacyAttributes"/>
                  </xs:extension>
            </xs:simpleContent>
      </xs:complexType>
      <xs:element name="Vector">
            <xs:annotation>
                  <xs:documentation>Measure of distance, direction and scale from one location to another.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:attribute name="direction" use="optional">
                        <xs:simpleType>
                              <xs:restriction base="xs:string">
                                    <xs:enumeration value="North"/>
                                    <xs:enumeration value="NorthEast"/>
                                    <xs:enumeration value="East"/>
                                    <xs:enumeration value="SouthEast"/>
                                    <xs:enumeration value="South"/>
                                    <xs:enumeration value="SouthWest"/>
                                    <xs:enumeration value="West"/>
                                    <xs:enumeration value="NorthWest"/>
                                    <xs:enumeration value="Other"/>
                              </xs:restriction>
                        </xs:simpleType>
                  </xs:attribute>
                  <xs:attribute name="otherDirection" type="xs:string" use="optional"/>
                  <xs:attribute name="distance" type="xs:float" use="optional"/>
                  <xs:attribute name="units" use="optional">
                        <xs:simpleType>
                              <xs:restriction base="xs:string">
                                    <xs:enumeration value="Km"/>
                                    <xs:enumeration value="Mi"/>
                                    <xs:enumeration value="Other"/>
                              </xs:restriction>
                        </xs:simpleType>
                  </xs:attribute>
                  <xs:attribute name="otherUnit" type="xs:string" use="optional"/>
            </xs:complexType>
      </xs:element>
      <xs:element name="VendorPolicy">
            <xs:complexType>
                  <xs:complexContent>
                        <xs:extension base="DescriptiveText">
                              <xs:attribute name="policyType" use="required">
                                    <xs:simpleType>
                                          <xs:restriction base="xs:string">
                                                <xs:enumeration value="RateRules"/>
                                                <xs:enumeration value="MarketingInformation"/>
                                                <xs:enumeration value="DepositPolicy"/>
                                                <xs:enumeration value="Promotion"/>
                                                <xs:enumeration value="CommissionPolicy"/>
                                                <xs:enumeration value="GuaranteePolicy"/>
                                                <xs:enumeration value="Miscellaneous"/>
                                                <xs:enumeration value="PackageOptions"/>
                                                <xs:enumeration value="PenaltyPolicy"/>
                                                <xs:enumeration value="TASpecialRequest"/>
                                                <xs:enumeration value="TaxInformation"/>
                                                <xs:enumeration value="CancelPolicy"/>
                                                <xs:enumeration value="ProprietaryGDSCode"/>
                                                <xs:enumeration value="Other"/>
                                          </xs:restriction>
                                    </xs:simpleType>
                              </xs:attribute>
                              <xs:attribute name="otherPolicyType" type="xs:string" use="optional"/>
                        </xs:extension>
                  </xs:complexContent>
            </xs:complexType>
      </xs:element>
      <xs:element name="VendorPolicies">
            <xs:annotation>
                  <xs:documentation>Collection of Vendor Policy</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="VendorPolicy" maxOccurs="unbounded"/>
                  </xs:sequence>
            </xs:complexType>
      </xs:element>
      <xs:complexType name="WrittenConfInst">
            <xs:annotation>
                  <xs:documentation>Comment describing your root element</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                  <xs:element ref="SupplementalData" minOccurs="0"/>
                  <xs:element name="EMail" type="BaseEMail" minOccurs="0"/>
            </xs:sequence>
            <xs:attribute name="requested" type="xs:boolean" use="optional"/>
            <xs:attribute name="languageId" type="xs:string" use="optional"/>
            <xs:attribute name="addressName" type="xs:string" use="optional"/>
            <xs:attribute name="address" type="xs:string" use="optional"/>
            <xs:attribute name="telephone" type="xs:string" use="optional"/>
      </xs:complexType>
</xs:schema>
Avatar of TimB

ASKER

Here's my bindings file (which still doesn't work)..


<jxb:bindings version="1.0"
               xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
               xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <jxb:bindings schemaLocation="FIDELIO_HotelAvailRQ.xsd" node="/xs:schema">

    <jxb:schemaBindings>
      <jxb:package name="example"/>

      <jxb:nameXmlTransform>
        <!-- Systematically ensure that symbol space collisions
             between the element symbol space and other symbol
             spaces are resolved by appending "Element" to
             all element interfaces. This customization
             resolves name collision between element FooBar
           and complexType FooBar. The element interface
           for element <FooBar> is FooBarElement because of
             this customization. It will also correct all other
             collisions between element and type definition namespaces.
        -->
        <jxb:elementName suffix="Element"/>
       
       
      <jxb:typeName suffix="suffix" />
      <jxb:modelGroupName suffix="ModGroup" />
      <jxb:anonymousTypeName suffix="AnonTypeSuffix" />
       
      </jxb:nameXmlTransform>
    </jxb:schemaBindings>

   
 
       
   
   
 
  <!-- Resolve collision between XML name and Java keyword "class". -->
      <jxb:bindings node="//xs:attributeGroup[@name='PrivacyAttributes']">
        <!-- Customize Element interface name -->
        <jxb:class name="FidPrivacyAttributesGroup"/>
 
        <!-- Definition level customization:
             All references to this global element will be by this
             customized property name. -->
        <jxb:property name="PrivacyAttributes"/>
      </jxb:bindings>
 
      <jxb:bindings node="//xs:attributeGroup[@name='PrivacyAttributes']">
 
        <!-- resolve name collision with element "PrivacyIndicator" -->
        <jxb:bindings node=".//xs:attribute[@name='privacyIndicator']">
          <jxb:property name="privacyIndicatorAttribute"/>
        </jxb:bindings>
 
      </jxb:bindings> <!-- node="//xs:complexType[@name='PrivacyAttributes']" -->
    </jxb:bindings>
 
  </jxb:bindings>



Avatar of TimB

ASKER

Let me know if you need any of the other XSD's.  or anything else.

Thanks,
TimB
So can you modify profile.xsd?  Take out the problematic <xs:attributeGroup ref="PrivacyAttributes"/> ?

Or, in profile.xsd can your CreditCard use BaseCreditCard for a base type?  The CreditCard from Fidelio_CommonTypes doesn't add that much, as far as I can see.
Avatar of TimB

ASKER


I agree, I think there is something wrong with the XSD's that I'm using.

They do validate in XML spy (version 4.2) though.

The XSD's that I'm using are extended from a set of OTA schemas that are travel industry related XSD schemas. I think what has happened, is that the OTA schemas has a 'privicyAttributes' attrubute, and the extended schema that I'm using also has a 'privicyAttributes' attribute. I need to find a way to tell JAXB to use the definition of 'privicyAttributes' in the derived schema that I'm using, and not any previously defined 'privicyAttributes' attribute.

I did remove the definition, but JAXB still breaks then.

To be honest, I'd preffer not to mess with the XSD's.  The company that supplied the derived XSD's can see that they validate in XML spy, so they won't to change them. Which is a real pain for me.

If I remove the validation in my build .xml (as below):

<xjc schema="FIDELIO_HotelAvailRQ.xsd" binding="binding.xjb" target=".">
<arg value="-nv" />
</xjc>


When the ant task is run, I get:


[xjc] [ERROR] A property with the same name "PrivacySynchIndicator" is generated from more than one schema component.
[xjc] line 705 of FIDELIO_CommonTypes.xsd


-------------------

The "PrivacySynchIndicator" is defined inside "PrivicyAttriutes". I think that "PrivicyAttriutes" is defined twice - but I can't proove this.

Here is my bindings file:

-----------------------------------

<jxb:bindings version="1.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<jxb:bindings schemaLocation="FIDELIO_HotelAvailRQ.xsd" node="/xs:schema">

<jxb:schemaBindings>
<jxb:package name="example"/>

<jxb:nameXmlTransform>
<!-- Systematically ensure that symbol space collisions
between the element symbol space and other symbol
spaces are resolved by appending "Element" to
all element interfaces. This customization
resolves name collision between element FooBar
and complexType FooBar. The element interface
for element <FooBar> is FooBarElement because of
this customization. It will also correct all other
collisions between element and type definition namespaces.
-->
<jxb:elementName suffix="Element"/>


<jxb:typeName suffix="suffix" />
<jxb:modelGroupName suffix="ModGroup" />
<jxb:anonymousTypeName suffix="AnonTypeSuffix" />

</jxb:nameXmlTransform>
</jxb:schemaBindings>

<!-- Resolve collision between XML name and Java keyword "class". -->
<jxb:bindings node="//xs:attributeGroup[@name='PrivacyAttributes']">
<!-- Customize Element interface name -->
<jxb:class name="FidPrivacyAttributesGroup"/>

<!-- Definition level customization:
All references to this global element will be by this
customized property name. -->
<jxb:property name="PrivacyAttributes"/>
</jxb:bindings>

<jxb:bindings node="//xs:attributeGroup[@name='PrivacyAttributes']">

<!-- resolve name collision with element "PrivacyIndicator" -->
<jxb:bindings node=".//xs:attribute[@name='privacyIndicator']">
<jxb:property name="privacyIndicatorAttribute"/>
</jxb:bindings>

</jxb:bindings> <!-- node="//xs:complexType[@name='PrivacyAttributes']" -->
</jxb:bindings>

</jxb:bindings>

----------------------------------

I know I have either missed something out, or done something wrong, but don't know what.

...... On another note,

I have tried to make the classes using castor.  Castor managed to get through this probem ok, but did fall over elsewhere..

I use nine XSD's in total.  I can email them to you if you like?

TimB
I don't know castor very well.  For me it dies right away:
Exception in thread "main" java.lang.IllegalArgumentException: The prefix 'xml'
is reserved (XML 1.0 Specification) and cannot be declared.
        at org.exolab.castor.xml.Namespaces.addNamespace(Namespaces.java:130)
        at org.exolab.castor.xml.UnmarshalHandler.startPrefixMapping(UnmarshalHa
ndler.java:1953)
Avatar of TimB

ASKER

I have castor (castor-0.9.5.2).

I have a batch file (below) which runs it:

----------------------------------------------
java -classpath c:\lib\castor-0.9.5.2.jar;c:\lib\castor-0.9.5.2-xml.jar;c:\lib\xercesImpl-2.0.2.jar;c:\lib\jakarta-regexp-1.3.jar org.exolab.castor.builder.SourceGenerator -i D:\docs\Thistle\GWIZTransactionalXSDs\FIDELIO_HotelAvailRQ.xsd -dest d:\temp\castor2 -binding-file D:\docs\Thistle\GWIZTransactionalXSDs\element-binding.xml -f

---------------------------------------

element-binding.xml looks like this:


<?xml version="1.0"?>
<!-- This file contains the binding information -->
<!-- for the FIDELIO XML Schemas -->
<!-- It is meant to be used by the Castor Source Code Generator -->
<!-- This is the "element" bindings file -->

<cbf:binding
      xmlns:cbf="http://www.castor.org/SourceGenerator/Binding"
      defaultBindingType="element">

      <!-- define the {namespace,package} binding
      <cbf:package>
            <cbf:name>com.thistlehotels.gwizxml</cbf:name>
            <cbf:namespace>http://www.micros.com/2002A</cbf:namespace>
      </cbf:package> -->

      <!-- Define the classname <-> element mapping -->
      <namingXML>
            <elementName>
                <!-- No suffix for elements -->
                  <suffix>Element</suffix>
            </elementName>
            <complexTypeName>
                   <!-- Suffix "ComplexType" for complexType elements -->
                  <suffix>ComplexType</suffix>
            </complexTypeName>
            <modelGroupName>
                   <!-- Suffix "ModelGroup" for modelGroup elements -->
                  <suffix>ModelGroup</suffix>
            </modelGroupName>
      </namingXML>

</cbf:binding>
------------------------------------------------------------------------------


I also have a type binding file:


<?xml version="1.0"?>
<!-- This file contains the binding information -->
<!-- for the FIDELIO XML Schemas -->
<!-- It is meant to be used by the Castor Source Code Generator -->
<!-- This is the "type" bindings file -->

<cbf:binding
      xmlns:cbf="http://www.castor.org/SourceGenerator/Binding"
      defaultBindingType="type">

      <!-- define the {namespace,package} binding -->
      <cbf:package>
            <cbf:name>com.thistlehotels.gwizxml</cbf:name>
            <cbf:namespace>http://www.micros.com/2002A</cbf:namespace>
      </cbf:package>

</cbf:binding>


----------------------------------------------------------------

I'm learning castor too.  I'm not sure on whether I should be usinf the types or elements xml files.

It creates some classes, but they still contain errors....

Thanks,
TimB