RETS Change Proposal 55: Public Identifiers for RETS DTDs
Author: Dave Dribin
Organization: Center for REALTOR® Technology
Telephone:
Address: 430 N. Michigan Ave., Floor 6, Chicago IL, 60611-4087
Email: dribin@crt.realtors.org
Status: Proposal
Date: 11/10/2003
Proposal Version: 1.7
1. Synopsis
Provides unregistered formal public identifiers (FPIs) and public system identifiers for all RETS DTDs.
2. Rationale
Each standard DTD is given a formal public identifier (FPI) and a public system identifier to uniquely identify them. Both are used by the DOCTYPE tag. Without standardized public identifiers, it is impossible to validate a document without using system specific data. The W3C XHTML specification, Section 3.1.1, shows how this is usually handled. For example, a transitional XHTML 1.0 document must contain the following DOCTYPE:

<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

The "-//W3C//DTD XHTML 1.0 Transitional//EN" is the FPI and the HTTP URL is the public system identifier.

None of the RETS DTDs have either an FPI or a system identifier. This proposal provides both.

3. Proposal
3.1 Public Identifiers

FPIs must follow the following syntax as per ISO 9070:

  "Owner//Keyword Description//Language"

All RETS FPIs will use an owner of "-//RETS". It is common for keywords referring to DTDs begin with "DTD". The following table summarizes the FPIs and system IDs for RETS 1.7:

FPI System ID
-//RETS//DTD RETS Data 1.7//ENhttp://www.rets.org/dtd/rets-data-1_7.dtd
-//RETS//DTD RETS Data Content 1.7//ENhttp://www.rets.org/dtd/rets-data-content-1_7.dtd
-//RETS//DTD RETS Metadata 1.7//ENhttp://www.rets.org/dtd/rets-metadata-1_7.dtd
-//RETS//DTD RETS Metadata Content 1.7//ENhttp://www.rets.org/dtd/rets-metadata-content-1_7.dtd

The content DTDs do not contain the outer <RETS> tag. Future versions of RETS will replace "1.7" with the appropriate version number.

3.2 Examples

Here is an example using the metadata DTD:

<!DOCTYPE RETS
    PUBLIC "-//RETS//DTD RETS Metadata 1.7//EN"
    "http://www.rets.org/dtd/rets-metadata-1_7.dtd">
<RETS ReplyCode="0" ReplyText="Successful">
 <METADATA>
   <METADATA-SYSTEM>
     ...
   </METADATA-SYSTEM>
 </METATDATA>
</RETS>

3.3 Using Public Identifiers

The Format argument on the Search (Section 7.4.2) and GetMetadata (12.3) transactions should be modified to use public identifiers as such:

STANDARD-XML:public-id

The spec should list public IDs that must be supported, i.e. at least the current version's DTD should be supported.

4. Development Impact
Servers will need to output these public identifiers in the DOCTYPE tags. Clients that validate XML data will need to register the standard public identifers with their XML parser.
5. Compatibility
This proposal is not compatible with previous versions of RETS.
6. Proof/Need of Concept Examples
None.