仕様

  1. 共通仕様
  2. COMオブジェクト
  3. HTML&XML(ISAPI)
  4. SOAP(ISAPI)

共通仕様

検索文字列

検索の実行はLookupメソッドの呼び出しによって行います。検索キーワードは文字列で指定し、郵便番号、住所文字列の一部、読み仮名のいずれか が指定可能です。(事業所名での検索はできません)3種類の文字列種の違いは、メソッドの呼び出し時に自動的に判別されます。

郵便番号文字列:

半角および全角の数字(漢数字を除く)と半角と全角のハイフンまたは「ー」「−」から構成される文字列。桁数は任意ですが、7桁の場合には完全一致で検索が実行され、それ以外の場合は前方一致の郵便番号による検索と なります。UseZip5プロパティがTrueの場合は旧5桁の郵便番号による検索が実行されます。

例) 123-4567,  1234567,  12-34567,  987−6543, 987-6543, 123, 12345

住所文字列:

県名または、市町村名から始まる住所文字列。住所の構成要素は

[都道府県名] + [市区町村名] + [町域名] + [町域名詳細]

であるが、検索のキーワードとなる住所文字列では[都道府県名]が省略されていてもかまいません。また市区町村名に続く文字列が不完全である場合には、前方に一致する住所が検索され ます。

住所カナ文字列:

県名または市区町村名から始まる住所の読み仮名。構成要素は漢字による文字列と同様です。なお、読み仮名は全角または半角のカタカナ、または、全角ひらがなです。

検索結果文字列:

検索結果の1レコードは1文字列として返され、それぞれの項目は1つの文字列に次の規則で連結されます。なお、郵便番号は半角数字でハイフンを含まない形式で出力されます。いずれの場合も、結果文字列を取得後プログラムによって再度分解して用途に合った方法で使用されることを想定しています。

[郵便番号];[住所];[住所カナ];[事業所名];[事業所名カナ];[私書箱]

例) "1230865;東京都足立区新田;トウキョウトアダチクシンデン" "1230864;東京都 足立区 鹿浜;トウキョウト アダチク シカハマ"

データによっては、住所カナなどの一部の文字列が不完全または、欠落しているデータも存在することに注意してください。


COMオブジェクト

VBScript, JScript(JavaScript), VisualBasic 6.0, VisualBasic for Application (ACCESSやWORDなどのOffice製品),その他のMicrosoftのほとんどの開発言語から使用が可能です。

ProgID(バージョン非依存) Yokins.ZipCodeSearcher
CLSID(バージョン非依存) {E3EFD451-97A9-4121-A6C2-43B63B3E8811}
ProgID(バージョン依存) Yokins.ZipCodeSearcher.1
CLSID(バージョン依存) {E3EFD451-97A9-4121-A6C2-43B63B3E8811}
Interface IYZipCodeSearcher
IID {02B7C6A8-2A3B-428A-A503-93B6913C41FB}
Type Library yzipcode.dll
DLL yzipcode.dll
依存するOLEコンポーネント ADODB ( ADODB.Recordset Provider JET 4.0 )
MSXML ( MSXML2.DOMDocument )

プロパティ

プロパティ名 内容
ResultCount (Read only)検索(Lookup)実行後、結果の候補数。

Method Definition

[propget] HRESULT ResultCount( [out, retval] long* l);

Parameters

lは検索結果の候補数を表す。

Delimiter 検索結果文字列の住所または住所カナ文字列で、都道府県、市区町村、町域名、町域名詳細の間に空白文字を挿入するかどうかのフラグ。空白文字は、後に県名などを個別に分解する目的などに使用できる。

Method Definition

[propget] HRESULT Delimiter( [out, retval] BOOL* b );
[propput] HRESULT Delimiter( [in] BOOL b );

Parameters

bがTrueの時空白文字を挿入する。デフォルトはFalse。

UseZip5 郵便番号による検索で5桁の旧郵便番号を対象にするかを指定する。

Method Definition

[propget] HRESULT UseZip5( [out, retval] BOOL* b );
[propput] HRESULT UseZip5( [in] BOOL b );

Parameters

b は、Trueで旧5桁の郵便番号参照を有効にする。デフォルトではFalse。

KanaTYpe 検索結果の住所カナ文字列 として使われるカナの種類を指定する。

Method Definition

[propput] HRESULT KanaType( [in] long lType );
[propget] HRESULT KanaType( [out, retval] long* lType );

Parameters

lTypeは次のいずれかを指定する。

yzkFullWidthKatakana 0 全角カタカナ(デフォルト)
yzkHalfWidthKatakana 1 半角カタカナ
yzkFullWidthHiragana 2 全角ひらがな
LookupTarget 検索対象を指定する。

Method Definition

[propput] HRESULT LookupTarget( [in] long lType );
[propget] HRESULT LookupTarget( [out, retval] long* lType );

Parameters

lTypeはつぎのうち1つを指定する。

yztDefault 1 全国一般郵便番号(デフォルト)
yztCompanies 2 事業者郵便番号
yztAll 3 一般郵便番号と事業者郵便番号の両方
DataBaseCreationDate (Read only) データベースが編成された時の日付を取得する

Method Definition

[propget] HRESULT DataBaseCreationDate( [out, retval] VARIANT* pRetVal );

Parameter

pRetValはDATE型の値を返す。

Version (Read only) YZipCodeコンポーネントのバージョンを取得する。

Method Definition

[propget] HRESULT Version([out, retval] BSTR* bstrOutput );

Parameter

bstrOutput はバージョン文字列を返す。文字列は "YZipCode;[バージョン文字列];[登録状態文字列]" という構成となる。

License (Read only) ライセンス登録済みの場合、ライセンスに一意な文字列を得る。ライセンス未登録の場合は空の文字列が返る。なお、この文字列は登録時のライセンスキーをあるルールに基づいて処理されたハッシュである。

Method Definition

[propget] HRESULT License([out, retval] BSTR* bstrOutput );

Parameter

pRetValはDATE型の値を返す。

メソッド

Lookup 郵便番号検索、住所検索、読み仮名検索を実行する。

Method Definition

HRESULT Lookup([in] BSTR bstrInput, [out, retval] BSTR * bstrOutput );

Parameters

bstrInput
共通仕様で定義される検索文字列

bstrOutput
共通仕様で定義される検索結果文字列

GetNextCandidate 検索結果の次の候補を取得する。

Method Definition

HRESULT GetNextCandidate( [out, retval] BSTR *bstrOutput );

Parameters

bstrOutput
共通仕様で定義される検索結果文字列


HTML&XML(ISAPI)

カスタマイズ可能なテンプレートを使い、HTMLによるページを出力する場合は、yzipcode.dllをISAPIとして使用しGETメソッドによってページにアクセス します(GET以外、POSTなどはサポートしていません)。なお、ページにアクセスする際のQueryString(フォームの内容)は次の表に示すような内容です。

クエリパラメータ 内容
lookup(必須) 検索文字列
Delimiter 住所文字列の要素を空白文字で区切るかどうかを指定する。

0 : 区切り無し(デフォルト)
1 : 半角空白で区切る

LookupTarget 検索対象を指定する

1 : 通常の住所(デフォルト)
2 : 大口事業所
3 : 通常の住所と大口事業所の両方

UseZip5 検索文字列に5桁の数字を指定した場合に旧5桁の郵便番号で検索するかを指定する。

0 : 旧5桁の郵便番号では検索しない(デフォルト)
1 : 旧5桁の郵便番号で検索する

KanaType 住所の読み仮名の種類を指定

0 : 全角カタカナ(デフォルト)
1 : 半角カタカナ
2 : 全角ひらがな

encoding FORMから送信される日本語文字列の文字コード。Lookupパラメータの文字列コードを指定する。デフォルトは shift_jis。
xsl 検索結果のXMLをフォーマットする場合のXSLテンプレートファイル名を指定。 指定されたファイルが存在しない場合または、空文字列を与えた場合は、XMLフォーマットをそのまま出力します。
デフォルトは yzipcode.xsl

yzipcode.dll と同じディレクトリにある yzipcode.xsl ファイルが存在しない場合は、検索結果をXMLで出力し、XSLファイルが見つかった場合はそれを使用してXSL変換を行い、その変換結果を出力します。

XMLフォーマット

XSLテンプレートを適用しない場合(適用する直前)の出力は次のようなXMLとなります。

YZipCode.dll?lookup=123086&KanaType=0&xsl=test.xsl
という条件でアクセスした結果。

<?xml version="1.0" encoding="utf-8" ?>
- <xml>
<
query KanaType="0" lookup="123086" xsl="test.xsl"" Handler="ISAPI" />
- <yzipcode>
  <request lookup="123086" />
- <answer resultcount="5">
  <result zipcode="1230865" address="東京都足立区新田" kana="トウキョウトアダチクシンデン" />
  <result zipcode="1230864" address="東京都足立区鹿浜" kana="トウキョウトアダチクシカハマ" />
  <result zipcode="1230862" address="東京都足立区皿沼" kana="トウキョウトアダチクサラヌマ" />
  <result zipcode="1230861" address="東京都足立区加賀" kana="トウキョウトアダチクカガ" />
  <result zipcode="1230863" address="東京都足立区谷在家" kana="トウキョウトアダチクヤザイケ" />
  </answer>
  </yzipcode>
  </xml>

任意のHTMLフォーマットを出力するために、XSLテンプレートは上記のXMLのエレメントにアクセスするようにプログラムされる必要があります。

実装例1)住所入力フォームへ(HTML)

一番用途が多いと思われるのが、オンラインショッピングなど住所の入力を求めるフォームのあるウェブサイトです。郵便番号、住所入力フォームへのアシスタントとして本システムを追加実装して、ユーザーへの利便性を向上させることができます。

(注意)メインのフォームから、郵便番号検索のウィンドウを開き、そこからJavaScriptによって、フォーム上の要素に値を書き込む場合「クロスドメイン」のセキュリティ問題に注意する必要があります。フォームのあるURLのドメインと、yzipcode.dllのあるURLのドメインが異なる場合、JavaScriptによってフォーム上の値を設定することができません。

実装例2)郵便番号・住所検索サーバー(XML)

COMオブジェクトとしての本コンポーネントはデータベースのファイルサイズ40MB近く、メモリ消費量も26MB程度となり、非力なクライアントPCの1つ1つにインストールするにはやや負担が大きいと考えられる場合があります。1組織内に複数のクライアントPCを配置する場合、1台のPCに本コンポーネントをインストールし、クライアントからはXMLサービスへのアクセスで対応するという方法が考えられます。

クライアントコンポーネントはHTTP接続が可能な既存のコンポーネント、たとえば、MSXMLなど が使用可能。


SOAP(ISAPI)

!現在実装に向けて準備中です。!