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