サポート > PC-MAPPING ヒント集 > スクリプト > スクリプトによるスキーマファイルの生成
スクリプトによるスキーマファイルの生成
ベクターウィンドウがアクティブの場合、前景レイヤーのフィールド構成をスキーマ形式でファイルへ出力します。
または、データベースウィンドウがアクティブの場合、データベースのフィールド構成をスキーマ形式でファイルへ出力します。

スキーマファイルについては以下を御覧下さい。
スキーマファイル概要 (PDF形式)
■ サンプル
サンプル[script46.zip(約80KB)]をダウンロードする
pcmCreateSchema.js:サンプルJScript
db:実行@用サンプル
shp:実行A用サンプル

■ 解説
第1パラメーター:出力されるファイルの文字コード
0 = Shift-JIS
0以外 = UTF-8
第2パラメーター:スキーマの種類
0 = インポート用スキーマ
0以外 = エクスポート用スキーマ

■ 実行@:CSVファイルのインポートスキーマの場合
  1. ダウンロードしたファイルを解凍します。
    ここでは、「C:\sample8\script46」とします。

  2. PC-Mappingを起動します。

  3. [ホーム]-[新規]-[外部データベース(CSV)]を実行します。

  4. [外部データベースの取り込み]ダイアログボックスで、インポートスキーマファイルを指定せず、実行します。

  5. 「sample」データベースが読み込まれます。

  6. 「sample」データベースを加工します(「samples_加工.ndv」)。

  7. コマンドラインバーに「C:\sample8\script46\pcmCreateSchema.js△0△0」(△は半角スペース)と記述し、実行します。

  8. 保存先とスキーマファイル名「sample.xml」を指定し、保存します。

  9. 8.で保存したスキーマファイル「sample.xml」をメモ帳等エディターで開きます。
    主に、
    • データベースタイトルを変更する場合は、<Title>タグ内にある<PcmName>タグのタイトルを変更します。
    • インポートしないフィールドは、<FieldDef>タグ内にある<PcmName>タグのタイトルを「@Delete」に変更します。
    • インポートファイルになく、追加したフィールドは、<FieldDef>タグ内にある<OrgName>タグのタイトルを「@Create」に変更します。

  10. [ホーム]-[新規]-[外部データベース(CSV)]を実行します。

  11. [外部データベースの取り込み]ダイアログボックスで、インポートスキーマファイルを指定し、実行します。

  12. すると、「samples_加工.ndv」と同じように読み込む事ができます。
    ただし、「sample_加工.ndv」の「長整数」フィールドのように、スキーマにないフィールド型を指定した場合、「sample.xml」の「長整数」フィールドの<FieldDef>タグ内に<FieldType>タグは生成されません。
    この状態でインポートした場合、フィールド型は指定されず、文字型になります。

■ 実行A:シェープファイルのインポートスキーマの場合
  1. PC-Mappingを起動します。

  2. [インポート]-[汎用/GIS]-[シェープ]-[ArcViewシェープファイル]を実行します。

  3. [シェープファイルインポート]ダイアログボックスで、インポートスキーマを指定せず、実行します。

  4. 読み込んだプロジェクトを以下の1.〜6.のように加工します(「sample_加工.pcm」)。
    1. 描画パラメーターファイル「pen.pcp」を読み込みます。
    2. 「街区」「建物」レイヤーアーク内部属性「pen」フィールドを追加します。
    3. データベースファイル「町名辞書.ndv」を読み込みます。
    4. 「街区」「建物」レイヤーポリゴン内部属性「町名」フィールドにデータベースリンク設定を行います。
    5. 「街区」レイヤーポリゴン内部属性「街区番号」フィールド「表示」チェックボックスをOn(背景時も)にします。
    6. 「建物」レイヤーポリゴン内部属性「住居番号」フィールド「表示」チェックボックスをOn(背景時も)にします。

  5. 「街区」レイヤーを前景レイヤーにし、コマンドラインバーに「C:\sample8\script46\pcmCreateSchema.js△0△0」(△は半角スペース)と記述し、実行します。

  6. 保存先とスキーマファイル名「街区.xml」を指定し、保存します。

  7. 「建物」レイヤーを前景レイヤーにし、コマンドラインバーに「C:\sample8\script46\pcmCreateSchema.js△0△0」(△は半角スペース)と記述し、実行します。

  8. 保存先とスキーマファイル名「建物.xml」を指定し、保存します。

  9. 6.と8.で保存したスキーマファイル「街区.xml」「建物.xml」をメモ帳等エディターで開きます。
    「街区.xml」に「建物.xml」の記述文を追加するかたちで、主に、
    • 「建物.xml」の<LayerTitle>タグを「街区.xml」へコピーします。
      レイヤータイトルを変更する場合は、<Title>タグ内にある<PcmName>タグのタイトルを変更します。
    • インポートしないフィールドは、<FieldDef>タグ内にある<PcmName>タグのタイトルを「@Delete」に変更します。
    • インポートファイルになく、追加したフィールドは、<FieldDef>タグ内にある<OrgName>タグのタイトルを「@Create」に変更します。
      「街区.xml」の<ArcFieldDef>タグ内の<OrgName>タグのタイトルを「@Create」に変更します。
    • 「建物.xml」の
      <PolFieldDef> <OrgName>住居番号</OrgName><PcmName>住居番号</PcmName>
      :
      </PolFieldDef>


      <PolFieldDef>
      <OrgName>建物名称</OrgName><PcmName>建物名称</PcmName>
      :
      </PolFieldDef>

      を「街区.xml」へコピーします。

  10. 修正した「街区.xml」を「sample.xml」ファイル名で保存します。

  11. [インポート]-[汎用/GIS]-[シェープ]-[ArcViewシェープファイル]を実行します。

  12. [シェープファイルインポート]ダイアログボックスで、10.で保存したインポートスキーマファイル「sample.xml」を指定して、実行します。

  13. 描画パラメーターファイル「pen.pcp」を読み込みます。

  14. 「街区A」「建物A」レイヤーアーク内部属性「参照する描画パラメーターセット」に「\pen」を指定する必要はありますが、色描画されます。

  15. データベースファイル「町名辞書.ndv」を読み込みます。

  16. 「街区A」「建物A」レイヤーポリゴン内部属性「町名」フィールドにデータベースリンク先の属性が表示されます。

  17. これで、「sample_加工.pcm」と同じように表示する事ができます。