47
White Paper TOP PRODUCER 7i Listing Upload feature www.topproducer.com ©2003 TOP PRODUCER Systems All rights reserved.

TOP PRODUCER 7i Listing Upload feature

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TOP PRODUCER 7i Listing Upload feature

White Paper

TOP PRODUCER 7i

Listing Upload feature

www.topproducer.com

©2003 TOP PRODUCER Systems All rights reserved.

Page 2: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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 website.

Page 4: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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>200</Status>

<Details>Successful<Details>

</TPOLResult>

Page 11: TOP PRODUCER 7i Listing Upload feature

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>500</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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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 Systems Inc.

Version 1.0 2002/09/05

Page 16: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

TOP PRODUCER Systems 17

<!ELEMENT Logo (PictureCaption?, ContentType?, BinaryData?)>

<!ATTLIST Logo

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

<!ELEMENT StreetAddress (StreetNumber?, BoxNumber?, StreetDirPrefix?, StreetName, StreetAdditionalInfo?, StreetDirSuffix?, StreetSuffix?, 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: TOP PRODUCER 7i Listing Upload feature

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 -->

<!ELEMENT YearBuilt (#PCDATA)>

<!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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

TOP PRODUCER Systems 20

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

<!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: TOP PRODUCER 7i Listing Upload feature

TOP PRODUCER Systems 21

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

<!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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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 StreetDirSuffix (#PCDATA)>

<!ATTLIST StreetDirSuffix

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

<!ELEMENT StreetSuffix (#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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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</StreetDirSuffix>

Page 32: TOP PRODUCER 7i Listing Upload feature

TOP PRODUCER Systems 32

<StreetSuffix>Bl</StreetSuffix>

<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>

<ContactInformation>

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

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

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

<Fax>(512) 612-6512</Fax>

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

<Email>[email protected]</Email>

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

</ContactInformation>

<StreetAddress>

<StreetNumber>10651</StreetNumber>

<StreetName>Shellbridge</StreetName>

<StreetDirPrefix>E</StreetDirPrefix>

<StreetDirSuffix>S</StreetDirSuffix>

<StreetSuffix>Bl</StreetSuffix>

<UnitNumber>155</UnitNumber>

<City>Richmond</City>

<StateOrProvince>BC</StateOrProvince>

<Country>Canada</Country>

<PostalCode>V6X2W8</PostalCode>

<CarrierRoute>02010-00</CarrierRoute>

Page 33: TOP PRODUCER 7i Listing Upload feature

TOP PRODUCER Systems 33

</StreetAddress>

</REAgent>

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

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

<ExpirationDate>2002-09-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>

<MLSInformation>

<MLSNumber>2244225</MLSNumber>

<ListingStatus>Active</ListingStatus>

<ListingArea>Eastside</ListingArea>

</MLSInformation>

<ModificationTimestamp>2002-06-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: TOP PRODUCER 7i Listing Upload feature

TOP PRODUCER Systems 34

<Garage>Yes</Garage>

<CarPort>Yes</CarPort>

<OpenParking>Yes</OpenParking>

<CoveredParking>Yes</CoveredParking>

<RVParking>No</RVParking>

</Parking>

<Stories>2</Stories>

<YearBuilt>2000</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>24</Length>

<Width>12</Width>

</Kitchen>

<MasterBedroom>

<Length>18</Length>

Page 35: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

TOP PRODUCER Systems 36

</Library>

<Laundry>

<Length>2</Length>

<Width>6</Width>

</Laundry>

<Workshop>

<Length>12</Length>

<Width>17</Width>

</Workshop>

</Rooms>

<Fireplaces>2</Fireplaces>

<Roof>Composition</Roof>

<Attached>Yes</Attached>

<Flooring>W/w carpet</Flooring>

<DistanceToTransit>200 meters</DistanceToTransit>

<OtherItem>Playground</OtherItem>

<Feature>Sauna</Feature>

<Feature>Triple garage</Feature>

</ResidentialProperty>

Page 37: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

TOP PRODUCER Systems 39

<StreetDirSuffix>W</StreetDirSuffix> <StreetSuffix>Avenue</StreetSuffix>, <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: TOP PRODUCER 7i Listing Upload feature

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>Yes</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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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 improvements</Include></td>

</tr>

<tr>

Page 45: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

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: TOP PRODUCER 7i Listing Upload feature

TOP PRODUCER Systems 47

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

</tr>

<tr>

<td>Email: </td>

<td><Email>[email protected]</Email> </td>

</tr>

<tr>

<td colspan =2><StreetNumber>123</StreetNumber><StreetDirPrefix></StreetDirPrefix><StreetName>Main</StreetName><StreetDirSuffix></StreetDirSuffix><StreetSuffix>Street</StreetSuffix>, <UnitNumber>5th Floor</UnitNumber></td>

</tr>

<tr>

<td colspan=2><City>Vancouver</City>, <StateOrProvince>B.C.</StateOrProvince> </td>

</tr>

</body>

</html>