Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

On this page we, (Paul, Val, Sam) discuss the form of the address change messages.

The latest accepted proposed revision is "example 1011".
Here This is a sample xml file and here is the field mapping.The latest proposed revision is "example 11"mostly implemented with a few minor changes proposed (follow links - see TODOs).
Here is a sample xml file.

...

A simple example to get us started.
This example is MAD centric.
I suspect that we'll end up with something a alot different at the end of this discussion.
Here is a single family dwelling with one owner:

Code Block
     <address>
        <number>14</number>
        <street>MAPLE ST</street>
        <unit>
            <base>true</base>
            <number></number>
            <disposition>official</disposition>
            <create_tms>2010-07-02 08:18:50.937000</create_tms>
            <retire_tms>None</retire_tms>
            <apns>
                <apn>1234001</apn>
            </apns>
            <action>insert</action>
        </unit>
    </address>

The "action" tag domain is

Code Block
     insert
    update
    retire

I think this addresses question 1 above.

The "base" tag domain is:

Code Block
     true
    false

This is a MAD artifact - DBI probably won't want it.
But let me explain the purpose.
A MAD "address" is represented using the concept of a base address and a unit address.
A base address always has one corresponding unit address.
There may be additional unit addresses or not.
If the base tag is marked true, then this unit information is directly associated with the base address.
If the base tag is marked false, then this unit information is not directly associated with the base address.

...

Now in the case of an apartment bldg, say
14 MAPLE ST,
apartments a & b
MAD represents the world this way:

Code Block

    <address>
        <number>14</number>
        <street>MAPLE ST</street>
        <unit>
            <base>true</base>
            <number>100</number>
            ...
            <apns>
                <apn>1234001</apn>
            </apns>
            <action>insert</action>
        </unit>
        <unit>
            <base>false</base>
            <number>a</number>
            ...
            <apns></apns>
            <action>insert</action>
        </unit>
        <unit>
            <base>false</base>
            <number>b</number>
            ...
            <apns></apns>
            <action>insert</action>
        </unit>
    </address>

...

What I think we want an instead of the example 2 (apt building) is something like this:

message 1

Code Block

<xml>
    <address_change>
        <key>12873</key>
        <action>insert</action>
        <address>
            <number>14</number>
            <street>MAPLE ST</street>
            <unit_number>100</unit_number>
            <block>1234</block>
            <lot>001</lot>
            <apn>1234001</apn>
        </address>
    </address_change>
</xml>

...

And reworking example 1 (single family) to fit the model shown in example 3, we have this:

Code Block

<xml>
    <address_change>
        <key>12873</key>
        <action>insert</action>
        <address>
            <number>14</number>
            <street>MAPLE ST</street>
            <unit_number></unit_number>
            ...
            <block>1234</block>
            <lot>001</lot>
            <apn>1234001</apn>
        </address>
    </address_change>
</xml>

...

Let's move on to a time share, which can be seen at 2655 Hyde St.
In a time share we have a single unit with multiple owners.

message 1

Code Block

<xml>
    <address_change>
        <key>12873</key>
        <action>insert</action>
        <address>
            <number>2655</number>
            <street>HYDE ST</street>
            <unit_number>1</unit_number>
            <disposition>provisional</disposition>
            <create_tms>2010-07-02 14:11:22.843000</create_tms>
            <retire_tms>None</retire_tms>
            <block>0026T</block>
            <lot>065A</lot>
            <apn>0026T065A</apn>
        </address>
    </address_change>
</xml>

message 2

Code Block

<xml>
    <address_change>
        <key>12873</key>
        <action>insert</action>
        <address>
            <number>2655</number>
            <street>HYDE ST</street>
            <unit_number>1</unit_number>
            <disposition>provisional</disposition>
            <create_tms>2010-07-02 14:11:22.843000</create_tms>
            <retire_tms>None</retire_tms>
            <block>0026T</block>
            <lot>066A</lot>
            <apn>0026T066A</apn>
        </address>
    </address_change>
</xml>

...

message 1 (base unit or common area, APN is assigned)

Code Block

<xml>
    <address_change>
        <key>12873</key>
        <action>insert</action>
        <address>
            <number>100</number>
            <street>MAIN ST</street>
            <unit_number></unit_number>
            <disposition>provisional</disposition>
            <create_tms>2010-07-02 14:11:22.843000</create_tms>
            <retire_tms>None</retire_tms>
            <block>1234</block>
            <lot>001</lot>
            <apn>1234001</apn>
        </address>
    </address_change>
</xml>

message 2 (condo unit)

Code Block

<xml>
    <address_change>
        <key>12873</key>
        <action>insert</action>
        <address>
            <number>100</number>
            <street>MAIN ST</street>
            <unit_number>1</unit_number>
            <disposition>provisional</disposition>
            <create_tms>2010-07-02 14:11:22.843000</create_tms>
            <retire_tms>None</retire_tms>
            <block>1234</block>
            <lot>002</lot>
            <apn>1234002</apn>
        </address>
    </address_change>
</xml>

message 3 (condo unit)

Code Block

<xml>
    <address_change>
        <key>12873</key>
        <action>insert</action>
        <address>
            <number>100</number>
            <street>MAIN ST</street>
            <unit_number>2</unit_number>
            <disposition>provisional</disposition>
            <create_tms>2010-07-02 14:11:22.843000</create_tms>
            <retire_tms>None</retire_tms>
            <block>1234</block>
            <lot>003</lot>
            <apn>1234003</apn>
        </address>
    </address_change>
<xml>

Example 7
Anchor
example7
example7

Code Block
     <address>
        <key>419692</key>
        <base_number_prefix></base_number_prefix>
        <base_number>1</base_number>
        <base_number_suffix></base_number_suffix>
        <street_name>S VAN NESS</street_name>
        <street_name_suffix>AVE</street_name_suffix>
        <unit_number_prefix></unit_number_prefix>
        <unit_number>600</unit_number>
        <unit_number_suffix></unit_number_suffix>
        <create_tms>2010-08-03 12:05:54.578000</create_tms>
        <retire_tms>2010-08-03 12:38:33</retire_tms>
        <disposition>provisional</disposition>
        <mailing>True</mailing>
        <longitude>-122.418862841</longitude>
        <latitude>37.7747051425</latitude>
        <change_tms>2010-08-03 14:38:33.467492</change_tms>
        <action>retire</action>
        <block>3506</block>
        <lot>001</lot>
        <apn>3506001</apn>
    </address>

Example 8
Anchor
example8
example8

Code Block

<addresses>
    <address>
        <key>419623</key>
        <base_number_prefix></base_number_prefix>
        <base_number>2655</base_number>
        <base_number_suffix></base_number_suffix>
        <street_name>HYDE</street_name>
        <street_name_suffix>ST</street_name_suffix>
        <unit_number_prefix></unit_number_prefix>
        <unit_number>308</unit_number>
        <unit_number_suffix></unit_number_suffix>
        <disposition>provisional</disposition>
        <create_tms>2010-07-02 14:11:22.843000</create_tms>
        <retire_tms></retire_tms>
        <block>0026</block>
        <lot>028</lot>
        <apn>0026028</apn>
    </address>
    ...
</addresses>

...

This separates the "history" information,

Code Block

<addressChangeNotification>
    <address>
        <key>419709</key>
        <base_number_prefix></base_number_prefix>
        <base_number>1</base_number>
        <base_number_suffix></base_number_suffix>
        <longitude>-122.418876252</longitude>
        <latitude>37.774694542</latitude>
        <street_name>S VAN NESS</street_name>
        <street_name_suffix>AVE</street_name_suffix>
        <unit_number_prefix>XXX</unit_number_prefix>
        <unit_number>300</unit_number>
        <unit_number_suffix>YYY</unit_number_suffix>
        <create_tms>2010-08-13 12:15:43.828000</create_tms>
        <retire_tms>2010-08-13 18:41:16.149255</retire_tms>
        <disposition>provisional</disposition>
        <mailing>True</mailing>
        <block>3506</block>
        <lot>001</lot>
        <apn>3506001</apn>
    </address>
    <timestamp>2010-08-13 18:41:16.149255</timestamp>
    <action>retire</action>
</addressChangeNotification>

...

DBI may use different street names and street suffixes.
This version accommodates these variations.

Code Block

<addressChangeNotification>
    <address>
        <key>419709</key>
        <base_number_prefix></base_number_prefix>
        <base_number>1</base_number>
        <base_number_suffix></base_number_suffix>
        <jurisdiction>PRESIDIO</jurisdiction>
        <longitude>-122.418876252</longitude>
        <latitude>37.774694542</latitude>
        <street_name>SOUTH VAN NESS</street_name>
        <street_name_suffix>
            <abbreviated>AVE</abbreviated>
            <unabbreviated>AVENUE</unabbreviated>
        </street_name_suffix>
        <unit_number_prefix>XXX</unit_number_prefix>
        <unit_number>300</unit_number>
        <unit_number_suffix>YYY</unit_number_suffix>
        <create_tms>2010-08-13 12:15:43.828000</create_tms>
        <retire_tms>2010-08-13 18:41:16.149255</retire_tms>
        <disposition>provisional</disposition>
        <mailing>True</mailing>
        <block>3506</block>
        <lot>001</lot>
        <apn>3506001</apn>
    </address>
    <timestamp>2010-08-13 18:41:16.149255</timestamp>
    <action>retire</action>
</addressChangeNotification>

Example 11
Anchor

...

example11xml

...

Code Block

EAS Field: addresses.address_id                      int
XML Field: key
FGDC Field: na
AVS Field: 
Example: 
Comment: 


EAS Field: address_base.base_address_prefix     char(10)
XML Field: base_number_prefix
FGDC Field: address number prefix         text
AVS Field: 
Example: 
Comment: 


EAS Field: address_base.base_address_num             int
XML Field: base_number
FGDC Field: address number                 int
AVS Field: AVS_ADDRESSES.STREET_NUMBER       NUMBER(6)
Example: 
Comment: 


EAS Field: address_base.base_address_suffix     char(10)
XML Field: base_number_suffix
FGDC Field: address number suffix         text
AVS Field: 
Example: 
Comment: MAD-122


EAS Field: ?
XML Field: ?
FGDC Field: ?
AVS Field: AVS_ADDRESSES.STREET_NUMBER_SFX VARCHAR2(1)
Example: V, A, C, P
Comment: MAD-122


EAS Field: address_base.zone_id                      int
XML Field: jurisdiction
FGDC Field: community place name          text
AVS Field: 
Example: SFMAIN, TI, PRESIDIO
Comment: FGDC field is approx


EAS Field: address_base.geoemtry.longitude        double
XML Field: longitude
FGDC Field: address longitude           double
AVS Field: 
Example: 
Comment: 


EAS Field: address_base.geoemtry.latitude         double
XML Field: latitude
FGDC Field: address latitude            double
AVS Field: 
Example: 
Comment: 


EAS Field: address_base.street_segment.st_name  char(29)
XML Field: street_name
FGDC Field: street name                   text
AVS Field: AVS_STREETS.STREET_NAME        VARCHAR2(28)
Example: 
Comment: todo - problem with field width


EAS Field: address_base.street_segment.st_type   char(6)
XML Field: street_name_suffix
FGDC Field: street name post type         text
AVS Field: AVS_STREET_SUFFIXES.STREET_SFX  VARCHAR2(2)
Example: 
Comment: data type mismatch is accomodated in xml


EAS Field: addresses.unit_num_prefix             char(5)
XML Field: unit_number_prefix
FGDC Field: na
AVS Field: 
Example: 
Comment: 


EAS Field: addresses.unit_num                   char(20)
XML Field: unit_number
FGDC Field: unit identifier               text
AVS Field: AVS_ADDRESSES.UNIT                NUMBER(6)
Example: 
Comment: todo - is data type mismatch


EAS Field: addresses.unit_num_suffix            char(10)
XML Field: unit_number_suffix
FGDC Field: na
AVS Field: AVS_ADDRESSES.UNIT_SFX          VARCHAR2(10)
Example: 
Comment: 


EAS Field: addresses.unit_type_id                    int
XML Field: na
FGDC Field: unit type                     text
AVS Field: na
Example: suite, apartment
Comment: 


EAS Field: na
XML Field: na
FGDC Field: na
AVS Field: AVS_ADDRESSES.ADDRESS_TYPE     VARCHAR2(10)
Example: PRIMARY, ALTERNATE, ALIAS
Comment: 


EAS Field: addresses.create_tms                 datetime
XML Field: create_tms
FGDC Field: na
AVS Field: 
Example: 
Comment: 


EAS Field: addresses.retire_tms                 datetime
XML Field: retire_tms
FGDC Field: na
AVS Field: AVS_ADDRESSES.END_DATE                 DATE
Example: 
Comment: 


EAS Field: addresses.disposition_code                int
XML Field: disposition
FGDC Field: address lifecycle status      text
AVS Field: 
Example: provisional, offical
Comment: FGDC field is approx


EAS Field: na
XML Field: na
FGDC Field: address official status       text
AVS Field: AVS_ADDRESSES.VALID             VARCHAR2(1)
Example: 
Comment: EAS combines this with address life cycle status


EAS Field: addresses.mailable_flg                boolean
XML Field: mailing
FGDC Field: na
AVS Field: 
Example: 
Comment: 


EAS Field: parcel.block_num                      char(5)
XML Field: block
FGDC Field: na
AVS Field: AVS_STRUCTURES.BLOCK            VARCHAR2(5)
Example: 
Comment: 


EAS Field: parcel.lot_num                        char(5)
XML Field: lot
FGDC Field: na
AVS Field: AVS_STRUCTURES.LOT              VARCHAR2(4)
Example: 
Comment: todo - field with mismatch


EAS Field: parcel.blk_lot                        char(9)
XML Field: apn
FGDC Field: na
AVS Field: 
Example: 
Comment: 


EAS Field: na
XML Field: na
FGDC Field: building identifer            text
AVS Field: AVS_STRUCTURES.STRUCTURE_NUMBER VARCHAR2(2)
Example: 
Comment: 


EAS Field: addresses_history.last_change_tms    datetime
XML Field: timestamp
FGDC Field: na
AVS Field: 
Example: 
Comment: 


EAS Field: addresses_history.history_action     char(10)
XML Field: action
FGDC Field: na
AVS Field: 
Example: 
Comment: 


EAS Field: addresses.unq_adds_id                     int
XML Field: na
FGDC Field: na
AVS Field: AVS_ADDRESSES.ADDRESS_KIND VARCHAR2(10)
Example: DBI, ASSESSOR
Comment: 

...

example11xml

The purpose of this version is to support the rework of the model precipitated by MAD-156.

Code Block

<?xml version="1.0" encoding="utf-8"?>
<addressChangeNotification>
    <base_address_part>
        <base_address>
   _part>
        <base_address_id>157611</base_address_id>address>
            <base_numberaddress_prefix><id>483699</base_numberaddress_prefix>id>
            <base_number_prefix></base_number_prefix>
            <base_number>53<number>2569</base_number>
            <base_number_suffix></base_number_suffix>
            <jurisdiction>SF MAIN</jurisdiction>
            <longitude>-122.433538793<387658226</longitude>
            <latitude>37.734081063<756713011</latitude>
            <street_name>WILDER<name>03RD</street_name>
            <street_name_suffix>
                <abbreviated>ST</abbreviated>
                <unabbreviated>STREET</unabbreviated>
            </street_name_suffix>
        </base_address>
        <action>no change<<action>insert</action>
    </base_address_part>
     <unit_address_part>
        <unit_address>
            <address_id>419583<id>725579</address_id>
            <unit_number_prefix></unit_number_prefix>
            <unit_number>603</unit_number>
            <unit_number_suffix><number></unit_number_suffix>number>
            <base_unit_address_flag>False<flag>True</base_unit_address_flag>
            <disposition>official</disposition>
            <mailing>True<<mailing>False</mailing>
            <create_tms>2010tms>10-0616-282012 1511:3310:10.437000<35</create_tms>
            <last_change_tms>2010tms>10-1016-252012 1711:0510:15.093000<35</last_change_tms>
            <retire_tms></retire_tms>
        </unit_address>
        <action>no change<<action>insert</action>
    </unit_address_part>
    
    <address_parcel_link_part>
        <address_parcel_link>
            <id>68<<id>563590</id>
            <create_tms>2010tms>10-1016-252012 1711:0510:15.093000<35</create_tms>
            <last_change_tms>2010tms>10-1016-252012 1711:0510:15.093000<35</last_change_tms>
            <retire_tms></retire_tms>
            <parcel>
                <block>6745<<block>4173</block>
                <lot>089<<lot>001</lot>
                <apn>6745089<<apn>4173001</apn>
            </parcel>
        </address_parcel_link>
        <action>insert</action>
    </address_parcel_link_part>

</addressChangeNotification>