拡張表現 -2



表現の制約

■複数の形式の表現
 ctojツールでは、複数の形式を指定する事は許していません。必ず、どちらかの形式を指定する必要があります。



表現の変換

■pattern
・数字からなる文字列の桁数
 patternに"^[0-9]{<桁数>}$"の指定がある場合は、文字列の先頭にゼロを付加して桁数を合わせます。この機能はExcelでcsvを作成する場合、先頭のゼロが自動的に削除される場合があるための機能です。patterは本来正規表現を記述しますが、本サイトのツールは現時点で正規表現をサポートしている訳ではないため、この指定と完全に一致していない指定の場合はワーニングを出力して変換はしません。

■format
・date
 formatにdateを指定してある文字列の項目は、下記の項目値の形式変換を行います。
  • YYYY/MM/DD → YYYY-MM-DD
    YYYYが2桁の場合は、"20"を前に付けて4桁に変換します。また、MMやDDが1桁の時は前に"0"を付けて2桁に変換します

・PostalAddress
foematにPostalAdddressを指定しているStructuredValueは、Schema.org/postalAddressとデジタル庁のGIFの住所表記に変換します。詳細は、PPP共通データ仕様協議会の準拠規格を参照してください。尚、自治体名は都道府県が異なると同じ名称の場合があります。その場合には、都道府県に対し"const"を使って指定する事ができます。



変換対象となるAttribute

 JSON文として出力するAttributeは、dataSourceやdataTargetを指定している項目だけです。その他は無視されます。constで既定値を指定しただけでは、出力されません。もし、出力したい場合は、requiredで明示的にそのAttributeを指定します。
 尚、csvAttrを指定しても、csv上の項目に値がない場合はその項目は出力対象とはなりません。csvから値を取り出したにも関わらず、entityTypeで指定したEntitiesで変換できなかった場合も出力されませんが、その場合はワーニングも出力されます。



無視する表現

以下の表現に対する機能はサポートしていません。無視します。尚、以下は代表的なものであり、本サイトて記載のない表現は基本的に無視します。または、ワーニングやエラーになります。

  • patttern(数字列以外)
  • format(dateとPostalAddress以外)
  • enum
  • minItems
  • maxItems


表現の明確化

■JSON Schemaオリジナルの表現
 共通データ仕様では、subzoneNameは第一項が文字列で、第二項がArrayです。しかし、標準のJSON Schemaでは以下の様に第一項と第二項の区別なく、文字列でもarrayでも構わないと言う表現になます。


"subzoneName":{
   "type": "array",
   "items": {
       "type": ["string","array"],
       "items": {"type": "string"}
   },
   "maxItems":2
}

■拡張表現
 順序付きリストである事を"ordered"で宣言するとともに、以下の様にitemsを複数記述できる様にします。記述した順番にArrayに登録します。


"subzoneName":{
   "type": "array",
   "items": [
       {"type": "string"},
       {
           "type": "array",
           "items": {"type": "string"}
       }
   ]
   "maxItems":2,
   "ordered": true
}