ファイルの保存形式
ファイルの保存形式は、以下の2種類から選択可能です
JSON 形式:
JavaScript Object Notation 形式のテキストベースのファイル保存形式です。 構成管理ツールや差分比較ツールで変更差分を比較した際に、変更内容の目視確認が可能です。Git などの構成管理ツールを利用した開発に向いています。データベース形式:
Next Design独自のバイナリー形式のファイル保存形式です。 バイナリー形式であるため、ファイル内容の目視確認等はできませんが、 JSON 形式と比較してファイルサイズが小さくなります。
caution
- JSON形式を選択した場合、プロジェクトの上書き保存時にファイルに設定されたアクセスコントロールリストの情報が失われます。アクセスコントロールリストの情報を使用しており、削除したくない場合はデータベース形式を選択してください。
ファイルの保存形式と各種ファイルの拡張子の対応関係は次の通りです。
各種ファイル | JSON 形式 | データベース形式 |
---|---|---|
プロジェクトファイル | .nproj | .iproj |
プロジェクトテンプレートファイル | .nprot | .iprot |
プロファイルファイル | .nprof | .iprof |
モデルファイル | .nmdl | .imdl |
ファイル保存形式に依存する機能
以下の機能は、対象プロジェクトとインポートまたは参照登録するファイルのファイル保存形式が一致している必要があります。
- モデルファイルのインポート
- モデルファイルの参照登録
- プロファイルのインポート
参照先モデルの名前の出力
JSON 形式でファイルを保存する場合のオプション設定として、参照先モデルの名前をファイルに出力するように切り替えられます。
デフォルトでは参照先モデルの名前は出力されません。 例えば、サブシステム「制御コア」が機能「車速制御」を参照している場合、参照関係は以下のようにモデルファイルに保存されます。
参照先モデルの名前を出力しない場合
"Relations": [
{
"Id": "9f907a6d-ed5b-4925-a35b-2b1c9ac8769a",
"RelationType": "Ref",
"MetamodelId": "ab4dd11a-d7f2-42a1-af5f-8bb224879cc6",
"Metamodel": "サブシステムから機能への参照",
"SourceId": "cd7f2f27-8271-457f-ac74-fff8ed190bbb",
"TargetId": "b25fd614-2bef-46ea-9590-fcb2d5a85307",
"TargetIndex": -1
},
],
参照先モデルの名前の出力をONにすると、Idだけだった関連の参照元、参照先のモデル名がファイルに出力されるようになります。
参照先モデルの名前を出力する場合
"Relations": [
{
"Id": "9f907a6d-ed5b-4925-a35b-2b1c9ac8769a",
"RelationType": "Ref",
"MetamodelId": "ab4dd11a-d7f2-42a1-af5f-8bb224879cc6",
"Metamodel": "サブシステムから機能への参照",
"SourceId": "cd7f2f27-8271-457f-ac74-fff8ed190bbb",
"TargetId": "b25fd614-2bef-46ea-9590-fcb2d5a85307",
"SourceId$Path": "/設計/制御コア",
"TargetId$Path": "/設計/車速制御",
"TargetIndex": -1
},
],
操作手順
- [ファイル] > [情報] ページにある [保存オプション] の [参照先モデルの名前(パス)を含める] チェックボックスをチェックします。
- プロジェクトを保存します。
関連モデルの構造化
JSON 形式でファイルを保存する場合のオプション設定として、関連付けられたモデル(以下、関連モデル)を入れ子構造で保存するように切り替えられます。
エンティティに定義された所有関連、参照関連、導出関連のフィールドごとに関連モデルを入れ子構造で保存するように変更できます。
例えば、サブシステム「制御コア」が機能「車速制御」を参照する場合、通常の保存形式では互いのモデル情報が次のように並列に保存されます。
通常の保存形式の場合
{
"Id": "b25fd614-2bef-46ea-9590-fcb2d5a85307",
"EntityType": "Entity",
"Name": "車速制御",
"MetamodelId": "69adf93c-b615-4611-b128-3d4f03e2ca90",
"Metamodel": "機能",
"Fields": {
"Name": "車速制御"
}
},
{
"Id": "cd7f2f27-8271-457f-ac74-fff8ed190bbb",
"EntityType": "Entity",
"Name": "制御コア",
"MetamodelId": "da0449f7-79f2-444e-86c7-84bc8e38301d",
"Metamodel": "サブシステム",
"Fields": {
"Name": "制御コア"
}
},
これに対して、関連モデルを入れ子構造で保存するように切り替えると、次のように「車速制御」のモデル情報が「制御コア」のモデル情報内に保存されるようになります。
関連モデルを入れ子構造にした場合
{
"Id": "b25fd614-2bef-46ea-9590-fcb2d5a85307",
"EntityType": "Entity",
"Name": "車速制御",
"MetamodelId": "69adf93c-b615-4611-b128-3d4f03e2ca90",
"Metamodel": "機能",
"Fields": {
"Name": "車速制御"
},
"OwnerId": "2e23a9e2-97fd-4177-ad82-96806c880ac5",
"OwnerId$Path": "/設計"
},
{
"Id": "cd7f2f27-8271-457f-ac74-fff8ed190bbb",
"EntityType": "Entity",
"Name": "制御コア",
"MetamodelId": "da0449f7-79f2-444e-86c7-84bc8e38301d",
"Metamodel": "サブシステム",
"Fields": {
"Name": "制御コア",
"機能$Ref": [
{
"Id": "9f907a6d-ed5b-4925-a35b-2b1c9ac8769a",
"MetamodelId": "ab4dd11a-d7f2-42a1-af5f-8bb224879cc6",
"Metamodel": "サブシステムから機能への参照",
"TargetId": "b25fd614-2bef-46ea-9590-fcb2d5a85307",
"TargetId$Path": "/設計/車速制御",
"Index": -1
}
]
},
"OwnerId": "2e23a9e2-97fd-4177-ad82-96806c880ac5",
"OwnerId$Path": "/設計",
"HasIncludeFields": true
},
操作手順
- プロファイルナビゲータ、または、メタモデルエディタで、入れ子構造で保存したいフィールドを選択します。
- インスペクタの [フィールド] タブで [構造化して保存する] チェックボックスをチェックします。
- リボンから [ファイル] > [情報] > [プロジェクトファイルの管理] > [プロジェクトファイルの更新] ボタンを押下して、構造変更の対象となるモデルファイルを更新します。
- プロジェクトを保存します。
info
- 関連モデルの構造化は、参照先モデルの名前を出力しない場合でも使用できます。
- 参照先モデルの名前を出力しない場合、上記「関連モデルを入れ子構造にした場合」のうち、以下の2行が出力されません。
- "TargetId$Path": "/設計/車速制御",
- "OwnerId$Path": "/設計",
caution
- [構造化して保存する] チェックボックスを変更した後に、操作手順 3. を行わなかった場合、編集操作が加えられていないモデルファイルは更新されません。
- その後、モデルファイルに編集操作が加えられた時に関連モデルの構造化も同時に反映されて更新されます。