Online Owner Verification Service Interface specification
1. Background
This document provides the interface requirements for the Online Owner Verification V1_0 Business Gateway service.
2. Purpose
The purpose of this document is to specify the interface between HM Land Registry and a Business Gateway Customer, indicating the message layouts and XML schemas that must be adhered to in order to communicate with HMLR, so that data may be exchanged between the organisations to effect Business Gateway. The XML schemas associated with this interface represent the authoritative definition of the interface and takes precedence over any information in this document. The schemas will be issued with this document, along with sample requests and responses. See Annex for samples.
3. Scope
The scope of this document encompasses the Online Owner Verification V1_0 interface and XML message format.
4. Definitions, Acronyms and Abbreviations
Any specific terms and abbreviations are further explained in the Glossary.
5. Interface Specification
This section covers general information about the configuration and use of the interface.
6. XML Requirements
The XML schema attached as part of this document is compliant with ‘XML Schema W3C Recommendation’, 04 Feb 2004 and e-GIF standards. The XML version is 1.0 and encoding is UTF-8. In an XML message, use of the characters &, <, “ and ‘ is constrained. The characters & and < are permitted to represent themselves only in Comments, Processing Instructions and CDATA sections. The characters “ and ‘ cannot appear in an attribute if they are being used to demarcate the value. Escape sequences are used to represent these characters when required. These escape sequences are:
Character | Escape sequence |
---|---|
& | “&” |
< | “<” |
> | “>” |
“ | ”"“ |
‘ | ”'“ |
Within CDATA blocks the above characters are permitted and escape sequences must not be used. CDATA blocks are used for attachments to messages.
7. Business Gateway
Business Gateway Process Diagram
Both the RequestOnlineOwnershipVerificationV1_0 and the Poll Request messages are acknowledged with a ResponseOnlineOwnershipVerificationV1_0 message.
8. Online Owner Verification V1_0 Specific Messages
- Schema:
- RequestOnlineOwnershipVerificationV1_0
- ResponseOnlineOwnershipVerificationV1_0
- Description:
- Online Owner Verification request identifies any titles associated with the supplied address and then checks if the supplied name matches any of the proprietors for those titles. If a title is supplied this will be used.
- The response indicates either:
- A success response includes the result of the search in XML.
- A system error
- A rejection response with details of why the search was rejected
9. XML Schemas
Current list of XML Schemas
Name | Version |
---|---|
RequestOnlineOwnershipVerificationV1_0 | 1.0 |
ResponseOnlineOwnershipVerificationV1_0 | 1.0 |
PollRequest | 1.0 |
See Annex for details of the individual Schemas relating to the Online Owner Verification service.
10. Online Owner Verification Request (V1_0)
Message | Description |
---|---|
RequestOnlineOwnershipVerificationV1_0 | This message wallows Customers to submit Online Owner Verification Requests to HMLR. |
10.1 Request message structure
The request message comprises generic header information which is common with requests for other services, plus information specific to the RequestOnlineOwnershipVerificationV1_0. This is illustrated below:
10.2 Request specific elements
The request message breakdown is illustrated below:
Element | Value | Rules for Use |
---|---|---|
MessageId | A unique reference associated with the application in the Case Management System | Mandatory |
Reference | Reference associated with a case in Case Management System | Mandatory |
SubjectProperty | Either the property title number OR the property address on which a search is being requested. See SubjectPropertyType for more details. | Mandatory |
FirstForename | Forename of the proprietor to be searched | Mandatory |
MiddleName | Middle name of the proprietor to be searched | Optional |
Surname | Surname of the proprietor to be searched | Mandatory |
Indicators | Search Indicators to enable/disable specific checks. See IndicatorType for more details | Mandatory |
10.2.1 SubjectPropertyType (Request)
The SubjectPropertyType contains the details of the property to be searched against. It may contain either a Title number or a property address.
TitleNumber | Value |
---|---|
TitleNumber | The title number on which the search is to be performed |
OR
PropertyAddressType | Value |
---|---|
BuildingName | Building Name of the property to be searched |
BuildingNumber | Building Number of the property to be searched |
StreetName | Street Name of the property to be searched |
CityName | City or Town of the property to be searched |
PostcodeZone | Postcode of the property to be searched |
SpecificTenure | Tenure of the property to be searched i.e. freehold, leasehold or rentcharge. This is an optional element and if no specific tenure has been supplied, the system will search against all tenures |
Note: For best results, minimise the information given. For example, provide building number or building name and postcode and leave all the other items blank. If the property to be searched is a flat then provide flat number in the building number. There can be confusion over the precise numbering of flats. The address we hold may be a simple number, or it may be prefixed by 'Flat’, ‘Suite’ and so on. If a search that includes a flat number fails, try providing the address without the flat number.
10.2.2 IndicatorType (Request)
The ‘Indicators’ element may contain 0 or many IndicatorType elements. The value of these elements must be set to true or false in lowercase. If any of the IndicatorTypes are excluded from the Request message they will be set to the default values shown below.
Indicator type Element | Value | Description | Default |
---|---|---|---|
ContinueIfOutOfHours | true | Request will be lodged and processed when back in hours | ✓ |
ContinueIfOutOfHours | false | Reject request if out of hours | x |
SkipPartialMatching | true | Do not perform partial match checks for this request | x |
SkipPartialMatching | false | Perform partial match checks on the supplied names if full match not achieved | ✓ |
SkipHistoricalMatching | true | Do not perform historical search for this request | x |
SkipHistoricalMatching | false | Perform historical search if no match is found on the current proprietor(s) | ✓ |
11. Online Owner Verification Response (V1_0)
ResponseOnlineOwnershipVerificationV1_0 message uses the namespace http://www.landregistry.gov.uk/OOV/ResponseOnlineOwnershipVerificationV1_0 and must be valid with respect to the XML Schema published by HM Land Registry for that namespace.
Message | Description |
---|---|
ResponseOnlineOwnershipVerificationV1_0 | This message allows HM Land Registry to send the Online Owner Verification Responses to the Customer. |
11.1 Response message structure
The response message comprises generic information common with responses to other services, plus information specific to the ResponseOnlineOwnershipVerificationV1_0 response. This is illustrated below:
11.2 Response specific elements
Element | Description | Rules for Use |
---|---|---|
TypeCode |
|
Mandatory |
Acknowledgement | This is the Business Gateway confirmation of receipt response | Optional |
Rejection | This is the Business Gateway rejection response | Optional |
Result | This is the Business Gateway confirmation of success response | Optional |
Note: Either an acknowledgement, rejection or result message will be issued.
11.3 Acknowledgement response structure
The Acknowledgement message will be returned if the service is out of hours and the original request message had the indictor ContinueIfOutOfHours set to true.
If for any reason a valid acknowledgement, rejection or response is not received by the originator (i.e. through network error, corruption or incorrectly prepared XML) there is no way for the server to know if it was successfully received or not. If this occurs the request can be sent again with the same MessageId and the original result will be returned. If HMLR did not receive the original request the system will process the request as a new one.
Note: Any requests submitted with a duplicate MessageId will receive the last response for that MessageId regardless of the other criteria in the request.
The acknowledgement response structure is illustrated below:
11.4 Acknowledgement specific elements
Element | Description | Rules for Use |
---|---|---|
UniqueID | A unique identifier used by the end user to get the status update of their request | Mandatory |
ExpectedResponseDateTime | This element will hold the expected date and time when Business Gateway will try to process the queued request. This element will contain date and time data in a GMT format. | Mandatory |
MessageDescription | This will be a String type element and will be used to return a message to the end user. See Annex for acknowledgement message text | Mandatory |
11.5 Rejection response structure
The purpose of the Rejection message is to inform the originator of the Request message that it has been rejected due to known circumstances.
11.6 Rejection specific elements
Element | Description | Rules for Use |
---|---|---|
Reason | A description of the reason for rejection. See Annex for full list of rejection reasons | Mandatory |
Code | A code signifying the reason for rejection. See Annex for full list of rejection codes. | Mandatory |
OtherDescription | A free format text field to convey any further information about the rejection. | Optional |
ValidationErrors | Validation errors | Optional |
Reference | Reference associated with a case in Case Management System | Mandatory |
11.7 Result response structure
11.8 Result key elements
Element | Description | Rules for Use |
---|---|---|
Message | A free format text field to convey any further information about the response. | Optional |
Reference | Reference associated with a case in Case Management System | Mandatory |
MatchResult | Value will be either NO_MATCHES, SINGLE_MATCH, MULTIPLE_MATCHES | Mandatory |
Match | Contains details of each Match. See Match Details. | Optional (0..*) |
11.8.1 Match elements
Element | Description | Rules for Use |
---|---|---|
SubjectProperty | Contains the title number and address details for the property matched. See SubjectProperty | Mandatory |
SurnameMatch | Indicates whether the Surname was matched and details of how it matched. See MatchType. | Mandatory |
ForenameMatchDetails | Indicates whether the Forename was matched and details of how it matched. See MatchType. | Mandatory |
MiddleNameMatchDetails | Indicates whether the Middle name was matched and details of how it matched. See MatchType. | Optional |
StringMatchDetails | Indicates if a match is found against the string concatenation of forename, middle name(s) and surname | Optional |
MatchInformation | Contains additional details of the match. See Match Information. | Optional (0..*) |
Notes: Forename and Middle name matches will only be returned if there has been a full match or partial match on Surname. A string match will only be returned when there is no match on surname. For example the name to be searched in the request is Maria (FirstForename) Santos (MiddleName) Bueno (Surname) and the register of title holds Maria (forename), no middle name and Santos Bueno (surname).
11.8.2 SubjectProperty
SubjectProperty | Description | Rules for Use |
---|---|---|
TitleNumber | The title number for the property matched | Mandatory |
PropertyAddress | Contains the address details for the property matched | Mandatory |
11.8.3 PropertyAddress
PropertyAddress | Description | Rules for Use |
---|---|---|
BuildingName | Building name of the property matched | Optional |
SubBuildingName | Sub building name of the property matched | Optional |
BuildingNumber | Building number of the property matched | Optional |
StreetName | Street name of the property matched | Optional |
CityName | City name of the property matched | Optional |
PostcodeZone | Postcode of the property matched | Optional |
Tenure | Tenure of the property matched | Mandatory |
11.8.4 MatchType
The MatchType element indicates the type of match and any additional match details
Element | Value | Rules for Use |
---|---|---|
TypeOfMatch | Indicates if an exact, partial or no match. Typical values MATCH, NO_MATCH, PARTIAL_MATCH or SKIPPED | Mandatory |
MatchDetails | Contains additional details of the match. See Match Details. | Mandatory |
This could return a full match, an exact letter for letter match or a partial match, where the name matches in some way, i.e. minor spelling mistake, sounds like or first letter match. The type of match for forename and middle name will be set to a value of ‘SKIPPED’ when there is NO match on surname. The type of match for surname will be set to a value of ‘SKIPPED’ where there is no Private Individual proprietorship name found for a title number or where LR have no proprietorship details available for a title number.
12. Glossary or Terms and Abbreviations
Acronym | Description |
---|---|
OOV | Online Owner Verification Service |
HTTP | HyperText Transfer Protocol |
XML | eXtensible Markup Language |
Registered on date |
13. Annex
13.1.1 Acknowledgement Message
Message |
---|
Service is not currently available. System has queued your request, please poll at specified time. |
13.1.2 Match information
Acronym | Description |
---|---|
OOV | Online Owner Verification Service |
HTTP | HyperText Transfer Protocol |
XML | eXtensible Markup Language |
Registered on date |
- Only provided for Historical matches
13.1.3 Match Details
Name | Value |
---|---|
FORENAME_DISTANCE | true or false |
FORENAME_SOUND | true or false |
FORENAME_INITIAL | true or false |
FORENAME_MIDDLE | true or false |
FORENAME_ALIAS | true or false |
MIDNAME_DISTANCE | true or false |
MIDNAME_SOUND | true or false |
MIDNAME_INITIAL | true or false |
SURNAME_DISTANCE | true or false |
SURNAME_SOUND | true or false |
*Indicates whether the forename supplied matches a middle name of the registered proprietor. e.g. Search name is Susan Brown and Proprietor name is Edith Susan Brown would return Forename Middle is ‘true’ Distance matching uses Levenshtein. The distance is the number of changes needed to change one String into another, where each change is a single character modification (deletion, insertion or substitution). The returning integer is then checked and if <= (surname length/4) will return ‘true’ otherwise ‘false’. Sound uses Double Metaphone, which looks through variant spellings by reducing surnames to phonetic codes. The "double” in the title stems from the fact that returning up to two codes for a single surname allows the algorithm to deal with common-case Anglo-Saxon and foreign-pronunciation variants simultaneously. A match on either will return ‘true’ otherwise ‘false’.
Sound and Distance Examples
Search Name | Proprietor Name | Sound Value | Distance Value |
---|---|---|---|
Steven | Stephen | Pass | Fail |
Lin | Lynne | Pass | Fail |
Smith | Smythe | Pass | Fail |
Smith | Smyth | Pass | Pass |
Smith | Schmidt | Pass | Fail |
Goodbourn | Woodburn | Fail | Pass |
Wooldridge | Aldridge | Pass | Fail |
13.1.4 Rejection Codes
Code | Reason |
---|---|
bg.auth.fails | Login details are invalid. |
bg.user.account.status.locked.password | Your account is locked. Please reset your password using Portal. |
bg.outofhours.stop | Service is not currently available and your request will not be processed. |
bg.properties.nopropertyfound | No title number has been identified from the data supplied. This does not necessarily mean that a register of a title does not exist but only that insufficient data has matched. |
bg.properties.novalidtitlefound | No valid title number has been identified from the data supplied for this service. |
bg.address.invalidaddresscriteria | Insufficient address details. Please provide house name or number and postcode OR house name or number, street and city. |
bg.postcode.invalid | Please provide valid postcode |
bg.title.invalid | Title number is invalid |
bg.properties.toomanyproperties | The property address you entered has matched with a large number of properties on our database. Please request again with refined address details. |
13.1.5 Sample Messages
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<RequestOOV xmlns="http://www.landregistry.gov.uk/OOV/RequestOnlineOwnershipVerificationV1_0">
<MessageId>OnlineOwnershipVerification-20131217-094743</MessageId>
<Reference>ABC</Reference>
<SubjectProperty>
<PropertyAddress>
<BuildingNumber>101A</BuildingNumber>
<PostcodeZone>PL1 1QQ</PostcodeZone>
</PropertyAddress>
</SubjectProperty>
<FirstForename>Jon</FirstForename>
<MiddleName>Tomas</MiddleName>
<Surname>Tankerman</Surname>
<Indicators>
<Indicator>
<IndicatorType>ContinuIfOutOfHours</IndicatorType>
<IndicatorValue>true</IndicatorValue>
</Indicator>
</Indicators>
</RequestOOV>
Sample response message
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<ResponseOOV xmlns="http://www.landregistry.gov.uk/OOV/ResponseOnlineOwnershipVerificationV1_0">
<TypeCode>30</TypeCode>
<Result>
<Reference>ABC</Reference>
<MatchResult>SINGLE_MATCH</MatchResult>
<Match>
<SubjectProperty>
<TitleNumber>NT100</TitleNumber>
<PropertyAddress>
<BuildingNumber>101A</BuildingNumber>
<StreetName>APPLE ROAD</StreetName>
<CityName>NOTTINGHAM</CityName>
<PostcodeZone>PL1 1QQ</PostcodeZone>
<Tenure>freehold</Tenure>
</PropertyAddress>
</SubjectProperty>
<SurnameMatch>
<TypeOfMatch>NO_MATCH</TypeOfMatch>
</SurnameMatch>
<StringMatchDetails>
<TypeOfMatch>NO_MATCH</TypeOfMatch>
</StringMatchDetails>
</Match>
<Match>
<SubjectProperty>
<TitleNumber>NT275842</TitleNumber>
<PropertyAddress>
<BuildingNumber>101A</BuildingNumber>
<StreetName>APPLE ROAD</StreetName>
<CityName>NOTTINGHAM</CityName>
<PostcodeZone>PL1 1QQ</PostcodeZone>
<Tenure>leasehold</Tenure>
</PropertyAddress>
</SubjectProperty>
<SurnameMatch>
<TypeOfMatch>MATCH</TypeOfMatch>
</SurnameMatch>
<ForenameMatchDetails>
<TypeOfMatch>MATCH</TypeOfMatch>
</ForenameMatchDetails>
<MiddleNameMatchDetails>
<TypeOfMatch>MATCH</TypeOfMatch>
</MiddleNameMatchDetails>
<MatchInformation>
<Name>HistoricalMatch</Name>
<Value>true</Value>
</MatchInformation>
<MatchInformation>
<Name>Ownership</Name>
<Value>Joint</Value>
</MatchInformation>
<MatchInformation>
<Name>ProprietorFrom</Name>
<Value>26 Feb 2009</Value>
</MatchInformation>
<MatchInformation>
<Name>ProprietorTo</Name>
<Value>31 Dec 2012</Value>
</MatchInformation>
</Match>
</Result>
</ResponseOOV>
13.1.6 Schemas
XML Schemas are compliant with e-GIF (Electronic Government Interoperability Framework) standards.
Schema files are named according to the standard
13.1.7 RequestOnlineOwnershipVerificationV1_0.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.landregistry.gov.uk/OOV/RequestOnlineOwnershipVerificationV1_0"
xmlns="http://www.landregistry.gov.uk/OOV/RequestOnlineOwnershipVerificationV1_0"
elementFormDefault="qualified">
<xs:element name="RequestOOV" type="RequestOnlineOwnershipVerificationType"></xs:element>
<xs:complexType name="RequestOnlineOwnershipVerificationType">
<xs:sequence>
<xs:element name="MessageId" type="MessageIdTextContentType" minOccurs="1" maxOccurs="1"></xs:element>
<xs:element name="Reference" type="ReferenceTextContentType" minOccurs="1" maxOccurs="1"></xs:element>
<xs:element name="SubjectProperty" type="SubjectPropertyType" minOccurs="1" maxOccurs="1"></xs:element>
<xs:element name="FirstForename" type="FirstForenameContentType" minOccurs="1" maxOccurs="1"></xs:element>
<xs:element name="MiddleName" type="NameContentType" minOccurs="0" maxOccurs="1"></xs:element>
<xs:element name="Surname" type="NameContentType" minOccurs="1" maxOccurs="1"></xs:element>
<xs:element name="Indicators" type="IndicatorsType" minOccurs="1" maxOccurs="1"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="FirstForenameContentType">
<xs:restriction base="xs:string">
<xs:minLength value="1"></xs:minLength>
<xs:pattern value="[a-zA-Z0-9\-']+"></xs:pattern>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NameContentType">
<xs:restriction base="xs:string">
<xs:minLength value="1"></xs:minLength>
<xs:pattern value="[a-zA-Z0-9\-\s']+"></xs:pattern>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="SubjectPropertyType">
<xs:choice minOccurs="1" maxOccurs="1" >
<xs:element name="TitleNumber">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="9"></xs:maxLength>
<xs:minLength value="1"></xs:minLength>
<xs:pattern value="[a-yA-Y]{0,3}\d{1,6}|Z\d{1,6}Z"></xs:pattern>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PropertyAddress" type="PropertyAddressType" />
</xs:choice>
</xs:complexType>
<xs:complexType name="PropertyAddressType">
<xs:sequence>
<xs:element name="BuildingName" type="BuildingNameTextContentType" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The name of the building or house on a street of this address</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="BuildingNumber" type="BuildingNumberTextContentType" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The number of a building or house on a street of this address. Where the building or house occupies a range
of numbers on the street, e.g. '1-9 Main St', this will be the lower number of the range.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="StreetName" type="StreetNameTextContentType" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Name of a street or thoroughfare</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CityName" type="CityTextContentType" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The name of the city, town or village of this address.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PostcodeZone" type="PostcodeTextContentType" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The identifier for one or more properties according to the UK postal service; a group of letters and numbers
added to the postal address to assist in the sorting of mail, as defined by the Royal Mail.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SpecificTenure" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="PostcodeTextContentType">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="8" />
<xs:pattern value="[a-zA-Z]{1,2}[0-9R][0-9A-Za-z]? [0-9][A-Za-z-[CIKMOVcikmov]]{2}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CityTextContentType">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="35" />
<xs:pattern value=".*\S.*" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StreetNameTextContentType">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="80" />
<xs:pattern value=".*\S.*" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BuildingNameTextContentType">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="50" />
<xs:pattern value=".*\S.*" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BuildingNumberTextContentType">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="5" />
<xs:pattern value=".*\S.*" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ReferenceTextContentType">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="25" />
<xs:pattern value="[A-Za-z0-9\s~!"@#$%'\(\)\*\+,\-\./:;=>\?\[\\\]_\{\}\^£&]*" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="MessageIdTextContentType">
<xs:restriction base="xs:string">
<xs:minLength value="5" />
<xs:maxLength value="50" />
<xs:pattern value="[a-zA-Z0-9][a-zA-Z0-9\-]*" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="MiddleNameType">
<xs:sequence>
<xs:element name="MiddleName" type="NameContentType" minOccurs="1" maxOccurs="1"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="IndicatorsType">
<xs:sequence>
<xs:element name="Indicator" type="IndicatorType" minOccurs="0" maxOccurs="unbounded"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="IndicatorType">
<xs:sequence>
<xs:annotation>
<xs:documentation>
The indicators are generic so that new options can be added in the future without schema changes.
Expected indicators are:
ContinueIfOutOfHours
SkipPartialMatching
SkipHistoricalMatching
</xs:documentation>
</xs:annotation>
<xs:element name="IndicatorType" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"></xs:minLength>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="IndicatorValue" type="xs:boolean" minOccurs="1" maxOccurs="1"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
13.1.8 ResponseOnlineOwnershipVerificationV1_0.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.landregistry.gov.uk/OOV/ResponseOnlineOwnershipVerificationV1_0"
xmlns="http://www.landregistry.gov.uk/OOV/ResponseOnlineOwnershipVerificationV1_0"
elementFormDefault="qualified">
<xs:element name="ResponseOOV" type="ResponseOnlineOwnershipVerificationType"></xs:element>
<xs:complexType name="ResponseOnlineOwnershipVerificationType">
<xs:sequence>
<xs:element name="TypeCode" type="TypeCodes" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="Acknowledgement" type="AcknowledgementType" maxOccurs="1" minOccurs="0"></xs:element>
<xs:element name="Rejection" type="RejectionType" maxOccurs="1" minOccurs="0"></xs:element>
<xs:element name="Result" type="ResultType" maxOccurs="1" minOccurs="0"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ResponseType">
<xs:sequence>
<xs:element name="Code" type="xs:string"></xs:element>
<xs:element name="Text" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="TypeCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="10">
<xs:annotation>
<xs:documentation>Acknowledgement</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="20">
<xs:annotation>
<xs:documentation>Rejections</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="30">
<xs:annotation>
<xs:documentation>Result</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="AcknowledgementType">
<xs:sequence>
<xs:element name="UniqueID" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>Unique identifier used by end user to get the status update of their request.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ExpectedResponseDateTime" type="xs:dateTime" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>This element will hold expected time when Business Gateway will try to process the queued request. This
element will contain date and time data as GMT format. This element should be marked as mandatory</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MessageDescription" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>This will be a String type element and will be use to display a message to end user. This element should be marked as mandatory</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RejectionType">
<xs:annotation>
<xs:documentation>Provides details of the reasons for the rejection.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Reason" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>A description of the reason for rejection.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Code" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>A code signifying the reason for rejection</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="OtherDescription" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Freeform text field to convey any further information about the rejection.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ValidationErrors" type="ValidationErrorsType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Reference" type="xs:string" maxOccurs="1" minOccurs="1"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ValidationErrorsType">
<xs:sequence>
<xs:element name="Code" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>A character string (i.e. a finite set of characters) generally in the form of words of a language.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Description" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>A character string (i.e. a finite set of characters) generally in the form of words of a language.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ResultType">
<xs:sequence>
<xs:element name="Message" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
<xs:element name="Reference" type="xs:string" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="MatchResult" type="MatchResultType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="Match" type="NameMatchType" maxOccurs="unbounded" minOccurs="0"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="MatchResultType">
<xs:restriction base="xs:string">
<xs:enumeration value="NO_MATCHES"></xs:enumeration>
<xs:enumeration value="SINGLE_MATCH"></xs:enumeration>
<xs:enumeration value="MULTIPLE_MATCHES"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="PropertyAddressType">
<xs:sequence>
<xs:element name="BuildingName" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The name of the building or house on a street of this address</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SubBuildingName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
<xs:element name="BuildingNumber" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The number of a building or house on a street of this address. Where the building or house
occupies a range of numbers on the street, e.g. '1-9 Main St', this will be the lower number of the range.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="StreetName" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation> Name of a street or thoroughfare</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CityName" type="xs:string" minOccurs="0"maxOccurs="1">
<xs:annotation>
<xs:documentation>The name of the city, town or village of this address.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PostcodeZone" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The identifier for one or more properties according to the UK postal service;
a group of letters and numbers added to the postal address to assist in the sorting of mail,
as defined by the Royal Mail.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Tenure" type="xs:string" maxOccurs="1" minOccurs="1"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NameMatchType">
<xs:sequence>
<xs:element name="SubjectProperty" type="SubjectPropertyType" maxOccurs="1" minOccurs="1">#</xs:element>
<xs:element name="SurnameMatch" type="MatchType"maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="ForenameMatchDetails" type="MatchType" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="MiddleNameMatchDetails" type="MatchType"maxOccurs="1" minOccurs="0"></xs:element>
<xs:element name="StringMatchDetails" type="MatchType"maxOccurs="1" minOccurs="0"></xs:element>
<xs:element name="MatchInformation" type="MatchDetailsType" maxOccurs="unbounded" minOccurs="0"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="MatchType">
<xs:sequence>
<xs:element name="TypeOfMatch">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="MATCH"></xs:enumeration>
<xs:enumeration value="NO_MATCH"></xs:enumeration>
<xs:enumeration value="PARTIAL_MATCH"></xs:enumeration>
<xs:enumeration value="SKIPPED"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MatchDetails" type="MatchDetailsType" maxOccurs="unbounded" minOccurs="0"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="MatchDetailsType">
<xs:sequence>
<xs:annotation>
<xs:documentation>Flexible name/value pair element to include various values.
Possible options are:
Name Values (string)
HistoricalMatch true or false
ProprietorFrom date or unknown
ProprietorTo date or unknown
Ownership Sole or Joint
FORENAME_DISTANCE true or false
FORENAME_SOUND true or false
FORENAME_INITIAL true or false
FORENAME_MIDDLE true or false
FORENAME_ALIAS true or false
MIDNAME_DISTANCE true or false
MIDNAME_SOUND true or false
MIDNAME_INITIAL true or false
SURNAME_DISTANCE true or false
SURNAME_SOUND true or false
Note: _DISTANCE is Levenshtein distance and _SOUND is sounds like (DoubleMetaphone) </xs:documentation>
</xs:annotation>
<xs:element name="Name" type="xs:string" maxOccurs="1" minOccurs="1"></xs:element>
<xs:element name="Value" type="xs:string" maxOccurs="1" minOccurs="1"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SubjectPropertyType">
<xs:sequence>
<xs:element name="TitleNumber" maxOccurs="1" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"></xs:minLength>
<xs:maxLength value="9"></xs:maxLength>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PropertyAddress" type="PropertyAddressType" maxOccurs="1" minOccurs="1"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>