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

...

EAS Field

XML Field

FGDC Field

AVS Field

Example

Comment

addresses.address_id int

key

na

 

 

 

address_base.base_address_prefix char(10)

base_number_prefix

address number prefix text

 

 

 

address_base.base_address_num int

base_number

address number int

AVS_ADDRESSES.STREET_NUMBER NUMBER(6)

 

 

address_base.base_address_suffix char(10)

base_number_suffix

address number suffix text

 

 

MAD-122

?

?

?

AVS_ADDRESSES.STREET_NUMBER_SFX VARCHAR2(1)

V, A, C, P

MAD-122

address_base.zone_id int

jurisdiction

community place name text

 

SFMAIN, TI, PRESIDIO

FGDC field is approx

address_base.geoemtry.longitude double

longitude

address longitude double

 

 

 

address_base.geoemtry.latitude double

latitude

address latitude double

 

 

 

address_base.street_segment.st_name char(29)

street_name

street name text

AVS_STREETS.STREET_NAME VARCHAR2(28)

 

todo - problem with field width

address_base.street_segment.st_type char(6)

street_name_suffix

street name post type text

AVS_STREET_SUFFIXES.STREET_SFX VARCHAR2(2)

 

data type mismatch is accomodated in xml

addresses.unit_num_prefix char(5)

unit_number_prefix

na

 

 

 

addresses.unit_num char(20)

unit_number

unit identifier text

AVS_ADDRESSES.UNIT NUMBER(6)

 

todo - is data type mismatch

addresses.unit_num_suffix char(10)

unit_number_suffix

na

AVS_ADDRESSES.UNIT_SFX VARCHAR2(10)

 

 

addresses.unit_type_id int

na

unit type text

na

suite, apartment

 

na

na

na

AVS_ADDRESSES.ADDRESS_TYPE VARCHAR2(10)

PRIMARY, ALTERNATE, ALIAS

 

addresses.create_tms datetime

create_tms

na

 

 

 

addresses.retire_tms datetime

retire_tms

na

AVS_ADDRESSES.END_DATE DATE

 

 

addresses.disposition_code int

disposition

address lifecycle status text

 

provisional, offical

FGDC field is approx

na

na

address official status text

AVS_ADDRESSES.VALID VARCHAR2(1)

 

EAS combines this with address life cycle status

addresses.mailable_flg boolean

mailing

na

 

 

 

parcel.block_num char(5)

block

na

AVS_STRUCTURES.BLOCK VARCHAR2(5)

 

 

parcel.lot_num char(5)

lot

na

AVS_STRUCTURES.LOT VARCHAR2(4)

 

todo - field with mismatch

parcel.blk_lot char(9)

apn

na

 

 

 

na

na

building identifer text

AVS_STRUCTURES.STRUCTURE_NUMBER VARCHAR2(2)

 

 

addresses_history.last_change_tms datetime

timestamp

na

 

 

 

addresses_history.history_action char(10)

action

na

 

 

 

addresses.unq_adds_id int

na

na

AVS_ADDRESSES.ADDRESS_KIND VARCHAR2(10)

DBI, ASSESSOR

 

 

 

 

 

 

 

...

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>
  
         <base_address_id>157611</base_address_id>  <base_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<number></unit_number>
            <unit_number_suffix></unit_number_suffix>
            <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>