<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  xmlns="http://www.tm-xml.org/XMLSchema"
  targetNamespace="http://www.tm-xml.org/XMLSchema"
  version="1.0"
  elementFormDefault="qualified"
  attributeFormDefault="unqualified">
  
<!-- ********************************************************************** -->
<!-- *                                                                    * -->
<!-- * TM-XML Version 1.2                                      2007-11-09 * --> 
<!-- *                                                                    * -->
<!-- *====================================================================* -->
<!-- *                                                                    * -->
<!-- * XML Schema for TM-XML Data Model for Trade Marks                   * -->
<!-- *                                                                    * -->
<!-- ********************************************************************** -->
  
<xs:annotation>
  <xs:documentation>TM-XML Version 1.2 Dated 9th November, 2007</xs:documentation>
</xs:annotation>


<!-- ====================================================================== -->
<!-- Include of external standard types                                     -->
<!-- ====================================================================== -->
<xs:include schemaLocation="external/ISOCountryCodeType-V2006.xsd"/>
<xs:include schemaLocation="external/ISOCurrencyCodeType-V2001.xsd"/>
<xs:include schemaLocation="external/ISOLanguageCodeType-V2002.xsd"/>
<xs:include schemaLocation="external/WIPOST3CodeType-V2007.xsd"/>



<!-- ********************************************************************** -->
<!-- ********************************************************************** -->
<!-- * TRANSACTION/MESSAGE TYPES LIBRARY ********************************** -->
<!-- ********************************************************************** -->
<!-- ********************************************************************** -->

<!-- ====================================================================== -->
<!-- Root Messages                                                          -->
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- Top Level Transaction for all Types of Message                         -->
<!-- ====================================================================== -->
<xs:element name="Transaction" type="TransactionType"/>


<!-- ====================================================================== -->
<!-- Filename    : TradeMarkApplication.xsd                                 -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="TradeMarkApplicationType">
  <xs:sequence>
    <xs:element name="RequestSoftware" type="RequestSoftwareType" minOccurs="0"/>

    <xs:element name="ApplicationFormName" type="xs:string" minOccurs="0"/>

    <xs:element name="RequestSearch" type="RequestSearchType" minOccurs="0"/>
    <xs:element name="RequestExamination" type="RequestExaminationType" minOccurs="0"/>

    <xs:element name="DocumentIncludedDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="DocumentIncluded" type="DocumentType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="TradeMarkDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="TradeMark" type="TradeMarkType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="PaymentDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="Payment" type="PaymentType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="ReimbursementDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="Reimbursement" type="ReimbursementType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="SignatoryDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="Signatory" type="SignatoryType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : TransactionBodyType.xsd                                  -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="TransactionBodyType">
  <xs:sequence>

    <xs:element name="TransactionErrorDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="TransactionError" type="TransactionErrorType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="TransactionContentDetails"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="TransactionIdentifier" type="xs:string" minOccurs="0"/>
          <xs:element name="TransactionCode" type="TransactionCodeType"/>
          <xs:element name="TransactionSubCode" type="TransactionSubCodeType" minOccurs="0"/>
          <xs:element name="TransactionData" type="TransactionDataType"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : TransactionDataType.xsd                                  -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="TransactionDataType">
  <xs:sequence>
    <xs:choice minOccurs="0">

      <!-- ================================================================= -->
      <!-- Trade Mark Application                                            -->
      <!-- ================================================================= -->
      <xs:element name="TradeMarkApplication" type="TradeMarkApplicationType"/>

      <!-- ================================================================= -->
      <!-- Set of Trade Marks                                                -->
      <!-- ================================================================= -->
      <xs:element name="TradeMarkDetails">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="TradeMark" type="TradeMarkType" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>

      <!-- ================================================================= -->
      <!-- Only Set of Applicants                                            -->
      <!-- ================================================================= -->
      <xs:element name="ApplicantDetails">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Applicant" type="ApplicantType" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>

      <!-- ================================================================= -->
      <!-- Only Set of Representatives                                       -->
      <!-- ================================================================= -->
      <xs:element name="RepresentativeDetails">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Representative" type="RepresentativeType" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>

      <!-- ================================================================= -->
      <!-- Set of Mark Records                                               -->
      <!-- ================================================================= -->
      <xs:element name="MarkRecordDetails">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MarkRecord" type="MarkRecordType" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>

      <!-- ================================================================= -->
      <!-- Set of Mark Record Relations                                      -->
      <!-- ================================================================= -->
      <xs:element name="MarkRecordRelationDetails">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MarkRecordRelation" type="MarkRecordRelationType" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>

      <!-- ================================================================= -->
      <!-- Set of Classification Terms                                       -->
      <!-- ================================================================= -->
      <xs:element name="ClassificationTermDetails">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ClassificationTerm" type="ClassificationTermType" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>

      <!-- ================================================================= -->
      <!-- Set of Term Synonym Relations                                     -->
      <!-- ================================================================= -->
      <xs:element name="TermSynonymRelationDetails">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="TermSynonymRelation" type="TermSynonymRelationType" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>

      <!-- ================================================================= -->
      <!-- Set of Term Translation Relations                                 -->
      <!-- ================================================================= -->
      <xs:element name="TermTranslationRelationDetails">
      <xs:complexType>
      <xs:sequence>
      <xs:element name="TermTranslationRelation" type="TermTranslationRelationType" maxOccurs="unbounded"/>
      </xs:sequence>
      </xs:complexType>
      </xs:element>

      <!-- ================================================================= -->
      <!-- Set of Appeals                                                    -->
      <!-- ================================================================= -->
      <xs:element name="AppealDetails">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Appeal" type="AppealType" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>

      <!-- ================================================================= -->
      <!-- Set of Decisions                                                  -->
      <!-- ================================================================= -->
      <xs:element name="DecisionDetails">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Decision" type="DecisionType" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>


      <!-- ================================================================= -->
      <!-- Set of Decision and Case Relations                                -->
      <!-- ================================================================= -->
      <xs:element name="DecisionCaseRelationDetails">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="DecisionCaseRelation" type="DecisionCaseRelationType" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>

    </xs:choice>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : TransactionErrorType.xsd                                 -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="TransactionErrorType">
  <xs:sequence>
    <xs:element name="TransactionErrorCode" type="xs:token" minOccurs="0"/>
    <xs:element name="TransactionErrorText" type="TextType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : TransactionHeaderType.xsd                                -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="TransactionHeaderType">
  <xs:sequence>

    <xs:element name="SenderDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RequestIdentifier" type="xs:string" minOccurs="0"/>
          <xs:element name="RequestLanguageCode" type="ISOLanguageCodeType" minOccurs="0"/>
          <xs:element name="RequestXSDVersion" type="xs:string" minOccurs="0"/>
          <xs:element name="RequestFilename" type="xs:string" minOccurs="0"/>
          <xs:element name="RequestStatus" type="xs:string" minOccurs="0"/>
          <xs:element name="RequestProducer" type="xs:string" minOccurs="0"/>
          <xs:choice minOccurs="0">
            <xs:element name="RequestProducerDate" type="xs:date"/>
            <xs:element name="RequestProducerDateTime" type="xs:dateTime"/>
          </xs:choice>
          <xs:element name="RequestReceivingOfficeCode" type="WIPOST3CodeType" minOccurs="0"/>

          <xs:element name="LoginInformation" type="LoginInformationType" minOccurs="0"/>

        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="ReceiverDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="ReceiverDateTime" type="xs:dateTime" minOccurs="0"/>
          <xs:element name="Comment" type="TextType" minOccurs="0"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : TransactionType.xsd                                      -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="TransactionType">
  <xs:sequence>

    <xs:element name="TransactionHeader" type="TransactionHeaderType" minOccurs="0"/>

      <!-- ================================================================= -->
      <!-- Trade mark transaction                                            -->
      <!-- ================================================================= -->
      <xs:element name="TradeMarkTransactionBody" type="TransactionBodyType" minOccurs="0" maxOccurs="unbounded"/>


    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>




<!-- ********************************************************************** -->
<!-- ********************************************************************** -->
<!-- * BUSINESS TYPES LIBRARY ********************************************* -->
<!-- ********************************************************************** -->
<!-- ********************************************************************** -->

<!-- ====================================================================== -->
<!-- Filename    : AddressBookType.xsd                                      -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="AddressBookType">
  <xs:sequence>
    <xs:element name="AddressLanguageCode" type="ISOLanguageCodeType" minOccurs="0"/>
    <xs:choice minOccurs="0">
      <xs:element name="FreeFormatAddressDetails"> 
        <xs:complexType> 
          <xs:sequence> 
            <xs:element name="FreeFormatNameAddressLine" type="TextType" maxOccurs="unbounded"/>
          </xs:sequence> 
        </xs:complexType> 
      </xs:element> 
      <xs:element name="FormattedNameAddress" type="FormattedNameAddressType"/>
    </xs:choice>
    <xs:element name="ContactInformationDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="Phone" type="PhoneType" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="Fax" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="Email" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="URL" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="OtherElectronicAddress" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 
    <xs:element name="PostalAddress" type="xs:string" minOccurs="0"/>
    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : AddressType.xsd                                          -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="AddressType">
  <xs:sequence>
    <xs:element name="AddressCountryCode" type="ISOCountryCodeType" minOccurs="0"/>
    <xs:choice minOccurs="0">
      <xs:element name="FreeFormatAddress"> 
        <xs:complexType> 
          <xs:sequence> 
            <xs:element name="FreeFormatAddressLine" type="TextType" maxOccurs="unbounded"/>
          </xs:sequence> 
        </xs:complexType> 
      </xs:element> 
      <xs:element name="FormattedAddress">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="AddressLine" type="TextType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="AddressMailCode" type="xs:string" minOccurs="0"/>
            <xs:element name="AddressPostOfficeBox" type="xs:string" minOccurs="0"/>
            <xs:element name="AddressRoom" type="xs:string" minOccurs="0"/>
            <xs:element name="AddressFloor" type="xs:string" minOccurs="0"/>
            <xs:element name="AddressBuilding" type="xs:string" minOccurs="0"/>
            <xs:element name="AddressStreet" type="xs:string" minOccurs="0"/>
            <xs:element name="AddressCity" type="xs:string" minOccurs="0"/>
            <xs:element name="AddressCounty" type="xs:string" minOccurs="0"/>
            <xs:element name="AddressState" type="xs:string" minOccurs="0"/>
            <xs:element name="AddressPostcode" type="xs:string" minOccurs="0"/>
            <xs:element name="FormattedAddressCountryCode" type="ISOCountryCodeType" minOccurs="0"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:choice>
    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : AppealEventType.xsd                                      -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="AppealEventType">
  <xs:sequence>
    <xs:choice minOccurs="0">
      <xs:element name="AppealEventDate" type="xs:date"/>
      <xs:element name="AppealEventDateTime" type="xs:dateTime"/>
    </xs:choice>
    <xs:element name="AppealEventCode" type="AppealEventCodeType"/>
    <xs:element name="AppealEventResponseDate" type="xs:date" minOccurs="0"/>
    <xs:element name="Comment" type="xs:string" minOccurs="0"/>
   
    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : AppealType.xsd                                           -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="AppealType">
  <xs:sequence>
    <xs:element name="AppealIdentifier" type="IdentifierType"/>
    <xs:element name="AppealDate" type="xs:date" minOccurs="0"/>
    <xs:element name="AppealReceptionDate" type="xs:date" minOccurs="0"/>
    <xs:element name="AppealReceptionIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="AppealReference" type="xs:string" minOccurs="0"/>
    <xs:element name="AppealLanguageCode" type="ISOLanguageCodeType" minOccurs="0"/>
    <xs:element name="AppealProceedingLanguageCode" type="ISOLanguageCodeType" minOccurs="0"/>
    <xs:element name="AppealPartiesKind" type="AppealPartiesKindType" minOccurs="0"/>
    <xs:element name="AppealGroundText" type="TextType" minOccurs="0"/>
    <xs:element name="RespondentReference" type="xs:string" minOccurs="0"/>
     
    <xs:element name="CaseReferenceDetails" minOccurs="0"> 
      <xs:complexType>
        <xs:sequence> 
          <xs:element name="CaseReference" type="CaseReferenceType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element>
    
    <xs:element name="ContestedDecisionPartialIndicator" type="xs:boolean" minOccurs="0"/>
    <xs:element name="ContestedDecisionPartText" type="TextType" minOccurs="0"/>
 
    <xs:element name="AppealCurrentStatusCode" type="AppealCurrentStatusCodeType" minOccurs="0"/>
    <xs:element name="AppealCurrentStatusDate" type="xs:date" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>
    
    <xs:element name="AppealExaminer" type="NameType" minOccurs="0"/>
    <xs:element name="AppealRapporteur" type="NameType" minOccurs="0"/>
        
    <xs:element name="AppellantDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="AppellantKey" type="KeyType" maxOccurs="unbounded"/>
            <xs:element name="Appellant" type="AppellantType" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RepresentativeDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="RepresentativeKey" type="KeyType" maxOccurs="unbounded"/>
            <xs:element name="Representative" type="RepresentativeType" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element>

    <xs:element name="RespondentDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="RespondentKey" type="KeyType" maxOccurs="unbounded"/>
            <xs:element name="Respondent" type="RespondentType" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element>

    <xs:element name="AppealEventDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="AppealEvent" type="AppealEventType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 
    
    <xs:element name="AppealDocumentDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="AppealDocument" type="DocumentType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element>
    
    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : AppellantType.xsd                                        -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="AppellantType">
  <xs:sequence>
    <xs:element name="AppellantIdentifier" type="IdentifierType" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="AppellantSequenceNumber" type="xs:integer" minOccurs="0"/>
    <xs:element name="AppellantNationalityCode" type="NationalityCodeType" minOccurs="0"/>
    <xs:element name="AppellantLegalEntity" type="xs:string" minOccurs="0"/>
    <xs:element name="AppellantIncorporationCountryCode" type="ISOCountryCodeType" minOccurs="0"/>
    <xs:element name="AppellantIncorporationState" type="xs:string" minOccurs="0"/>
    <xs:element name="Comment" type="xs:string" minOccurs="0"/>
    <xs:element name="AppellantAddressBook" type="AddressBookType" minOccurs="0"/>
    <xs:element name="AppellantEntitlement" type="EntitlementType" minOccurs="0"/>

    <xs:element name="AppellantVersion" type="VersionType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
  <xs:attribute name="operationCode" type="OperationCodeType" use="optional"/>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : ApplicantType.xsd                                        -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="ApplicantType">
  <xs:sequence>
    <xs:element name="ApplicantIdentifier" type="IdentifierType" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="ApplicantSequenceNumber" type="xs:integer" minOccurs="0"/>
    <xs:element name="ApplicantNationalityCode" type="NationalityCodeType" minOccurs="0"/>
    <xs:element name="ApplicantLegalEntity" type="xs:string" minOccurs="0"/>
    <xs:element name="ApplicantIncorporationCountryCode" type="ISOCountryCodeType" minOccurs="0"/>
    <xs:element name="ApplicantIncorporationState" type="xs:string" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>
    <xs:element name="ApplicantAddressBook" type="AddressBookType" minOccurs="0"/>
    <xs:element name="ApplicantEntitlement" type="EntitlementType" minOccurs="0"/>

    <xs:element name="ApplicantVersion" type="VersionType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
  <xs:attribute name="operationCode" type="OperationCodeType" use="optional"/>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : AuthorizationType.xsd                                    -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="AuthorizationType">
  <xs:sequence>
    <xs:element name="AuthorizationIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="AuthorizationDate" type="xs:date" minOccurs="0"/>
    <xs:element name="AuthorizationKind" type="AuthorizationKindType" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>
    <xs:element name="AuthorizationDocumentSupply" type="AuthorizationDocumentSupplyType" minOccurs="0"/>
    <xs:element name="AuthorizationDocument" type="DocumentType" minOccurs="0"/>
    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : BasicApplicationType.xsd                                 -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="BasicApplicationType">
  <xs:sequence>
    <xs:element name="BasicApplicationNumber" type="xs:token" minOccurs="0"/>
    <xs:element name="BasicApplicationDate" type="xs:date" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : BasicRecordType.xsd                                      -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="BasicRecordType">
  <xs:sequence>
    <xs:element name="RecordIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="RecordFilingDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordNotificationDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordEffectiveDate" type="xs:date" minOccurs="0"/>
    <xs:element name="BasicRecordKind" type="BasicRecordKindType" minOccurs="0"/>

    <xs:element name="RecordReference" type="xs:string" minOccurs="0"/>
    <xs:element name="RecordLanguageCode" type="ExtendedISOLanguageCodeType" minOccurs="0"/>

    <xs:element name="TradeMarkKeyDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="TradeMarkKey" type="KeyType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordPublicationDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordPublication" type="PublicationType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="ClaimantDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="ClaimantKey" type="KeyType" maxOccurs="unbounded"/>
            <xs:element name="Claimant" type="ClaimantType" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RepresentativeDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="RepresentativeKey" type="KeyType" maxOccurs="unbounded"/>
            <xs:element name="Representative" type="RepresentativeType" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordEventDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordEvent" type="RecordEventType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordDocumentDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordDocument" type="DocumentType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordCurrentStatusCode" type="RecordCurrentStatusCodeType" minOccurs="0"/>
    <xs:element name="RecordCurrentStatusDate" type="xs:date" minOccurs="0"/>

    <xs:element name="FactDecisionText" type="TextType" minOccurs="0"/>

    <xs:element name="RecordInterestedOfficeCode" type="ExtendedWIPOST3CodeType" minOccurs="0"/>

    <xs:element name="RecordDesignatedCountryDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordDesignatedCountryCode" type="ExtendedWIPOST3CodeType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordUseIntentDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordUseIntentCountryCode" type="ExtendedWIPOST3CodeType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="GoodsServicesLimitationDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="GoodsServicesLimitation" type="GoodsServicesLimitationType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : BasicRegistrationApplicationType.xsd                           -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="BasicRegistrationApplicationType">
  <xs:sequence>

    <xs:element name="RegistrationOfficeCode" type="WIPOST3CodeType" minOccurs="0"/>

    <xs:element name="BasicApplicationDetails" minOccurs="0"> 
      <xs:complexType> 
              <xs:sequence> 
          <xs:element name="BasicApplication" type="BasicApplicationType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="BasicRegistrationDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="BasicRegistration" type="BasicRegistrationType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : BasicRegistrationType.xsd                                -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="BasicRegistrationType">
  <xs:sequence>
    <xs:element name="BasicRegistrationNumber" type="xs:token" minOccurs="0"/>
    <xs:element name="BasicRegistrationDate" type="xs:date" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : CardAccountType.xsd                                      -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="CardAccountType">
  <xs:sequence>
    <xs:element name="CardPrimaryAccountNumber" type="xs:string"/>
    <xs:element name="CardNetworkIdentifier" type="xs:string"/>
    <xs:element name="CardKindCode" type="CardKindCodeType" minOccurs="0"/>
    <xs:element name="CardCustomerIdentifier" type="xs:string" minOccurs="0"/> 
    <xs:element name="CardValidityStartDate" type="xs:date" minOccurs="0"/> 
    <xs:element name="CardExpiryDate" type="xs:date" minOccurs="0"/> 
    <xs:element name="CardIssuerIdentifier" type="xs:string" minOccurs="0"/>   
    <xs:element name="CardIssueNumber" type="xs:string" minOccurs="0"/>
    <xs:element name="CardCV2Identifier" type="xs:string" minOccurs="0"/>
    <xs:element name="CardChipCode" type="ChipCodeType" minOccurs="0"/>
    <xs:element name="CardChipApplicationIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="CardHolderName" type="TextType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : ClaimantType.xsd                                         -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="ClaimantType">
  <xs:sequence>
    <xs:element name="ClaimantIdentifier" type="IdentifierType" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="ClaimantSequenceNumber" type="xs:integer" minOccurs="0"/>
    <xs:element name="ClaimantNationalityCode" type="NationalityCodeType" minOccurs="0"/>
    <xs:element name="ClaimantLegalEntity" type="xs:string" minOccurs="0"/>
    <xs:element name="ClaimantIncorporationCountryCode" type="ISOCountryCodeType" minOccurs="0"/>
    <xs:element name="ClaimantIncorporationState" type="xs:string" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>
      <xs:element name="ClaimantAddressBook" type="AddressBookType" minOccurs="0"/>
    <xs:element name="ClaimantEntitlement" type="EntitlementType" minOccurs="0"/>
    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
  <xs:attribute name="operationCode" type="OperationCodeType" use="optional"/>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : ClassDescriptionType.xsd                                 -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="ClassDescriptionType">
  <xs:sequence>
    <xs:element name="ClassNumber" type="ClassNumberType" minOccurs="0"/>
    <xs:element name="ClassNumberStatusCode" type="ClassNumberStatusCodeType" minOccurs="0"/>
    <xs:element name="GoodsServicesDescription" type="TextType" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="UseNiceHeadingIndicator" type="xs:boolean" minOccurs="0"/>

    <xs:element name="ClassificationTermDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="ClassificationTerm" type="ClassificationTermType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : ClassificationTermType.xsd                               -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="ClassificationTermType">
  <xs:sequence>
    <xs:element name="ClassificationTermIdentifier" type="IdentifierType" minOccurs="0"/>
    <xs:element name="ClassificationTermOffice" type="WIPOST3CodeType" minOccurs="0"/>
    <xs:element name="ClassificationTermOfficeKey" type="xs:string" minOccurs="0"/>
    <xs:element name="ClassificationTermSource" type="ClassificationTermSourceType" minOccurs="0"/>
    <xs:element name="ClassificationTermEntryDate" type="xs:date" minOccurs="0"/>
    <xs:element name="ClassNumber" type="ClassNumberType" minOccurs="0"/>
    <xs:element name="ClassificationTermLanguageCode" type="ISOLanguageCodeType" minOccurs="0"/>
    <xs:element name="ClassificationTermText" type="TextType" minOccurs="0"/>
    <xs:element name="ClassificationTermEquivalentGroup" type="xs:string" minOccurs="0"/>
    <xs:element name="ClassificationTermReferenceGroup" type="xs:string" minOccurs="0"/>
    <xs:element name="ClassificationTermTranslationGroup" type="xs:string" minOccurs="0"/>
    <xs:element name="ClassificationTermStatus" type="ClassificationTermStatusType" minOccurs="0"/>
    <xs:element name="WIPOBasicNumber" type="WIPOBasicNumberType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>

  <xs:attribute name="operationCode" type="OperationCodeType" use="optional"/>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : CorrespondenceAddressKeyType.xsd                           -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="CorrespondenceAddressKeyType">
  <xs:sequence>
    <xs:element name="CorrespondenceAddressIdentifier" type="IdentifierType"/>
    <xs:element name="CorrespondenceAddressParty" type="CorrespondenceAddressPartyType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : CorrespondenceAddressType.xsd                            -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="CorrespondenceAddressType">
  <xs:sequence>
    <xs:element name="CorrespondenceAddressIdentifier" type="IdentifierType" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="CorrespondenceAddressParty" type="CorrespondenceAddressPartyType" minOccurs="0"/>
    <xs:element name="CorrespondenceAddressBook" type="AddressBookType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : DecisionCaseRelationType.xsd                             -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="DecisionCaseRelationType">
  <xs:sequence>
    <xs:element name="DecisionKey" type="xs:string"/>
    <xs:element name="CaseReferenceKey" type="CaseReferenceType"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : DecisionEventType.xsd                                    -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="DecisionEventType">
  <xs:sequence>
    <xs:choice minOccurs="0">
      <xs:element name="DecisionEventDate" type="xs:date"/>
      <xs:element name="DecisionEventDateTime" type="xs:dateTime"/>
    </xs:choice>
    <xs:element name="DecisionEventCode" type="DecisionEventCodeType"/>
    <xs:element name="DecisionEventResponseDate" type="xs:date" minOccurs="0"/>
    <xs:element name="Comment" type="xs:string" minOccurs="0"/>
  
    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : DecisionType.xsd                                         -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="DecisionType">
  <xs:sequence>
    <xs:element name="DecisionIdentifier" type="IdentifierType"/>
    <xs:element name="DecisionDate" type="xs:date" minOccurs="0"/>
    <xs:element name="DecisionText" type="TextType" minOccurs="0"/>
    <xs:element name="DecisionResponsible" type="DecisionResponsibleType" minOccurs="0"/>

    <xs:element name="CaseReferenceDetails" minOccurs="0"> 
      <xs:complexType>
        <xs:sequence> 
          <xs:element name="CaseReference" type="CaseReferenceType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType>
    </xs:element>

    <xs:element name="DecisionCurrentStatusCode" type="DecisionCurrentStatusCodeType" minOccurs="0"/>
    <xs:element name="DecisionCurrentStatusDate" type="xs:date" minOccurs="0"/>

    <xs:element name="DecisionEventDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="DecisionEvent" type="DecisionEventType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : DesignatedCountryType.xsd                                -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="DesignatedCountryType">
  <xs:sequence>
    <xs:element name="DesignatedCountryCode" type="ExtendedWIPOST3CodeType"/>
    <xs:element name="DesignatedUnderCode" type="DesignatedUnderCodeType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : DocumentType.xsd                                         -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="DocumentType">
  <xs:sequence>
    <xs:element name="DocumentName" type="xs:string" minOccurs="0"/>
    <xs:element name="DocumentFilename" type="xs:string" minOccurs="0"/>
    <xs:element name="DocumentFileFormat" type="FileFormatType" minOccurs="0"/>
    <xs:element name="DocumentDate" type="xs:date" minOccurs="0"/>
    <xs:element name="DocumentLanguageCode" type="ISOLanguageCodeType" minOccurs="0"/>
    <xs:element name="DocumentMedia" type="DocumentMediaType" minOccurs="0"/>
    <xs:element name="DocumentLocation" type="xs:string" minOccurs="0"/>
    <xs:element name="DocumentVersion" type="xs:string" minOccurs="0"/>
    <xs:element name="DocumentSizeInByte" type="xs:integer" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>

    <xs:element name="DocumentBinary" type="xs:base64Binary" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : EarlierMarkType.xsd                                      -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="EarlierMarkType">
  <xs:sequence>
    <xs:element name="EarlierMarkCountryCode" type="WIPOST3CodeType" minOccurs="0"/>
    <xs:element name="EarlierMarkKind" type="KindMarkType" minOccurs="0"/>

    <xs:element name="ApplicationNumber" type="xs:string" minOccurs="0"/>
    <xs:element name="ApplicationDate" type="xs:date" minOccurs="0"/>

    <xs:element name="RegistrationNumber" type="xs:string" minOccurs="0"/>
    <xs:element name="RegistrationDate" type="xs:date" minOccurs="0"/>

    <xs:element name="MarkFeature" type="MarkFeatureType" minOccurs="0"/>
    <xs:element name="WordMarkSpecification" type="WordMarkSpecificationType" minOccurs="0"/>

    <xs:element name="MarkImageDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="MarkImage" type="MarkImageType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="BaseGoodsServicesDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="GoodsServices" type="GoodsServicesType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : EntitlementType.xsd                                      -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="EntitlementType">
  <xs:sequence>
    <xs:element name="EntitlementNationalityCode" type="NationalityCodeType" minOccurs="0"/>

    <xs:element name="EntitlementEstablishment" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="EntitlementEstablishmentCode" type="NationalityCodeType" minOccurs="0"/>
          <xs:element name="EntitlementEstablishmentAddressBook" type="AddressBookType" minOccurs="0"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="EntitlementDomiciled" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="EntitlementDomiciledCode" type="NationalityCodeType" minOccurs="0"/>
          <xs:element name="EntitlementDomiciledAddressBook" type="AddressBookType" minOccurs="0"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : ExhibitionPriorityType.xsd                               -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="ExhibitionPriorityType">
  <xs:sequence>
    <xs:element name="ExhibitionCountryCode" type="ISOCountryCodeType" minOccurs="0"/>
    <xs:element name="ExhibitionCityName" type="xs:string" minOccurs="0"/>
    <xs:element name="ExhibitionName" type="xs:string" minOccurs="0"/>
    <xs:element name="ExhibitionDate" type="xs:date"/>
    <xs:element name="ExhibitionFirstDisplayDate" type="xs:date" minOccurs="0"/>
    <xs:element name="ExhibitionStatusCode" type="ExhibitionStatusCodeType" minOccurs="0"/>
    <xs:element name="ExhibitionStatusDate" type="xs:date" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>
    <xs:element name="ExhibitionDocument" type="DocumentType" minOccurs="0" maxOccurs="unbounded"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : FormattedNameAddressType.xsd                             -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="FormattedNameAddressType">
  <xs:sequence>
    <xs:element name="Name" type="NameType" minOccurs="0"/>
    <xs:element name="Address" type="AddressType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : FreeFormatNameType.xsd                                   -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="FreeFormatNameType">
  <xs:sequence>
    <xs:element name="NameKind" type="NameKindType" minOccurs="0"/>
      <xs:element name="FreeFormatNameDetails" minOccurs="0"> 
        <xs:complexType> 
          <xs:sequence> 
            <xs:element name="FreeFormatNameLine" type="TextType" maxOccurs="unbounded"/>
          </xs:sequence> 
        </xs:complexType> 
      </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : GoodsServicesLimitationType.xsd                           -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="GoodsServicesLimitationType">
  <xs:sequence>
    <xs:element name="LimitationCountryDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence>   
          <xs:element name="LimitationCountryCode" type="ExtendedWIPOST3CodeType" maxOccurs="unbounded"/>
        </xs:sequence>  
      </xs:complexType> 
    </xs:element> 
    <xs:element name="GoodsServicesLimitationCode" type="GoodsServicesLimitationCodeType" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>
    <xs:element name="LimitationClassDescriptionDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence>   
          <xs:element name="ClassDescription" type="ClassDescriptionType" maxOccurs="unbounded"/>
        </xs:sequence>  
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : GoodsServicesType.xsd                                    -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="GoodsServicesType">
  <xs:sequence>
    <xs:element name="ClassificationKindCode" type="ClassificationKindCodeType" minOccurs="0"/>
    <xs:element name="ClassificationVersion" type="xs:string" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>
    <xs:element name="ProposedLeadingClassNumber" type="ClassNumberType" minOccurs="0"/>
    <xs:element name="ClassDescriptionDetails"> 
      <xs:complexType> 
        <xs:sequence>   
          <xs:element name="ClassDescription" type="ClassDescriptionType" maxOccurs="unbounded"/>
        </xs:sequence>  
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : KeyType.xsd                                              -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="KeyType">
  <xs:sequence>
    <xs:element name="Identifier" type="IdentifierType" minOccurs="0" maxOccurs="unbounded"/>
    
    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : LicenceEventType.xsd                                     -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="LicenceEventType">
  <xs:sequence>
    <xs:choice minOccurs="0">
      <xs:element name="LicenceEventDate" type="xs:date"/>
      <xs:element name="LicenceEventDateTime" type="xs:dateTime"/>
    </xs:choice>
    <xs:element name="LicenceEventCode" type="LicenceEventCodeType"/>
    <xs:element name="LicenceEventResponseDate" type="xs:date" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : LicenceType.xsd                                          -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="LicenceType">
  <xs:sequence>
    <xs:element name="LicenceIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="LicenceDate" type="xs:date" minOccurs="0"/>
    <xs:element name="LicenceNumber" type="xs:string" minOccurs="0"/>
    <xs:element name="LicenceReference" type="xs:string" minOccurs="0"/>

    <xs:element name="LicenceKind" type="LicenceKindType" minOccurs="0"/>

    <xs:element name="SubLicenceIndicator" type="xs:boolean" minOccurs="0"/>
    <xs:element name="RelatedLicenceIdentifier" type="xs:string" minOccurs="0"/>

    <xs:element name="GoodsServicesLimitationIndicator" type="xs:boolean" minOccurs="0"/>
    <xs:element name="GoodsServicesLimitation" type="GoodsServicesLimitationType" minOccurs="0"/>

    <xs:element name="TerritoryLimitationIndicator" type="xs:boolean" minOccurs="0"/>
    <xs:element name="TerritoryLimitationText" type="TextType" minOccurs="0"/>

    <xs:element name="PeriodLimitationIndicator" type="xs:boolean" minOccurs="0"/>
    <xs:element name="PeriodLimitationText" type="TextType" minOccurs="0"/>
    <xs:element name="PeriodLimitationStartDate" type="xs:date" minOccurs="0"/>
    <xs:element name="PeriodLimitationEndDate" type="xs:date" minOccurs="0"/>

    <xs:element name="LicenceStatusCode" type="LicenceStatusCodeType" minOccurs="0"/>

    <xs:element name="LicenseeDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="Licensee" type="LicenseeType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RepresentativeDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="Representative" type="RepresentativeType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="LicenceEventDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="LicenceEvent" type="LicenceEventType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="LicenceDocumentDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="LicenceDocument" type="DocumentType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : LicenseeType.xsd                                         -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="LicenseeType">
  <xs:sequence>
    <xs:element name="LicenseeIdentifier" type="IdentifierType" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="LicenseeSequenceNumber" type="xs:integer" minOccurs="0"/>
    <xs:element name="LicenseeNationalityCode" type="NationalityCodeType" minOccurs="0"/>
    <xs:element name="LicenseeLegalEntity" type="xs:string" minOccurs="0"/>
    <xs:element name="LicenseeIncorporationCountryCode" type="ISOCountryCodeType" minOccurs="0"/>
    <xs:element name="LicenseeIncorporationState" type="xs:string" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>
      <xs:element name="LicenseeAddressBook" type="AddressBookType" minOccurs="0"/>
    <xs:element name="LicenseeEntitlement" type="EntitlementType" minOccurs="0"/>
    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
  <xs:attribute name="operationCode" type="OperationCodeType" use="optional"/>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : LoginInformationType.xsd                                 -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="LoginInformationType">
  <xs:sequence>
      <xs:element name="Login" type="xs:string" minOccurs="0"/>
      <xs:element name="LoginEmail" type="xs:string" minOccurs="0"/>
      <xs:element name="Password" type="xs:anySimpleType" minOccurs="0" maxOccurs="unbounded"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : MarkEventType.xsd                                        -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="MarkEventType">
  <xs:sequence>
    <xs:choice minOccurs="0">
      <xs:element name="MarkEventDate" type="xs:date"/>
      <xs:element name="MarkEventDateTime" type="xs:dateTime"/>
    </xs:choice>
    <xs:element name="MarkEventCode" type="MarkEventCodeType"/>
    <xs:element name="MarkEventResponseDate" type="xs:date" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : MarkImageCategoryType.xsd                                -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="MarkImageCategoryType">
  <xs:sequence>
    <xs:element name="CategoryKind" type="CategoryKindType" minOccurs="0"/>
    <xs:element name="CategoryVersion" type="xs:string" minOccurs="0"/>
    <xs:element name="CategoryCodeDetails"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="CategoryCode" type="CategoryCodeType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : MarkImageRenditionType.xsd                               -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="MarkImageRenditionType">
  <xs:sequence>
    <xs:element name="MarkImageRenditionKind" type="MarkImageRenditionKindType" minOccurs="0"/>
    <xs:element name="MarkImageRenditionFilename" type="xs:string" minOccurs="0"/>
    <xs:element name="MarkImageRenditionFileFormat" type="FileFormatType" minOccurs="0"/>
      <xs:element name="MarkImageRenditionColourMode" type="MarkImageColourModeType" minOccurs="0"/>

    <xs:element name="MarkImageRenditionRepresentationSize" type="RepresentationSizeType" minOccurs="0"/>

    <xs:element name="MarkImageRenditionBinary" type="xs:base64Binary" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : MarkImageType.xsd                                        -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="MarkImageType">
  <xs:sequence>
    <xs:element name="MarkImageFilename" type="xs:string" minOccurs="0"/>
    <xs:element name="MarkImageFileFormat" type="FileFormatType" minOccurs="0"/>
    <xs:choice minOccurs="0">
      <xs:element name="MarkImageColourIndicator" type="xs:boolean"/>
      <xs:element name="MarkImageColourMode" type="MarkImageColourModeType"/>
    </xs:choice>

    <xs:element name="MarkImageColourClaimedText" type="TextType" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="MarkImageColourPartClaimedText" type="TextType" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="MarkImageRepresentationSize" type="RepresentationSizeType" minOccurs="0"/>
    <xs:element name="MarkImageCategory" type="MarkImageCategoryType" minOccurs="0"/>

    <xs:element name="MarkImageQualityIndicator" type="xs:boolean" minOccurs="0"/>
    <xs:element name="MarkImageBinary" type="xs:base64Binary" minOccurs="0"/>

    <xs:element name="MarkImageRenditionDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="MarkImageRendition" type="MarkImageRenditionType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : MarkRecordRelationType.xsd                               -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="MarkRecordRelationType">
  <xs:sequence>
    <xs:element name="TradeMarkKey" type="KeyType"/>
    <xs:element name="RecordKey" type="KeyType"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : MarkRecordType.xsd                                       -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="MarkRecordType">
  <xs:sequence>
    <xs:choice minOccurs="0">
      <xs:element name="BasicRecord" type="BasicRecordType"/>
      <xs:element name="RecordOppositionPeriod" type="RecordOppositionPeriodType"/>
      <xs:element name="RecordTransfer" type="RecordTransferType"/>
      <xs:element name="RecordChangeNameAddress" type="RecordChangeNameAddressType"/>
      <xs:element name="RecordLicence" type="RecordLicenceType"/>
      <xs:element name="RecordNationalInternationalReplacement" type="RecordNationalInternationalReplacementType"/>
      <xs:element name="RecordShortNotation" type="RecordShortNotationType"/>

    </xs:choice>
    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : MarkSoundType.xsd                                        -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="MarkSoundType">
  <xs:sequence>
    <xs:element name="MarkSoundFilename" type="xs:string"/>
    <xs:element name="MarkSoundFileFormat" type="SoundFileFormatType" minOccurs="0"/>


    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>

</xs:complexType>




<!-- ====================================================================== -->
<!-- Filename    : NameType.xsd                                             -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="NameType">
  <xs:sequence>
    <xs:choice>
      <xs:element name="FreeFormatName" type="FreeFormatNameType"/>
      <xs:element name="FormattedName">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="NamePrefix" type="xs:string" minOccurs="0"/>
            <xs:element name="FirstName" type="xs:string" minOccurs="0"/>
            <xs:element name="MiddleName" type="xs:string" minOccurs="0"/>
            <xs:element name="LastName" type="xs:string" minOccurs="0"/>
            <xs:element name="SecondLastName" type="xs:string" minOccurs="0"/>
            <xs:element name="NameSuffix" type="xs:string" minOccurs="0"/>
            <xs:element name="Gender" type="GenderType" minOccurs="0"/>
            <xs:element name="IndividualIdentifier" type="IndividualIdentifierType" minOccurs="0"/>
            <xs:element name="PersonRole" type="xs:string" minOccurs="0"/>
            <xs:element name="OrganizationName" type="xs:string" minOccurs="0"/>
            <xs:element name="OrganizationDepartment" type="xs:string" minOccurs="0"/>
            <xs:element name="NameSynonym" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:choice>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : NationalMarkType.xsd                                     -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="NationalMarkType">
  <xs:sequence>
    <xs:element name="NationalMarkRegistrationNumber" type="xs:string"/>
    <xs:element name="NationalMarkFilingDate" type="xs:date" minOccurs="0"/>
    <xs:element name="NationalMarkRegistrationDate" type="xs:date" minOccurs="0"/>
    <xs:element name="NationalMarkPriorityDate" type="xs:date" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : OpponentType.xsd                                         -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="OpponentType">
  <xs:sequence>
    <xs:element name="OpponentIdentifier" type="IdentifierType" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="OpponentNationalityCode" type="NationalityCodeType" minOccurs="0"/>
    <xs:element name="OpponentLegalEntity" type="xs:string" minOccurs="0"/>
    <xs:element name="OpponentIncorporationCountryCode" type="ISOCountryCodeType" minOccurs="0"/>
    <xs:element name="OpponentIncorporationState" type="xs:string" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>
    <xs:element name="OpponentAddressBook" type="AddressBookType" minOccurs="0"/>
    <xs:element name="OpponentEntitlement" type="EntitlementType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : OppositionEventType.xsd                                  -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="OppositionEventType">
  <xs:sequence>
    <xs:choice minOccurs="0">
      <xs:element name="OppositionEventDate" type="xs:date"/>
      <xs:element name="OppositionEventDateTime" type="xs:dateTime"/>
    </xs:choice>
    <xs:element name="OppositionEventCode" type="OppositionEventCodeType"/>
    <xs:element name="OppositionEventResponseDate" type="xs:date" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : OppositionType.xsd                                       -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="OppositionType">
  <xs:sequence>
    <xs:element name="OppositionIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="OppositionDate" type="xs:date" minOccurs="0"/>
    <xs:element name="OppositionReference" type="xs:string" minOccurs="0"/>
    <xs:element name="OppositionLanguageCode" type="ISOLanguageCodeType" minOccurs="0"/>
    <xs:element name="ProceedingLanguageCode" type="ISOLanguageCodeType" minOccurs="0"/>
    <xs:element name="EarlierRightDate" type="xs:date" minOccurs="0"/>
    <xs:element name="EarlierRightKind" type="EarlierRightKindType" minOccurs="0"/>
    <xs:element name="OppositionBasisCode" type="OppositionBasisCodeType" minOccurs="0"/>
    <xs:element name="OppositionGroundText" type="TextType" minOccurs="0"/>
    <xs:element name="OppositionExtentText" type="TextType" minOccurs="0"/>

    <xs:element name="OppositionCurrentStatusCode" type="OppositionCurrentStatusCodeType" minOccurs="0"/>
    <xs:element name="OppositionCurrentStatusDate" type="xs:date" minOccurs="0"/>

    <xs:element name="EarlierMarkDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="EarlierMark" type="EarlierMarkType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="OpponentDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="Opponent" type="OpponentType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RepresentativeDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="Representative" type="RepresentativeType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="OppositionEventDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="OppositionEvent" type="OppositionEventType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="OppositionDocumentDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="OppositionDocument" type="DocumentType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : PaymentFeeType.xsd                                       -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="PaymentFeeType">
  <xs:sequence>
    <xs:element name="FeeIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="FeeReference" type="xs:string" minOccurs="0"/>
    <xs:element name="FeeAmount" type="AmountType"/>
    <xs:element name="FeeUnitQuantity" type="xs:decimal" minOccurs="0"/>
    <xs:element name="FeeUnitAmount" type="AmountType" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : PaymentMethodType.xsd                                    -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="PaymentMethodType">
  <xs:sequence>
    <xs:choice>
      <xs:element name="Account">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="AccountIdentifier" type="xs:string"/>
            <xs:element name="AccountKind" type="xs:string" minOccurs="0"/>
            <xs:element name="AccountHolderName" type="TextType" minOccurs="0"/>
            <xs:element name="AccountDebitKind" type="AccountDebitKindType" minOccurs="0"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CardAccount" type="CardAccountType"/>
      <xs:element name="Cheque">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ChequeIdentifier" type="xs:string"/>
            <xs:element name="ChequeKind" type="xs:string" minOccurs="0"/>
            <xs:element name="BankName" type="xs:string" minOccurs="0"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="BankTransfer">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="BankTransferIdentifier" type="xs:string"/>
            <xs:element name="BankTransferDate" type="xs:date"/>
            <xs:element name="OriginBankName" type="xs:string" minOccurs="0"/>
            <xs:element name="BankDestinationAccount" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="OtherPaymentMethod" type="xs:string" minOccurs="0"/>
    </xs:choice>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : PaymentType.xsd                                          -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="PaymentType">
  <xs:sequence>
    <xs:element name="PaymentIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="PaymentReference" type="xs:string" minOccurs="0"/>
    <xs:element name="PayerName" type="NameType" minOccurs="0"/>
    <xs:element name="PaymentStatus" type="PaymentStatusCodeType" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>

    <xs:element name="PaymentDate" type="xs:date" minOccurs="0"/>
    <xs:element name="PaymentMethod" type="PaymentMethodType" minOccurs="0"/>

    <xs:element name="PaymentFeeDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="PaymentFee" type="PaymentFeeType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : PreviousRegistrationType.xsd                             -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="PreviousRegistrationType">
  <xs:sequence>
    <xs:element name="RegistrationOfficeCode" type="WIPOST3CodeType" minOccurs="0"/>

    <xs:element name="PreviousRegistrationNumber" type="xs:string"/>
    <xs:element name="PreviousRegistrationDate" type="xs:date" minOccurs="0"/>

    <xs:element name="PreviousRegistrationBasis" type="PreviousRegistrationBasisType" minOccurs="0"/>

    <xs:element name="PreviousRegistrationCancellationDate" type="xs:date" minOccurs="0"/>
    <xs:element name="PreviousRegistrationPriorityDate" type="xs:date" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : PriorityType.xsd                                         -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="PriorityType">
  <xs:sequence>
    <xs:element name="PriorityCountryCode">
      <xs:simpleType>
        <xs:union memberTypes="WIPOST3CodeType WIPOFormerST3CodeType"/>  
      </xs:simpleType>
    </xs:element>
    <xs:element name="PriorityNumber" type="xs:string" minOccurs="0"/>
    <xs:element name="PriorityDate" type="xs:date" minOccurs="0"/>
    <xs:element name="PriorityHolderName" type="TextType" minOccurs="0"/>
    <xs:element name="PriorityPartialIndicator" type="xs:boolean" minOccurs="0" />
    <xs:element name="PriorityPartialGoodsServices" type="GoodsServicesType" minOccurs="0"/>
    <xs:element name="PriorityStatusCode" type="PriorityStatusCodeType" minOccurs="0"/>
    <xs:element name="PriorityStatusDate" type="xs:date" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>
    <xs:element name="PriorityDocument" type="DocumentType" minOccurs="0" maxOccurs="unbounded"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : PublicationType.xsd                                      -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="PublicationType">
  <xs:sequence>
    <xs:element name="PublicationIdentifier" type="xs:string"/>
    <xs:element name="PublicationSection" type="PublicationSectionType" minOccurs="0"/>
    <xs:element name="PublicationSubsection" type="PublicationSubsectionType" minOccurs="0"/>
    <xs:element name="PublicationDate" type="xs:date" minOccurs="0"/>
    <xs:element name="PublicationPage" type="xs:string" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : RecordChangeNameAddressType.xsd                           -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="RecordChangeNameAddressType">
  <xs:sequence>
    <xs:element name="RecordIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="RecordFilingDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordNotificationDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordEffectiveDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordChangeNameAddressKind" type="RecordChangeNameAddressKindType"/>

    <xs:element name="RecordReference" type="xs:string" minOccurs="0"/>
    <xs:element name="RecordLanguageCode" type="ExtendedISOLanguageCodeType" minOccurs="0"/>

    <xs:element name="TradeMarkKeyDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="TradeMarkKey" type="KeyType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordPublicationDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordPublication" type="PublicationType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="ClaimantDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="ClaimantKey" type="KeyType" maxOccurs="unbounded"/>
            <xs:element name="Claimant" type="ClaimantType" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RepresentativeDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="RepresentativeKey" type="KeyType" maxOccurs="unbounded"/>
            <xs:element name="Representative" type="RepresentativeType" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordEventDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordEvent" type="RecordEventType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordDocumentDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordDocument" type="DocumentType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordCurrentStatusCode" type="RecordCurrentStatusCodeType" minOccurs="0"/>
    <xs:element name="RecordCurrentStatusDate" type="xs:date" minOccurs="0"/>

    <xs:element name="CorrespondenceAddress" type="CorrespondenceAddressType" minOccurs="0"/>

    <xs:element name="HolderDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="PreviousHolder" type="ApplicantType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="NewHolder" type="ApplicantType" minOccurs="0" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : RecordEventType.xsd                                      -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="RecordEventType">
  <xs:sequence>
    <xs:choice minOccurs="0">
      <xs:element name="RecordEventDate" type="xs:date"/>
      <xs:element name="RecordEventDateTime" type="xs:dateTime"/>
    </xs:choice>
    <xs:element name="RecordEventCode" type="RecordEventCodeType"/>
    <xs:element name="RecordEventResponseDate" type="xs:date" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : RecordLicenceType.xsd                                    -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="RecordLicenceType">
  <xs:sequence>
    <xs:element name="RecordIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="RecordFilingDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordNotificationDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordEffectiveDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordLicenceKind" type="RecordLicenceKindType"/>

    <xs:element name="RecordReference" type="xs:string" minOccurs="0"/>
    <xs:element name="RecordLanguageCode" type="ExtendedISOLanguageCodeType" minOccurs="0"/>

    <xs:element name="TradeMarkKeyDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="TradeMarkKey" type="KeyType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordPublicationDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordPublication" type="PublicationType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="ClaimantDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="ClaimantKey" type="KeyType" maxOccurs="unbounded"/>
            <xs:element name="Claimant" type="ClaimantType" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RepresentativeDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="RepresentativeKey" type="KeyType" maxOccurs="unbounded"/>
            <xs:element name="Representative" type="RepresentativeType" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordEventDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordEvent" type="RecordEventType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordDocumentDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordDocument" type="DocumentType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordCurrentStatusCode" type="RecordCurrentStatusCodeType" minOccurs="0"/>
    <xs:element name="RecordCurrentStatusDate" type="xs:date" minOccurs="0"/>

    <xs:element name="RecordInterestedOfficeCode" type="ExtendedWIPOST3CodeType" minOccurs="0"/>

    <xs:element name="RecordDesignatedCountryDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordDesignatedCountryCode" type="ExtendedWIPOST3CodeType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="LicenceDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="Licence" type="LicenceType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : RecordNationalInternationalReplacementType.xsd                           -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="RecordNationalInternationalReplacementType">
  <xs:sequence>
    <xs:element name="RecordIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="RecordFilingDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordNotificationDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordEffectiveDate" type="xs:date" minOccurs="0"/>

    <xs:element name="TradeMarkKeyDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="TradeMarkKey" type="KeyType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordPublicationDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordPublication" type="PublicationType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="ClaimantDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="ClaimantKey" type="KeyType" maxOccurs="unbounded"/>
            <xs:element name="Claimant" type="ClaimantType" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RepresentativeDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="RepresentativeKey" type="KeyType" maxOccurs="unbounded"/>
            <xs:element name="Representative" type="RepresentativeType" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordEventDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordEvent" type="RecordEventType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordDocumentDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordDocument" type="DocumentType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordInterestedOfficeCode" type="ExtendedWIPOST3CodeType" minOccurs="0"/>

    <xs:element name="GoodsServicesLimitationDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="GoodsServicesLimitation" type="GoodsServicesLimitationType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="NationalMarkDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="NationalMark" type="NationalMarkType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : RecordOppositionPeriodType.xsd                           -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="RecordOppositionPeriodType">
  <xs:sequence>
    <xs:element name="RecordIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="RecordFilingDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordNotificationDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordEffectiveDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordOppositionPeriodKind" type="RecordOppositionPeriodKindType"/>

    <xs:element name="TradeMarkKeyDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="TradeMarkKey" type="KeyType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordPublicationDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordPublication" type="PublicationType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordInterestedOfficeCode" type="ExtendedWIPOST3CodeType" minOccurs="0"/>

    <xs:element name="RecordOppositionPeriodStartDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordOppositionPeriodEndDate" type="xs:date" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : RecordShortNotationType.xsd                              -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="RecordShortNotationType">
  <xs:sequence>
    <xs:element name="RecordIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="RecordFilingDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordNotificationDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordEffectiveDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordShortNotationKind" type="RecordShortNotationKindType"/>

    <xs:element name="RecordReference" type="xs:string" minOccurs="0"/>
    <xs:element name="RecordLanguageCode" type="ExtendedISOLanguageCodeType" minOccurs="0"/>

    <xs:element name="RecordPublicationDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordPublication" type="PublicationType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="ClaimantDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="ClaimantKey" type="KeyType" maxOccurs="unbounded"/>
            <xs:element name="Claimant" type="ClaimantType" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RepresentativeDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="RepresentativeKey" type="KeyType" maxOccurs="unbounded"/>
            <xs:element name="Representative" type="RepresentativeType" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordEventDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordEvent" type="RecordEventType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordDocumentDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordDocument" type="DocumentType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordInterestedOfficeCode" type="ExtendedWIPOST3CodeType" minOccurs="0"/>

    <xs:element name="RecordToRegistration" type="RegistrationShortNotationType" minOccurs="0"/>

    <xs:element name="RecordFromRegistrationDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordFromRegistration" type="RegistrationShortNotationType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : RecordTransferType.xsd                                   -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="RecordTransferType">
  <xs:sequence>
    <xs:element name="RecordIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="RecordFilingDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordNotificationDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordEffectiveDate" type="xs:date" minOccurs="0"/>
    <xs:element name="RecordTransferKind" type="RecordTransferKindType"/>

    <xs:element name="RecordReference" type="xs:string" minOccurs="0"/>
    <xs:element name="RecordLanguageCode" type="ExtendedISOLanguageCodeType" minOccurs="0"/>

    <xs:element name="TradeMarkKeyDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="TradeMarkKey" type="KeyType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordPublicationDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordPublication" type="PublicationType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="ClaimantDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="ClaimantKey" type="KeyType" maxOccurs="unbounded"/>
            <xs:element name="Claimant" type="ClaimantType" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RepresentativeDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="RepresentativeKey" type="KeyType" maxOccurs="unbounded"/>
            <xs:element name="Representative" type="RepresentativeType" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordEventDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordEvent" type="RecordEventType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordDocumentDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="RecordDocument" type="DocumentType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="RecordCurrentStatusCode" type="RecordCurrentStatusCodeType" minOccurs="0"/>
    <xs:element name="RecordCurrentStatusDate" type="xs:date" minOccurs="0"/>

    <xs:element name="CorrespondenceAddress" type="CorrespondenceAddressType" minOccurs="0"/>

    <xs:element name="HolderDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="PreviousHolder" type="ApplicantType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="NewHolder" type="ApplicantType" minOccurs="0" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="GoodsServicesLimitationDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="GoodsServicesLimitation" type="GoodsServicesLimitationType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : RegistrationShortNotationType.xsd                           -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="RegistrationShortNotationType">
  <xs:sequence>
    <xs:element name="RegistrationIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="RegistrationDate" type="xs:date" minOccurs="0"/>

    <xs:element name="MarkVerbalElementText" type="TextType" minOccurs="0"/>

    <xs:element name="DesignatedCountryDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="DesignatedCountryCode" type="ExtendedWIPOST3CodeType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="GoodsServicesLimitation" type="GoodsServicesLimitationType" minOccurs="0"/>

    <xs:element name="ApplicantDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:choice>
            <xs:element name="Applicant" type="ApplicantType" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : ReimbursementFeeType.xsd                                 -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="ReimbursementFeeType">
  <xs:sequence>
    <xs:element name="FeeIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="FeeReference" type="xs:string" minOccurs="0"/>
    <xs:element name="FeeAmount" type="AmountType"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : ReimbursementType.xsd                                    -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="ReimbursementType">
  <xs:sequence>
    <xs:element name="ReimbursementIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="ReimbursementReference" type="xs:string" minOccurs="0"/>
    <xs:element name="PayeeName" type="NameType" minOccurs="0"/>
    <xs:element name="ReimbursementStatus" type="ReimbursementStatusCodeType" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>

    <xs:element name="ReimbursementDate" type="xs:date" minOccurs="0"/>
    <xs:element name="ReimbursementMethod" type="PaymentMethodType" minOccurs="0"/>

    <xs:element name="ReimbursementFeeDetails" minOccurs="0"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="ReimbursementFee" type="ReimbursementFeeType" maxOccurs="unbounded"/>
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : RepresentationSizeType.xsd                               -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="RepresentationSizeType">
  <xs:sequence>
    <xs:element name="Height" type="xs:integer" minOccurs="0"/>
    <xs:element name="Width" type="xs:integer" minOccurs="0"/>
    <xs:element name="Unit" type="UnitType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType> 


<!-- ====================================================================== -->
<!-- Filename    : RepresentativeType.xsd                                   -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="RepresentativeType">
  <xs:sequence>
    <xs:element name="RepresentativeIdentifier" type="IdentifierType" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="RepresentativeSequenceNumber" type="xs:integer" minOccurs="0"/>
    <xs:element name="RepresentativeKindCode" type="RepresentativeKindCodeType" minOccurs="0"/>
    <xs:element name="RepresentativeNationalityCode" type="NationalityCodeType" minOccurs="0"/>
    <xs:element name="RepresentativeLegalEntity" type="xs:string" minOccurs="0"/>
    <xs:element name="RepresentativeIncorporationCountryCode" type="ISOCountryCodeType" minOccurs="0"/>
    <xs:element name="RepresentativeIncorporationState" type="xs:string" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>
    <xs:element name="RepresentativeAddressBook" type="AddressBookType" minOccurs="0"/>

    <xs:element name="RepresentativeVersion" type="VersionType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
  <xs:attribute name="operationCode" type="OperationCodeType" use="optional"/>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : RequestExaminationType.xsd                               -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="RequestExaminationType">
  <xs:sequence>
    <xs:element name="RequestExaminationAuthority" type="xs:string" minOccurs="0"/>
    <xs:element name="RequestExaminationKindCode" type="RequestExaminationKindCodeType"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : RequestSearchType.xsd                                    -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="RequestSearchType">
  <xs:sequence>
    <xs:element name="RequestSearchAuthority" type="xs:string" minOccurs="0"/>
    <xs:element name="RequestSearchKindCode" type="RequestSearchKindCodeType"/>
    <xs:element name="EarlierSearchIdentifier" type="xs:string" minOccurs="0"/>
    <xs:element name="EarlierSearchDate" type="xs:date" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : RequestSoftwareType.xsd                                  -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="RequestSoftwareType">
  <xs:sequence>
    <xs:element name="RequestSoftwareName" type="xs:string"/>
    <xs:element name="RequestSoftwareVersion" type="xs:string" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : RespondentType.xsd                                       -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="RespondentType">
  <xs:sequence>
    <xs:element name="RespondentIdentifier" type="IdentifierType" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="RespondentSequenceNumber" type="xs:integer" minOccurs="0"/>
    <xs:element name="RespondentNationalityCode" type="NationalityCodeType" minOccurs="0"/>
    <xs:element name="RespondentLegalEntity" type="xs:string" minOccurs="0"/>
    <xs:element name="RespondentIncorporationCountryCode" type="ISOCountryCodeType" minOccurs="0"/>
    <xs:element name="RespondentIncorporationState" type="xs:string" minOccurs="0"/>
    <xs:element name="Comment" type="xs:string" minOccurs="0"/>
    <xs:element name="RespondentAddressBook" type="AddressBookType" minOccurs="0"/>
    <xs:element name="RespondentEntitlement" type="EntitlementType" minOccurs="0"/>

    <xs:element name="RespondentVersion" type="VersionType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
  <xs:attribute name="operationCode" type="OperationCodeType" use="optional"/>
</xs:complexType>



<!-- ====================================================================== -->
<!-- Filename    : SeniorityType.xsd                                        -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="SeniorityType">
  <xs:sequence>
    <xs:element name="SeniorityCountryCode" type="WIPOST3CodeType"/>
    <xs:element name="SeniorityApplicationNumber" type="xs:string" minOccurs="0"/>
    <xs:element name="SeniorityApplicationDate" type="xs:date" minOccurs="0"/>
    <xs:element name="SeniorityFilingDate" type="xs:date" minOccurs="0"/>
    <xs:element name="SeniorityRegistrationNumber" type="xs:string" minOccurs="0"/>
    <xs:element name="SeniorityRegistrationDate" type="xs:date" minOccurs="0"/>
    <xs:element name="SeniorityPublicationDate" type="xs:date" minOccurs="0"/>
    <xs:element name="InternationalTradeMarkCode" type="InternationalTradeMarkCodeType" minOccurs="0"/>
    <xs:element name="SeniorityPartialIndicator" type="xs:boolean" minOccurs="0" />
    <xs:element name="SeniorityPartialGoodsServices" type="GoodsServicesType" minOccurs="0"/>
    <xs:element name="SeniorityStatusCode" type="SeniorityStatusCodeType" minOccurs="0"/>
    <xs:element name="SeniorityStatusDate" type="xs:date" minOccurs="0"/>
    <xs:element name="Comment" type="TextType" minOccurs="0"/>
    <xs:element name="SeniorityDocument" type="DocumentType" minOccurs="0" maxOccurs="unbounded"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>


<!-- ====================================================================== -->
<!-- Filename    : SignatoryType.xsd                                        -->
<!-- Author      : TM-XML WG                                                -->
<!-- Version     : 1.2                                                      -->
<!-- Last Update : 2007-11-09                                               -->
<!-- ====================================================================== -->
<xs:complexType name="SignatoryType">
  <xs:sequence>
    <xs:element name="SignatoryName" type="NameType"/>
    <xs:element name="SignatoryAddress" type="AddressType" minOccurs="0"/>

    <xs:element name="SignatureDate" type="xs:date" minOccurs="0"/>
    <xs:element name="SignaturePlace" type="xs:string" minOccurs="0"/>

    <xs:element name="SignatureManner" type="SignatureMannerType" minOccurs="0"/>
    <xs:element name="SignatureAssociatedText" type="xs:string" minOccurs="0"/>

    <xs:element name="SignatoryCapacityCode" type="RoleType" minOccurs="0"/>

    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>



<!-- =================================================================