tp listingupload whitepaper - top producer paper top producer 8i ... this document provides a sample...

47
White Paper Top Producer 8i Listing Upload feature www.topproducer.com ©2003 Top Producer Systems All rights reserved.

Upload: vanhanh

Post on 08-May-2018

215 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

White Paper

Top Producer 8i

Listing Upload feature

www.topproducer.com

©2003 Top Producer Systems All rights reserved.

Page 2: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 2

Table of Contents

Table of Contents ......................................................................................................................... 2

Listing upload overview................................................................................................................3

Data format ...................................................................................................................................4

Overview .................................................................................................................................. 4

RETS DTD............................................................................................................................... 5

TPRETS DTD .......................................................................................................................... 5

Upload methods ............................................................................................................................6

RETS ........................................................................................................................................ 6

Email ........................................................................................................................................ 6

FTP........................................................................................................................................... 8

HTTP-POST............................................................................................................................. 9

TPOnline HTTP-POST interface ............................................................................................................................................................................................ 10

Header name.............................................................................................................................................................................................................................................................. 10

Header value.............................................................................................................................................................................................................................................................. 10

Required............................................................................................................................................................................................................................................................................ 10

Converting RETS XML to HTML........................................................................................................................................................................................................ 13

Converting TPRETS XML to HTML.............................................................................................................................................................................................. 14

Sample HTML page.............................................................................................................................................................................................................................................. 14

Integration with existing web pages ........................................................................................................................................................................................... 14

Appendix A — TPRETS DTD ....................................................................................................................................................................................................................15

Appendix B — Converting XML to HTML Sample Page .........................................................37

Page 3: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 3

Listing upload overview

The listing upload feature provides a mechanism to convert listing information from a

Top Producer database into an industry-standard Extensible Markup Language (XML) format.

The feature supports four upload methods, providing flexibility in transporting the data to an

external system (refer to the “Upload methods” section for details).

In most cases it is expected that the XML data format is an intermediary step to the end result of

the listing data being parsed into Hyper Text Markup Language (HTML) to be displayed on the

Top Producer customer’s website. However, the XML data can be used for whatever purposes

the customer desires.

When the end purpose of the listing upload is to integrate the listing data into an existing website,

there are several requirements external to the Top Producer listing upload feature. Firstly, it is

required that the target website be set up prior to uploading the listing information. The listing upload

feature does not include web-hosting services, web page design, or domain registration.

The second requirement is that the XML data be converted into HTML to allow it to be displayed

in a browser. This document provides a sample HTML template that XML data can be pasted

into, but it is expected that the webmaster (may or may not be the Top Producer customer) will

paste the uploaded data into their existing HTML templates to maintain consistency between the

listing page and the rest of the existing site. It is also the responsibility of the webmaster to integrate

the listing page with the rest of the existing website. This includes both adding links to the listing

page and adding links to the listing from the rest of the site. Any additional features supported by

the web site must be manually added to the listing page by the webmaster. Depending on the

upload method, it is possible that all of these responsibilities will be satisfied by an application

residing on the web server. Such an application is outside the scope of the Top Producer listing

upload feature.

When the end purpose of the listing upload is something other than the creation of an HTML

page, any further manipulation of the uploaded XML file is outside the scope of the

Top Producer listing upload feature.

The Top Producer listing upload feature provides a flexible mechanism for uploading data to an

external system. The data can then be manually or automatically processed to satisfy end user

requirements such as the display of the listing on a web site.

Page 4: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 4

Data format

Overview

The listing upload feature converts listing data contained in the databases of Top Producer online

products into XML format. XML provides the flexibility to define the structure of the data while

allowing the end recipient to control formatting of the data. The specific format of the XML

files created by the listing upload feature depends on the upload method used. For the RETS (Real

estate transaction standard) upload method, the XML format is defined in the RETS Document type

definition (DTD) which has been defined by a real estate industry task force. For all other upload

methods, the XML format is defined in the TPRETS DTD, which extends the RETS DTD.

The RETS standard consists of a DTD and a transaction protocol. The standard was created with

the intention of creating an industry-wide standard for data interchange and to ease

interoperability among the diverse systems in use throughout the industry.

For more information on the RETS standard, please see the RETS home page at www.reso.org.

The RETS DTD was created with the expectation that it would be a starting point for various

stakeholders to address their specific needs, and is not intended to be an unchanging and

comprehensive dictionary of all possible real estate industry data fields.

From the RETS DTD itself:

The purpose of this specification is not to map every attribute of every field. Instead, it is intended to provide a common set of fields that can be used across all compliant systems. These basic elements are not meant to be all-inclusive, but they can be extended. If the types are too strict for some fields then it will not be possible to adequately map data from the host system. The trade off we face is if we make it very restrictive and tightly defined then we reduce its flexibility to be extended and encompass multiple systems. Ideally, this specification will apply nationally, each board can extend it to encompass local customs, practices and laws and each broker can extend it to fit their data, policy and business needs.

1

1 RETS DTD pg.2, www.reso.org/docs/retsdtd.pdf Copyright 1999, 2000. Vista Information Solutions, Inc., GTE Enterprise Solutions, WyldFyre Technologies, Inc., RealSelect, Inc., Interealty Corporation, and National Association of Realtors.

Page 5: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 5

Accordingly, Top Producer has extended the RETS DTD to allow for Top Producer listing data

fields not contained in the RETS DTD to be included in the XML file. The TPRETS DTD,

included in this document, contains elements that map to all relevant Top Producer listing data

fields. Each XML element can then be mapped to an element in an HTML template. XML

elements can also be mapped to other data structures, for example fields in a relational database,

depending on the end purpose that the listing data has been uploaded for. We have maintained

compatibility with the RETS DTD wherever possible, but where necessary we have added elements

or changed the data type of RETS elements. Additionally, some elements in the RETS DTD are not

included in the Top Producer databases and so will not be present in the uploaded XML file.

RETS DTD

The RETS DTD is freely available to download from www.reso.org/docs/

TPRETS DTD

The TPRETS DTD is included in “Appendix A” of this document.

Page 6: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 6

Upload methods

The Top Producer listing upload feature currently supports four methods of uploading a listing to

provide flexibility in uploading the listing to a variety of systems. To determine which upload

method is appropriate for each external system, review the details below. The listing upload

feature supports uploading listing data to multiple external systems, allowing the upload method to

be specified for each external system as appropriate. In most cases the external system will map to

an existing website for a real estate agent or office, but other types of systems are possible.

RETS

The listing upload method, “RETS” is provided to allow listing data to be sent to any external

server compliant with the RETS standard. RETS compliant servers can communicate using Hyper

Text Transport Protocol (HTTP) over the Internet. The RETS server is responsible for performing

whatever operations are required on the data, or for passing the data on to another system for

processing. Potential uses include automatic generation of HTML pages from the listing data

XML, writing the listing data to a relational database, or performing any other required operation

on the data. To use this upload method, a server compliant with the RETS transaction protocol

V1 .5 and the RETS DTD V1 .5 must be available at a URL accessible to the Internet.

While there are two reference servers implemented and freely available for use or modification, it

is expected that any use of a RETS server in a production environment will require substantial

software development expertise and effort.

A detailed description of the RETS standard or the implementation of a RETS-compatible server

are outside the scope of this paper. For details of the RETS standard please refer to

www.reso.org. For information on available RETS server reference implementations please refer

to www.rets.org/resources/ and to www.crt.realtors.org/projects/rets/rets reference/index.html.

Email

The listing upload method, “Email” is provided as a basic method to allow listing XML data to be

sent when other upload methods are not supported. A valid email address is required to use this

upload method. For each intended recipient (usually the webmaster of a given website) the

Top Producer user must set up one website in the listing upload setup screen using upload method

email (refer to Top Producer online help for details of this activity).

When a Top Producer user clicks either “Upload listing to website” or “Update listing on

website” from within the Top Producer application (refer to Top Producer online help for details

of this activity), an email will be sent to the address entered in listing upload setup with an attached

XML file conforming to the TPRETS DTD. The attachment filename will be of the form

“<ListingID>.XML” where <ListingID> will be replaced with the unique ID string given to every

listing in the Top Producer databases. This value is also included within the XML file. The email

itself will contain the address of the listing as well as the request to either upload or update the

listing.

When a Top Producer user clicks “Remove listing from website” in the Top Producer application

(refer to Top Producer online help for details of this activity), an email will be sent to the address

specified in listing upload setup. This email will contain the listing address and

Page 7: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 7

a request to remove the listing from the website. No XML file is attached in this case. The

recipient is responsible for removing the HTML page containing the listing data and resolve any

dead links to or from the removed page.

When upload method “Email” is used, it is the responsibility of the addressee to manually

implement whatever operation is requested on the data. In most cases the email will be sent to a

webmaster with the expectation that they will parse the XML into an HTML page and publish

that page to an existing website. For information regarding the conversion of the XML data into

HTML format, refer to the “Converting TPRETS XML into HTML” section of this document.

However, depending on the circumstances, it is possible that some other operation may be

required. While other operations may be possible, they are outside the scope of the listing upload

feature, so it is the responsibility of the Top Producer customer to make arrangements with the

recipient of the email to perform any other required operations.

Page 8: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 8

FTP

The listing upload method “FTP” is provided to allow upload of listing data to a directory on a

web server. Since File transfer protocol (FTP) is typically used to upload HTML files to web

servers, almost all existing websites will support this upload method. An account on an FTP

server is required to use this upload method. For each account on an FTP server the

Top Producer user must set up one website in the listing upload setup screen using upload method

“FTP”. A URL pointing to the FTP server must be entered, as well as a username and password, if

required (refer to Top Producer online help for details of this activity).

When a Top Producer user clicks either “Upload listing to website” or “Update listing on

website” from within the Top Producer application (refer to Top Producer online help for details of

this activity), an XML file conforming to the TPRETS DTD will be uploaded to the FTP server. The

filename will be of the form “<ListingID>.XML” where <ListingID> will be replaced with the

unique ID string given to every listing in the Top Producer databases. This value is also included

within the XML file.

When a Top Producer user clicks Remove listing from website in the Top Producer application

(refer to Top Producer online help for details of this activity), the previously uploaded XML file

will be removed. The owner of the FTP account is responsible for removing the HTML page

containing the listing data and resolve any dead links to or from the removed page.

When upload method “FTP” is used, it is the responsibility of the owner of the FTP account to

manually implement whatever operation is requested on the data. In most cases the FTP account

will be monitored by a webmaster with the expectation that they will parse the XML into an

HTML page and publish that page to an existing website. For information regarding the

conversion of the XML data into HTML format, refer to the “Converting TPRETS XML into

HTML” section of this document.

However, depending on the circumstances, it is possible that some other operation may be

required. While other operations may be possible, they are outside the scope of the listing upload

feature, so it is the responsibility of the Top Producer customer to make arrangements with the

owner of the FTP account to perform any other required operations.

Page 9: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 9

HTTP-POST

The listing upload method “HTTP-POST” is provided to allow external systems to accept listing

upload data using the Internet standard Hyper Text Transport Protocol (HTTP) and to perform

whatever operations are required on the data. Potential uses include automatic generation of

HTML pages from the listing data XML, writing the listing data to a relational database, or

performing any other required operation on the data. To use this upload method, an application

supporting the interface defined in this document must be written and configured to run on an

external system. The application must be available at a URL on an external system.

This upload method will require development effort by the person or organization maintaining the

external system, but provides flexibility and the potential to automate whatever operations are

required on the listing data in XML format.

Any server side application supporting upload method “HTTP-POST” is only required to support

the interface defined in this document. The actual implementation is platform and technology

agnostic. Possibilities for implementation include Active Server Pages, CGI pages, Java Server

Pages or Servlets, PHP scripts, PERL scripts, or Coldfusion pages. This list of implementation

technologies is not exhaustive. As long as the application supports the interface defined here it

does not matter how it is implemented. Additionally, the server side application must perform any

desired operation on the uploaded data. The TPRETS XML data may be written to a file on the

external system, parsed into HTML and written to one or more files, or written to a database. The

listing upload feature only requires that the server-side application return a valid response to

indicate whether the operation succeeded or failed as defined in this section.

For each server-side application the Top Producer user would like to upload listings to, one website

must be set up from the Listing Upload Setup page using upload method “HTTP-POST”. A URL

pointing to the server-side application must be entered, as well as a username and password, if

required (refer to Top Producer online help for details of this activity).

When upload method “HTTP-POST” is used, it is the responsibility of the server-side application

to implement whatever operation is requested on the data. This may also be accomplished by

other applications residing on the external system. If the end result of the listing upload is

expected to be the creation of an HTML page to be integrated into an existing website, the

parsing of the XML data into HTML will likely involve the mapping of TPRETS DTD fields into

an HTML template consistent with the rest of the existing site. Refer to the “Converting TPRETS

XML into HTML” section of this document for one possible mapping of TPRETS XML data into

an HTML page. This sample page could be used as a starting point for developing an application

to parse XML into HTML.

Page 10: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 10

TPOnline HTTP-POST interface

Applications supporting this interface must be able to accept a HTTP-POST requests at the

provided URL. The HTTP headers sent by the Top Producer listing upload feature are as follows:

Header name Header value Required

TPOL-Action “Upload” or “Remove” based on user action in Top Producer. User

clicking “Upload listing to website” or “Update listing on

website” will result in this header value being set to “Upload”. User

clicking “Remove listing from website” will result in this header

value being set to “Remove”

Yes

TPOL-FILENAME The filename of the XML file in the form “<Listing ID>.XML”

where <ListingID> will be replaced with the unique ID string given

to every listing in the Top Producer databases. This value is also included

within the XML file.

Yes

TPOL-

USERNAME

Value entered in listing upload Add website dialog in

Top Producer username field.

Optional

TPOL-

PASSWORD

Value entered in listing upload Add website dialog in

Top Producer password field.

Optional

Content-Type application/x-www-form-urlencoded Yes

If the content of the TPOL-Action header is “Upload”, the body of the HTTP request will contain

the listing data in TPRETS XML format. If the content of the TPOL-Action header is “Remove”,

the body of the HTTP request will be empty. In this case the server-side application can identify

the listing data to remove from the external system by polling the TPOL-FILENAME header for

the unique filename associated with the listing data.

After polling the headers to determine the requested operation, and performing the requested

operation on the XML data in the body of the HTTP request, the server-side application is

responsible for returning an HTTP response to indicate the status of the operation.

To indicate a successful operation, the server side application should return an HTTP-Response

with the following XML in the body of the response:

<?xml version="1.0"?>

<TPOLResult>

<TPOLAction>Upload</TPOLAction>

<Status>20 0</Status>

<Details>Successful<Details>

</TPOLResult>

Page 11: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 11

Note:

The element <TPOLAction> should take as its value, whatever value was passed to the

application in the HTTP header “TPOL-Action”. Valid values include “Upload” and “Remove”.

Currently the only valid value for the <Status> to indicate a successful operation is the status

code “200”.

The <Details> element is optional. If present this field can include text to describe the status of

the operation. Typically, when the value of the operation status is “200” indicating a successful

operation, the details field will be ignored by the listing upload feature.

To indicate an unsuccessful operation, the server side application should return an HTTP-

Response with the following XML in the body of the response:

<?xml version="1.0"?>

<TPOLResult>

<TPOLAction>Upload</TPOLAction>

<Status>50 0</Status>

<Details>Unsuccessful<Details>

</TPOLResult>

Note:

The element <TPOLAction> should take as its value, whatever value was passed to the

application in the HTTP header “TPOL-Action”. Valid values include “Upload” and “Remove”.

Currently the only valid value for the <Status> to indicate an unsuccessful operation is the status

code “500”.

The <Details> element is optional. If present this field can include text to describe the status of

the operation. When the operation is unsuccessful, any additional error messages will be returned

to the user to assist in debugging the failed operation. The listing upload feature does not

constrain the potential error messages to be included in the <Details> element.

The listing upload feature will evaluate the success of the operation as follows:

• If a valid response as defined above is returned indicating that the operation is successful

then the listing upload will notify the Top Producer user that the operation has succeeded.

• If a valid response as defined above is returned indicating that the operation is

unsuccessful then the listing upload feature will notify the user that the operation has

failed. Any information contained in the <Details> element will be provided to the user.

Page 12: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 12

In all other cases, including but not limited to no response, a timed out operation, a malformed or

unexpected response, the listing upload feature will evaluate the operation as unsuccessful and

notify the user that the operation has failed.

It is important to note that even if the server side application completes the intended operation,

without a valid response indicating success the listing operation will evaluate the operation as

failed and notify the user accordingly. The listing upload interface has been defined to allow a

wide variety of external systems to accept listing upload data, but due to the impossibility of

knowing all responses that may be returned by external systems, the external system must return

valid responses as defined above for the listing upload feature to properly evaluate the success of

the operation.

Page 13: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 13

Converting RETS XML to HTML

The conversion of RETS XML to HTML is part of the responsibility of the RETS server, and as

such is outside the scope of this paper.

Page 14: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 14

Converting TPRETS XML to HTML

The listing data uploaded in TPRETS XML format can be converted to HTML as described

herein. After an HTML template is created, that has an appropriate layout and descriptive

elements, the Top Producer user or their webmaster can paste the data contained in each XML

element into the appropriate HTML element in the template. Placeholders can be included in the

HTML template indicating the appropriate XML element to be inserted. Those

placeholders can be overwritten with the actual listing data when pasting the XML data or

manually deleted in the finished HTML page. Using a template will promote consistency among

all listing pages.

To assist in this process, this document contains a sample template that can be used as is, or can

be extended to match the style and layout of the existing website (refer to “Appendix B” in this

document for more details). Any additional website features can be added to the template as well.

The sample template contains commenting to describe the process of adding the XML data.

Once the template has had the listing data added, it can be saved to an appropriate location on the

web server. Links to and from other pages must be added based on the structure of the existing

website.

Sample HTML page

The sample HTML template is included in “Appendix B” in this document.

Integration with existing web pages

Since the listing upload feature operates on a per-listing basis, a single HTML page or single

group of related pages can be created as each listing is uploaded. Integrating this page with the

existing website presents challenges because the structure of every website is different. Links to

and from the HTML pages created from the uploaded listing data must be added by the

webmaster for the site. Any other site features, such as search engines, lead inquiry forms, scripts,

active content, or any other features that should appear on the listing page must also be added by

the webmaster.

It is expected that the person responsible for maintaining the website will have sufficient

knowledge of HTML to both create a web page from the listing XML data, and to integrate the

listing page with the rest of the site. While this can be accomplished manually, using a text editor,

various HTML editors with graphical interfaces may streamline the process.

Additionally, for those with programming experience, it is possible to automate this process. The

XML can be converted to an HTML page using a scripting language, or can be accomplished

using XSLT. While directions to implement such a utility are outside the scope of this paper,

there are free resources available on the web to describe the process.

Page 15: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Version 1.0 2002/09/05

Appendix A — TPRETS DTD

There are two parts to the DTD, the formal description of all possible XML elements in the DTD,

and a sample of actual data contained within a TPRES XML file. Please note that fields that do

not contain data will not be included as elements in the XML file, so the order of elements will be

dynamic based on the data present in the listing record but other than being present or absent,

elements will be in the order outlined below.

<!DOCTYPE TPREData [

<!-- TPOnline Real Estate Transaction Specification (TPRETS) DTD -->

<!-- TPOnline Real Estate Transaction Markup Language (TPRETML) -->

<!—

Extends the RETS DTD:

<!DOCTYPE REData SYSTEM "REData-20001001 .dtd">

<!DOCTYPE REData [

Real Estate Transaction Specification (RETS) DTD

Real Estate Transaction Markup Language (RETML)

submitted by:

Dan Musso

WyldFyre Technologies, Inc.

Version 1.0 10/01/2000

Copyright ' 1999, 2000 Vista Information Solutions, Inc.,

GTE Enterprise Solutions, WyldFyre Technologies, Inc.,

RealSelect, Inc., Interealty Corporation, and National

Association of Realtors? All rights reserved. This document

and translations of it may be copied and furnished to

others, and derivative works that comment on or otherwise

explain it or assist in its implementation may be prepared,

published and distributed in whole or in any part without

restriction, provided that the above copyright notice and

this paragraph are included on all such copies and

derivative works.

- ->

<!—

submitted by Top Producer Inc.

Page 16: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 16

- ->

<!-- COMPOUND ELEMENTS -->

<!ELEMENT ResidentialProperty (Listing, Bedrooms,

Baths, LivingArea?, LotSize?, LotSizeText?, SquareFeet?, Parking?,

Stories?, YearBuilt?, Heating?, Cooling?, Pool?, WaterFront?, InteriorFeatures?,

ExteriorFeatures?, Type?, Style?, Rooms?, Fireplaces?, Roof?,

Exterior?, Attached?, Flooring?, DistanceToTransit?, OtherItem*,

Feature*)>

<!ATTLIST ResidentialProperty

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Listing (StreetAddress, ListingData,

MLSInformation, GeographicData?, ModificationTimestamp, ListingID,

Zoning, SchoolData, PictureData*)>

<!ATTLIST Listing

TPOListingID CDATA #IMPLIED

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Baths (BathsTotal)>

<!ATTLIST Baths

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Parking (Garage?, CarPort?,

OpenParking?, CoveredParking?, RVParking?)>

<!ATTLIST Parking

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETSX’>

<!ELEMENT Rooms (DiningRoom?, LivingRoom?,

FamilyRoom?, Basement?, Kitchen?, MasterBedroom?, SecondBedroom?,

ThirdBedroom?, FourthBedroom?, FifthBedroom?, Office?, Den?,

GreatRoom?, Library?, Laundry?, Workshop?, TotalRooms?)>

<!ATTLIST Rooms

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT PictureData (PictureID?, URL?,

PictureCaption?, ContentType?, BinaryData?)>

<!ATTLIST PictureData

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

Page 17: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 17

<!ELEMENT Logo (PictureCaption?, ContentType?,

BinaryData?)>

<!ATTLIST Logo

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT StreetAddress (StreetNumber?,

BoxNumber?, StreetDirPrefix?, StreetName, StreetAdditionalInfo?,

StreetDirSuf fix?, StreetSuf fix?, UnitNumber?, City?,

StateOrProvince?, Country?, PostalCode?, CarrierRoute?,

BuildingFloor?, County?)>

<!ATTLIST StreetAddress

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT ListingData (REAgent+, REOffice?,

ListDate, ListPrice, ExpirationDate?, ListingType?, Commission?,

Remarks?, PublicRemarks?, Include*, Exclude*)>

<!ATTLIST ListingData

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT MLSInformation (MLSNumber,

ListingStatus, ListingArea?)>

<!ATTLIST MLSInformation

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT GeographicData (Latitude, Logitude,

County?, Directions?, MapCoordinate?, URL?)>

<!ATTLIST GeographicData

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT SchoolData (DistanceToSchool?, SchoolDistrict?)> <!ATTLIST

SchoolData

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT REAgent (FirstName?, LastName?,

ContactInformation?, StreetAddress?, AgentID?)>

<!ATTLIST REAgent

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

Page 18: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 18

<!ELEMENT REOffice (Name?, ContactInformation?,

StreetAddress?, OfficeID?, Logo?)>

<!ATTLIST REOffice

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETSX’>

<!ELEMENT ContactInformation (OfficePhone?, CellPhone?,

HomePhone?, Fax?, Pager?, Email?, URL?)>

<!ATTLIST ContactInformation

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT ListingStatus (#PCDATA)>

<!ATTLIST ListingStatus

Status (Active | Closed | Expired | OffMarket |

Pending) #REQUIRED

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!-- BASIC ELEMENTS -->

<!-- DATE/TIME ELEMENTS -->

<!-- See ISO 8601 for acceptable values for Format -->

< ! E L E M E N T Y e a r B u i l t ( # P C D A T A ) >

<!ATTLIST YearBuilt

Type CDATA #FIXED ‘DATE’

Format CDATA #FIXED ‘YYYY’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT ModificationTimestamp (#PCDATA)>

<!ATTLIST ModificationTimestamp

Type CDATA #FIXED ‘DATE’

Format CDATA #FIXED ‘YYYY-MM-DDThh:mm:ss[ .sss]’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT ListDate (#PCDATA)>

<!ATTLIST ListDate

Type CDATA #FIXED ‘DATE’

Page 19: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 19

Format CDATA #FIXED ‘YYYY-MM-DD’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT ExpirationDate (#PCDATA)>

<!ATTLIST ExpirationDate

Type CDATA #FIXED ‘DATE’

Format CDATA #FIXED ‘YYYY-MM-DD’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!-- MONETARY ELEMENTS -->

<!-- See ISO 4217 for acceptable values for CurrencyCode --

<!ELEMENT ListPrice (#PCDATA)>

<!ATTLIST ListPrice

Type CDATA #FIXED ‘FLOAT’

CurrencyCode CDATA ‘USD’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Commission (#PCDATA)>

<!ATTLIST Commission

Type CDATA #FIXED ‘FLOAT’

CurrencyCode CDATA ‘USD’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT OriginalListPrice (#PCDATA)>

<!ATTLIST OriginalListPrice

Type CDATA #FIXED ‘FLOAT’

CurrencyCode CDATA ‘USD’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!-- NUMERIC ELEMENTS -->

<!ELEMENT Bedrooms (#PCDATA)>

<!ATTLIST Bedrooms

Type CDATA #FIXED ‘INTEGER’

>

Page 20: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

Top Producer Systems 20

<!ELEMENT BathsTotal (#PCDATA)>

<!ATTLIST BathsTotal

Type CDATA #FIXED ‘FLOAT’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Stories (#PCDATA)>

<!ATTLIST Stories

Type CDATA #FIXED ‘INTEGER’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Length (#PCDATA)>

<!ATTLIST Length

Type CDATA #FIXED ‘INTEGER’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Width (#PCDATA)>

<!ATTLIST Width

Type CDATA #FIXED ‘INTEGER’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!-- DIMENSIONAL ELEMENTS -->

<!ELEMENT Area (#PCDATA)>

<!ATTLIST Area

Units (SqFeet | SqMeters | Acres | Hectares)

‘SqFeet’

Type (INTEGER | FLOAT | TEXT) ‘INTEGER’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Dimensions (#PCDATA)>

<!ATTLIST Dimensions

Units (Feet | Meters | Unspecified) ‘Feet’

Type CDATA #FIXED ‘TEXT’

Page 21: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

Top Producer Systems 21

<!ELEMENT Basement (Area?, Dimensions?, Length?,

Width?)>

<!ATTLIST Basement

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT DiningRoom (Area?, Dimensions?, Length?,

Width?)>

<!ATTLIST DiningRoom

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT FamilyRoom (Area?, Dimensions?, Length?,

Width?)>

<!ATTLIST FamilyRoom

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT LivingRoom (Area?, Dimensions?, Length?,

Width?)>

<!ATTLIST LivingRoom

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Kitchen (Area?, Dimensions?, Length?,

Width?)>

<!ATTLIST Kitchen

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT MasterBedroom (Area?, Dimensions?, Length?,

Width?)>

<!ATTLIST MasterBedroom

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT SecondBedroom (Area?, Dimensions?, Length?,

Width?)>

<!ATTLIST SecondBedroom

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

Page 22: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 22

<!ELEMENT ThirdBedroom (Area?, Dimensions?, Length?,

Width?)>

<!ATTLIST ThirdBedroom

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT FourthBedroom (Area?, Dimensions?, Length?,

Width?)>

<!ATTLIST FourthBedroom

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT FifthBedroom (Area?, Dimensions?, Length?,

Width?)>

<!ATTLIST FifthBedroom

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT Office (Area?, Dimensions?, Length?,

Width?)>

<!ATTLIST Office

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT Den (Area?, Dimensions?, Length?, Width?)>

<!ATTLIST Den

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT GreatRoom (Area?, Dimensions?, Length?,

Width?)>

<!ATTLIST GreatRoom

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT Library (Area?, Dimensions?, Length?,

Width?)>

<!ATTLIST Library

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

Page 23: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 23

<!ELEMENT Laundry (Area?, Dimensions?, Length?,

Width?)>

<!ATTLIST Laundry

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT Workshop (Area?, Dimensions?, Length?,

Width?)>

<!ATTLIST Workshop

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT LotSize (Area?, Dimensions?, Length?,

Width?)>

<!ATTLIST LotSize

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT LivingArea (Area?)>

<!ATTLIST LivingArea

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!-- YES/NO TEXT ELEMENTS -->

<!ELEMENT Garage (#PCDATA)>

<!ATTLIST Garage

Present (Yes | No) ‘Yes’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETSX’>

<!ELEMENT CarPort (#PCDATA)>

<!ATTLIST CarPort

Present (Yes | No) ‘Yes’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETSX’>

<!ELEMENT OpenParking (#PCDATA)>

<!ATTLIST OpenParking

Present (Yes | No) ‘Yes’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETSX’>

Page 24: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 24

<!ELEMENT CoveredParking (#PCDATA)>

<!ATTLIST CoveredParking

Present (Yes | No) ‘Yes’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETSX’>

<!ELEMENT RVParking (#PCDATA)>

<!ATTLIST RVParking

Present (Yes | No) ‘Yes’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT Pool (#PCDATA)>

<!ATTLIST Pool

Present (Yes | No) ‘Yes’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT WaterFront (#PCDATA)>

<!ATTLIST WaterFront

Present (Yes | No) ‘Yes’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Attached (#PCDATA)>

<!ATTLIST Attached

Present (Yes | No) ‘Yes’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!-- TEXT ELEMENTS -->

<!ELEMENT InteriorFeatures (#PCDATA)>

<!ATTLIST InteriorFeatures

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT ExteriorFeatures (#PCDATA)>

<!ATTLIST ExteriorFeatures

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

Page 25: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 25

<!ELEMENT Exterior (#PCDATA)>

<!ATTLIST Exterior

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Type (#PCDATA)>

<!ATTLIST Type

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Style (#PCDATA)>

<!ATTLIST Style

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Fireplaces (#PCDATA)>

<!ATTLIST Fireplaces

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETSX’>

<!ELEMENT Heating (#PCDATA)>

<!ATTLIST Heating

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETSX’>

<!ELEMENT Cooling (#PCDATA)>

<!ATTLIST Cooling

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETSX’>

<!ELEMENT Roof (#PCDATA)>

<!ATTLIST Roof

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Flooring (#PCDATA)>

<!ATTLIST Flooring

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

Page 26: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 26

<!ELEMENT LotSizeText (#PCDATA)>

<!ATTLIST LotSizeText

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT SquareFeet (#PCDATA)>

<!ATTLIST SquareFeet

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT DistanceToTransit (#PCDATA)>

<!ATTLIST DistanceToTransit

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT PictureID (#PCDATA)>

<!ATTLIST PictureID

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT PictureCaption (#PCDATA)>

<!ATTLIST PictureCaption

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT ContentType (#PCDATA)>

<!ATTLIST ContentType

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT StreetNumber (#PCDATA)>

<!ATTLIST StreetNumber

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT StreetName (#PCDATA)>

<!ATTLIST StreetName

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT BoxNumber (#PCDATA)>

Page 27: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 27

<!ATTLIST BoxNumber

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT StreetDirPrefix (#PCDATA)>

<!ATTLIST StreetDirPrefix

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT StreetAdditionalInfo (#PCDATA)>

<!ATTLIST StreetAdditionalInfo

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT StreetDirSuf fix (#PCDATA)>

<!ATTLIST StreetDirSuffix

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT StreetSuf fix (#PCDATA)>

<!ATTLIST StreetSuffix

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT UnitNumber (#PCDATA)>

<!ATTLIST UnitNumber

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT City (#PCDATA)>

<!ATTLIST City

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT StateOrProvince (#PCDATA)>

<!ATTLIST StateOrProvince

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Country (#PCDATA)>

<!ATTLIST Country

Page 28: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 28

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT PostalCode (#PCDATA)>

<!ATTLIST PostalCode

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT CarrierRoute (#PCDATA)>

<!ATTLIST CarrierRoute

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT BuildingFloor (#PCDATA)>

<!ATTLIST BuildingFloor

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT County (#PCDATA)>

<!ATTLIST County

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT ListingID (#PCDATA)>

<!ATTLIST ListingID

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT ListingType (#PCDATA)>

<!ATTLIST ListingType

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT ListingArea (#PCDATA)>

<!ATTLIST ListingArea

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT AgentID (#PCDATA)>

<!ATTLIST AgentID

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

Page 29: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 29

<!ELEMENT OfficeID (#PCDATA)>

<!ATTLIST OfficeID

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT DistanceToSchool (#PCDATA)>

<!ATTLIST DistanceToSchool

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT SchoolDistrict (#PCDATA)>

<!ATTLIST SchoolDistrict

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT MLSNumber (#PCDATA)>

<!ATTLIST MLSNumber

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT Name (#PCDATA)>

<!ATTLIST Name

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT FirstName (#PCDATA)>

<!ATTLIST FirstName

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT LastName (#PCDATA)>

<!ATTLIST LastName

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT OfficePhone (#PCDATA)>

<!ATTLIST OfficePhone

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT CellPhone (#PCDATA)>

Page 30: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 30

<!ATTLIST CellPhone

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT HomePhone (#PCDATA)>

<!ATTLIST HomePhone

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Fax (#PCDATA)>

<!ATTLIST Fax

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Pager (#PCDATA)>

<!ATTLIST Pager

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Email (#PCDATA)>

<!ATTLIST Email

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT URL (#PCDATA)>

<!ATTLIST URL

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Zoning (#PCDATA)>

<!ATTLIST Zoning

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT Remarks (#PCDATA)>

<!ATTLIST Remarks

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT PublicRemarks (#PCDATA)>

<!ATTLIST PublicRemarks

Page 31: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 31

RETSLevel (RETS | RETSX | TPO) #FIXED ‘RETS’>

<!ELEMENT BinaryData (#PCDATA)>

<!ATTLIST BinaryData

Encoding CDATA #FIXED ‘Base64’

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT OtherItem (#PCDATA)>

<!ATTLIST OtherItem

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT Feature (#PCDATA)>

<!ATTLIST Feature

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT Include (#PCDATA)>

<!ATTLIST Include

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

<!ELEMENT Exclude (#PCDATA)>

<!ATTLIST Exclude

RETSLevel (RETS | RETSX | TPO) #FIXED ‘TPO’>

]>

<!-- Sample: -->

<ResidentialProperty>

<Listing TPOListingID=‘2C549DEB-9FDA-4C09-9911-2095D8850BEA’ >

<StreetAddress>

<StreetNumber>10000</StreetNumber>

<StreetName>Shellbridge< /StreetName>

<StreetDirPrefix>E< /StreetDirPrefix>

<StreetDirSuffix>S< /StreetDirSuf fix>

Page 32: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 32

<StreetSuffix>Bl< /StreetSuf fix>

<UnitNumber> 155< /UnitNumber>

<City>Richmond< /City>

<StateOrProvince>BC< /StateOrProvince>

<Country>Canada< /Country>

<PostalCode>V6X2W8< /PostalCode>

<CarrierRoute> 02010-00< /CarrierRoute>

</StreetAddress>

<ListingData>

<REAgent>

<FirstName>Kelly</FirstName>

<LastName>Agent< /LastName>

< C o n t a c t I n f o r m a t i o n >

<OfficePhone>412-312-3122</OfficePhone>

<CellPhone>312-412-5123</CellPhone>

<HomePhone>594-594-4202</HomePhone>

< F a x > ( 5 1 2 ) 6 1 2 - 6 5 1 2 < / F a x >

<Pager>231-241-2321</Pager>

<Email>cantifaeff@abc. com</Email>

<URL>www. 123. ca</URL>

</ContactInformation>

< S t r e e t A d d r e s s >

<StreetNumber>10651</StreetNumber>

<StreetName>Shellbridge< /StreetName>

<StreetDirPrefix>E< /StreetDirPrefix>

<StreetDirSuffix>S< /StreetDirSuf fix>

<StreetSuffix>Bl< /StreetSuf fix>

<UnitNumber> 155< /UnitNumber>

<City>Richmond< /City>

<StateOrProvince>BC< /StateOrProvince>

<Country>Canada< /Country>

<PostalCode>V6X2W8< /PostalCode>

<CarrierRoute> 02010-00< /CarrierRoute>

Page 33: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 33

</StreetAddress>

</REAgent>

<ListDate>2002-06-24</ListDate>

<ListPrice CurrencyCode=‘CAD’ >150000.00</ListPrice>

<ExpirationDate>2002-0 9-22</ExpirationDate>

<Commission CurrencyCode=‘CAD’ >8995.00</Commission>

<PublicRemarks>This single story detached, ranch home

builit in 1970 has 4 bedrooms, 3 full baths, 1 half bath, and is 4105

total sq.ft. Rooms include a family room, formal dining room, master

bedroom, laundry room, foyer. Other features include pantry, window

treatm< /PublicRemarks>

</ListingData>

<MLS Information>

<MLSNumber>22 44225< /MLSNumber>

<ListingStatus>Active< /ListingStatus>

<ListingArea>Eastside< /ListingArea>

</MLS Information>

<ModificationTimestamp>2002-0 6-

14T00 :00:00. 000</ModificationTimestamp>

<ListingID>2C549DEB-9FDA-4C09-9911-2095D8850BEA</ListingID>

<Zoning>Acreage</Zoning>

<SchoolData>

<DistanceToSchool>Within 3 miles</DistanceToSchool>

<SchoolData>

</ Listing>

<BedRooms> 3</BedRooms>

<Baths>

<BathTotal>2</BathTotal>

</Baths>

<LivingArea>

<Area Units=‘SqFeet’ >100</Area>

</LivingArea>

<LotSize>

<Area Units=‘SqFeet’ >100</Area>

</LotSize>

<Parking>

Page 34: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 34

<Garage>Yes< /Garage>

<CarPort>Yes< /CarPort>

<OpenParking>Yes< /OpenParking>

<CoveredParking>Yes< /CoveredParking>

<RVParking>No< /RVParking>

</ Parking>

<Stories>2</Stories>

<YearBuilt>2 000< /YearBuilt>

<Heating>Yes< /Heating>

<Cooling>No< /Cooling>

<Pool>Yes</Pool>

<WaterFront>No< /WaterFront>

<Exterior>Aluminum< /Exterior>

<Style> Duplex< /Style>

<Rooms>

<DiningRoom>

<Length> 13</Length>

<Width> 12</Width>

</DiningRoom>

<LivingRoom>

<Length> 15</Length>

<Width> 14</Width>

</LivingRoom>

<FamilyRoom>

<Length> 16</Length>

<Width> 14</Width>

</FamilyRoom>

<Kitchen>

<Length>2 4</Length>

<Width> 12</Width>

</Kitchen>

<MasterBedroom>

<Length> 18</Length>

Page 35: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 35

<Width> 14</Width>

</MasterBedroom>

<SecondBedroom>

<Length> 14</Length>

<Width> 13</Width>

</SecondBedroom>

<ThirdBedroom>

<Length> 13</Length>

<Width> 12</Width>

</ThirdBedroom>

<FourthBedroom>

<Length> 10</Length>

<Width> 10</Width>

</FourthBedroom>

<FifthBedroom>

<Length> 10</Length>

<Width> 10</Width>

</FifthBedroom>

<Office>

<Length> 12</Length>

<Width> 16</Width>

</Office>

<Den>

<Length> 12</Length>

<Width> 12</Width>

</Den>

<GreatRoom>

<Length> 16</Length>

<Width> 18</Width>

</GreatRoom>

<Library>

<Length> 12</Length>

<Width> 16</Width>

Page 36: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 36

</Library>

<Laundry>

<Length> 2</Length>

<Width> 6</Width>

</Laundry>

<Workshop>

<Length> 12</Length>

<Width> 17</Width>

</Workshop>

</Rooms>

<Fireplace s> 2</Fireplaces>

<Roof>Composition< /Roof>

<Attached> Ye s< /Attached>

<Flooring>W/w carpet</Flooring>

<DistanceToTransit>200 meters</DistanceToTransit>

<OtherItem>Playground< /OtherItem>

<Feature>Sauna</Feature>

<Feature>Triple garage</Feature>

</ResidentialProperty>

Page 37: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 37

Appendix B — Converting XML to HTML Sample Page

To view the sample web page below, simply paste the text into a text editor and save as

“Sample.htm”. Double-click the file to launch it in the web browser.

<html>

<head>

<title>1915 W. Broadway Avenue Vancouver, B.C.

</title>

<!-- COMMENT: For the title of the HTML document, paste the contents of

the appropriate address elements to construct an appropriate title

string or manually enter the desired title for this page. -->

<!--

Copyright 2002, Top Producer Systems

- ->

</head>

<body bgcolor="#FFFFFF">

<!-- COMMENT: bgcolor is white in this case, feel free to set color or

background image to be consistent with the rest of the pages on the

website. -->

<!-- COMMENT: This page has been created by pasting elements from a

TPRETS XML file containing listing data into an HTML template. To

create an HTML page using real data, paste this HTML page into a text

editor, and open the uploaded XML file in another text editor window.

For each HTML element in this file, the target XML element tags are

embedded. Now, locate the corresponding XML element in the uploaded

file and paste it into the HTML. The sample data and XML tags in the

HTML page should be overwritten by the actual data from the uploaded

XML file. The order of the HTML page is based on a suggested layout

based on related data fields, and does not match the XML file. It will

be necessary to traverse the XML file to locate the appropriate element

as you proceed through the HTML template.

This page does not apply any sort of style or formatting to elements.

Document structure is maintained by using tables to group conceptually

related element. Headings of various levels are also used to separate

sections. Style can be easily added to this document by adding a link

to a stylesheet.

Page 38: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 38

NOTE: Since browsers should ignore all HTML elements that they do not

understand, the XML element tags from the listing data file have been

pasted along with the data that they encapsulate. This should assist

webmasters in using or extending this template. The XML element tags

are optional, and for creating a web page to be deployed on a site they

are not recommended.

This HTML template is one possible way to parse the data in the

uploaded XML file into an HTML page. It is possible to paste XML

elements into any pre-existing HTML template to be consistent with

existing pages on the website. Additionally, this page contains no

navigational links to the rest of a site since this will be different

for each website. Adding links to navigate, and integration with other

features of the existing website are the responsibility of the user.

- ->

<h1>Listing Detail</h1>

<table cellpadding=2 border=0>

<!-- COMMENT: For all tables on this page:

1 Border=0 If desired set border to 1 or greater to make table

structure explicit.

2 Labels are present whether or not data for the corresponding XML

element exists. This simplifies page creation, as table structure would

have to be modified if a label-value pairing were removed. -->

<!-- COMMENT: This table contains a listing photo and the basic listing

data. -->

<tr>

<td rowspan=6 valign="top"><a href="265E5E54-288D-417C-8367-

6024023CF7FD. jpg" target="new_window"><img src="265E5E54-288D-417C-

8367-6024023CF7FD.jpg" width=200 height=200>

<!-- COMMENT: Images in the XML file are encoded in base 64 format. It

will be necessary to decode them back into a binary format before they

can be used in a web page. If present, it is recommended to use the

photo with the caption "Property.view _front" as the main photo for the

listing.-->

</ td>

<td>ListPrice :</td>

<td>$<ListPrice>100000 . 00</ListPrice> </td>

</ tr>

<tr>

<td>Address :</td>

<td><StreetNumber>1915</StreetNumber>

<StreetDirPrefix>W</StreetDirPrefix> <StreetName>Broadway</StreetName>

Page 39: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 39

<S tree tDi rSu f fix>W< / S tree tDi rSu f fix>

<StreetSuffix>Avenue</StreetSuf fix>, <UnitNumber></UnitNumber> </td>

</ tr>

<tr>

<td>Location :</td>

<td><City>Vancouver</City>, <StateOrProvince>BC</StateOrProvince>

<Country>Canada</Country> <PostalCode>E4R5T6</PostalCode>

</ td>

</ tr>

<tr>

<td>Size :</td>

<td><SquareFeet>1300</SquareFeet> &nbspSquare Feet</td>

</ tr>

<tr>

<td>Bedrooms: &nbsp</td>

<td><BedRooms> 3< /BedRooms>< / td>

</ tr>

<tr>

<td>Bathrooms: &nbsp </td>

<td><BathTotal>2 . 5</BathTotal> </td>

</ tr>

</table>

<br>

<hr>

<br>

<h2>Property description </h2>

<table border=0>

<!-- COMMENT: More general fields suitable for a summary page as well

as for including on a listing details page. -->

<tr>

<td><PublicRemark> This pleasant home is a great investment for first

time buyers planning to start a family. The unfinished basement can be

converted to additional bedrooms or a recreational area. Located in a

Page 40: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 40

quiet neighborhood that is close to malls and public

libraries< /PublicRemark>< /td>

</ tr>

</table>

<br>

<table border=0>

<tr>

<td>MLS #:&nbsp </td>

<td><MLSNumber>0123456789</MLSNumber></td>

</ tr>

<tr>

<td>Area: &nbsp </td>

<td><ListingArea>Kitsilano< /ListingArea>< /td>

</ tr>

<tr>

<td>Style: &nbsp</td>

<!-- COMMENT: Note that we cannot paste the XML tags for the TPRETS

element "Style" as this is also an HTML tag. The data within the

"Style" tags in the XML file should be pasted into the next HTML

element "French provincial" is the sample data. -->

<td>French provincial </td>

</ tr>

<tr>

<td>Attached: &nbsp </td>

<td><Attached>Ye s< /Attached>< / td>

</ tr>

<tr>

<td>Year built: &nbsp </td>

<td><YearBuilt>1999</YearBuilt></td>

</ tr>

<tr>

<td>Lot size: &nbsp </td>

<td><LotSizeText>Lot size</LotSizeText></td>

</ tr>

<tr>

Page 41: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 41

<td>Stories: &nbsp </td>

<td><Stories>1</Stories></td>

</ tr>

</table >

<br>

<hr>

<br>

<h2> Property features </h2>

<table border=0 cellpadding=10>

<!-- COMMENT: This table contains room dimension. If there is no room

data in the XML file, simply leave the table cell blank. If the room

dimensions are supplied paste in the length and width. Add a separator

" x " or " by " as desired. -->

<tr>

<td colspan=6 ><h3>Room dimensions:</h3></td>

</ tr>

<tr>

<td> Living Room </td>

<td><Length>11</Length> x <Width>13</Width></td>

<td> Dining Room </td>

<td><Length>10</Length> x <Width>10</Width></td>

<td> Kitchen </td>

<td><Length>9</Length> x <Width>15</Width></td>

</ tr>

<tr>

<td> FamilyRoom </td>

<td><Length>12</Length> x <Width>12</Width></td>

<td> Master Bedroom </td>

<td><Length>12</Length> x <Width>14</Width></td>

<td> Second Bedroom </td>

<td><Length>10</Length> x <Width>8</Width></td>

</ tr>

<tr>

Page 42: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 42

<td> Third Bedroom </td>

<td><Length>8</Length> x <Width> 9</Width></td>

<td> Fourth bedroom </td>

<td><Length>< /Length> <Width>< /Width>< /td>

<td> Fifth Bedroom </td>

<td><Length>< /Length> <Width>< /Width>< /td>

</ tr>

<tr>

<td> Office </td>

<td><Length>< /Length> <Width>< /Width>< /td>

<td> Den </td>

<td><Length>10</Length> x <Width>8</Width></td>

<td> Great Room </td>

<td><Length>15</Length> x <Width>15</Width></td>

</ tr>

<tr>

<td> Library </td>

<td><Length>< /Length> <Width>< /Width>< /td>

<td> Laundry </td>

<td><Length>< /Length> <Width>< /Width>< /td>

<td> Workshop </td>

<td><Length>15</Length> x <Width>10</Width></td>

</ tr>

<tr>

<td> Other</td>

<td><Length>13</Length> x <Width>12</Width></td>

<td> Other </td>

<td><Length>14</Length> x <Width>13</Width></td>

<td> Other </td>

<td><Length>10</Length> x <Width>11</Width></td>

</ tr>

</table>

Page 43: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 43

<br>

<table border=0>

<!-- COMMENT: Add in all other property features -->

<tr>

<td colspan=2><h3>Other property features :</h3></td>

</ tr>

<tr>

<td>Additional features: &nbsp</td>

<!-- COMMENT: Multiple values are possible here. All should be pasted

into this table cell, using ", " as a separator. -->

<td><Feature>Hot tub</Feature>, <Feature>Pool</Feature>,

<Feature>Sauna</Feature>, <Feature>Triple garage</Feature>,

<Feature>View lot</Feature>, <Feature>Waterfront</Feature> </td>

</ tr>

<tr>

<td>Other items: &nbsp</td>

<td><OtherItem>Toolshed< /OtherItem>< /td>

</ tr>

<tr>

<td>Parking: &nbsp</td>

<td>Garage</td>

</ tr>

<tr>

<td>Heating: &nbsp</td>

<td><Heating>Forced air</Heating></td>

</ tr>

<tr>

<td>Fireplaces: &nbsp</td>

<td><Fireplaces>Gas Fireplace</Fireplaces> </td>

</ tr>

<tr>

<td>Cooling: &nbsp</td>

Page 44: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 44

<td><Cooling>Air conditioning</Cooling></td>

</ tr>

<tr>

<td>Roof: &nbsp</td>

<td><Roof>Cedar shingle</Roof></td>

</ tr>

<tr>

<td>Flooring: &nbsp</td>

<td><Flooring>Carpeting, hardwood</Flooring></td>

</ tr>

<tr>

<td>Exterior: &nbsp</td>

<td><Exterior>Stucco< /Exterior>< /td>

</ tr>

<tr>

<td>Zoning: &nbsp</td>

<td><Zoning>Residential</Zoning></td>

</ tr>

<tr>

<td>Distance to school:&nbsp</td>

<td><DistanceToSchool> 3 blocks< /DistanceToSchool> </td>

</ tr>

<tr>

<td>Distance to transit:&nbsp</td>

<td><DistanceToTransit> 1 block< /DistanceToTransit> </td>

</ tr>

<tr>

<td>Includes: &nbsp </td>

<!-- COMMENT: Multiple values are possible here. All should be pasted

into this table cell, using ", " as a separator. -->

<td><Include>Drapes</Include>, <Include>Dining room

chandelier</Include>, <Include>All appurtenances and lanscaping

improvement s< / Include>< /td>

</ tr>

<tr>

Page 45: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 45

<td>Excludes: &nbsp </td>

<!-- COMMENT: Multiple values are possible here. All should be pasted

into this table cell, using ", " as a separator. -->

<td><Exclude>Hallway mirror</Exclude>, <Exclude>Master bedroom light

fixture</Exclude></td>

</ tr>

</table>

<br>

<hr>

<br>

<h2>Additional Property Photos</h2>

<!-- COMMENT: Images in the XML file are encoded in base 64 format. It

will be necessary to decode them back into a binary format before they

can be used in a web page. Multiple photos may be included in the XML

file. Each can be included in a simple table. Once the file has been

decoded, and saved in the same directory as the HTML page type the

filename in place of the sample names. This will display the image

thumbnail. Clicking on the thumbnail will open the full sized image in

a new browser window. Paste in the appropriate caption for each photo

from the XML file to provide a description of the image. -->

<table border=0>

<tr>

<td><PictureCaption>Property. view _front</PictureCaption></td>

</ tr>

<tr>

<td><a href="265E5E54-288D-417C-8367-6024023CF7FD.jpg"

target="new_window"><img src="265E5E54-288D-417C-8367-6024023CF7FD.jpg"

height=60 width=60></a></td>

</ tr>

</table><table border=0>

<tr>

<td><PictureCaption>Map . directions</PictureCaption></td>

</ tr>

<tr>

Page 46: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 46

<td><a href="265E5E54-0123-417C-8367-6024023CF7FD.jpg"

target="new_window"><img src="265E5E54-0123-417C-8367-6024023CF7FD.jpg"

height=60 width=60></a></td>

</ tr>

</table>

<br>

<hr>

<br>

<table border=0>

<!-- COMMENT: Depending on the existing website, agent information may

not be appropriate on the lising details page. Delete this table if not

desired. -->

<tr>

<td colspan=2><h3><FirstName>Kelly</FirstName>

<LastName>Agent</LastName></h3> </td>

</ tr>

<tr>

<td>Business phone: </td>

<td><OfficePhone>604-555-1234 </OfficePhone> </td>

</ tr>

<tr>

<td>Mobile phone: </td>

<td><CellPhone>604-555-1234 </CellPhone> </td>

</ tr>

<tr>

<td>Home phone: </td>

<td><HomePhone>604-555-1234 </HomePhone> </td>

</ tr>

<tr>

<td>Fax: </td>

<td><Fax> 604-555-1234 </fax> </td>

</ tr>

<tr>

<td>Pager: </td>

Page 47: tp listingupload whitepaper - Top Producer Paper Top Producer 8i ... This document provides a sample HTML template that XML data can be pasted into,

Top Producer Systems 47

<td><Pager> 604-555-1234 </Pager> </td>

</ tr>

<tr>

<td>Email: </td>

<td><Email>kellyagent@doverealty. com</Email> </td>

</ tr>

<tr>

<td colspan

=2><StreetNumber> 123< /StreetNumber><StreetDirPrefix>< /StreetDirPrefix><

StreetName>Main< /StreetName><StreetDirSuffix>< /StreetDirSuffix><StreetS

uffix>Street</StreetSuf fix>, <UnitNumber>5th Floor</UnitNumber></td>

</ tr>

<tr>

<td colspan=2><City>Vancouver</City>,

<StateOrProvince>B.C.</StateOrProvince> </td>

</ tr>

</body>

</html>