<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  elementFormDefault="unqualified" attributeFormDefault="unqualified">

  <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
  <!-- Class: IdentifierType  -->
  <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->

  <xs:complexType name="IdentifierType">
    <xs:sequence>
      <xs:element name="Identifier.id" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

  <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
  <!-- Class: AddressType  -->
  <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->

  <xs:complexType name="AddressType">
    <xs:sequence>
      <xs:element name="Address.city" type="xs:string"/>
      <xs:element name="Address.Identifier" type="IdentifierType"/>
    </xs:sequence>
  </xs:complexType>

  <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
  <!-- Class: PartyType  -->
  <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->

  <xs:complexType name="PartyType">
    <xs:sequence>
      <xs:element name="Party.name" type="xs:string"/>
      <xs:element name="Party.Identifier" type="IdentifierType"/>
      <xs:element name="Party.Address" type="AddressType" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
