プロジェクトファイル (.msproj)のXML仕様
ルート要素およびルート直下に展開される要素の一覧
MessageStudioProject(Root Element)
MessageStudioProject 要素 ( Root Element )
宣言
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <MessageStudioProject Format="1.1" xmlns="nintendo:msgstudio"> ... </MessageStudioProject>
説明
MessageStudioProject要素は、プロジェクトファイルのルート要素となります。 この要素は以下の属性を持ちます。
| 属性名 | 説明 |
|---|---|
| xmlns | XML名前空間です。 この値は常に nintendo:msgstudio となります。 |
| Format | プロジェクトファイルのフォーマットバージョンです。 このフォーマットバージョンは、プロジェクトファイルのフォーマットバージョンであり、 Message Studio本体のバージョンとは異なることに注意して下さい。 現在のバージョンは1.0です。 |
また、MessageStudioProject要素はルート要素ですので、これ以下の要素全てを子として持ちます。
PluginInfo 要素
宣言
<PluginInfo PluginDir="&(ProjectDir)\plugins" Recursive="True"> />
説明
PluginInfo要素は、プラグインの配置場所に関する情報を持ちます。 この要素は以下の属性を持ちます。
| 属性名 | 説明 |
|---|---|
| PluginDir | プラグインが配置されているディレクトリ名です。 MessageStudioはこのディレクトリからプラグイン読み込みを 試みます。 この記述にはマクロ文字列が使用できます。 |
| Recursive | ProjectDir属性が示すディレクトリ以下のディレクトリに対して 再帰的にプラグイン読み込みを試みるかを指定します。 TrueまたはFalseを指定できます。 |
Contents 要素
宣言
<Contents> <Directory Name="System"> <ContentItem Name="Errors.mstxt"> <ContentItem Name="Items.mstxt"> ... </Directory> <Directory Name="Test"> <Meta Key="F4CD8CBE-4A0C-4d3f-BA69-BD1C25B8DC2A"> *.mstxt </Meta> <ContentItem Name="Test0.mstxt"> ... </Directory> ... <ContentItem Name="Readme.txt"> ... </Contents>
説明
Contents要素は、プロジェクトファイルが管理するコンテンツファイルに関する 情報を持ちます。
Contents要素およびDirectory要素は、ContentItem要素およびDirectory要素を含むことが出来ます。 Directory要素とContentItem要素は、Nameという共通の属性を持ちます。Name要素にはそれぞれ、 ディレクトリ名およびファイル名が入ります。
Contents要素、Directory要素、ContentItem要素はMeta要素を含むことができます。 Meta要素はKeyという属性を1つだけ持ち、これはメタ情報プラグイン を一意に識別するGUIDになります。 Meta要素に含まれる文字列は、メタ情報プラグインが設定する任意の値であり、 Message Studio本体がこの値を用いて何かをすることはありません。 どのように処理するかはメタ情報プラグイン次第です。
Properties要素
宣言
<Properties> <PreBuildEvent>echo hello world</PreBuildEvent> <PostBuildEvent>echo good bye</PostBuildEvent> <TeamSettings AutoUpdate="False" AutoCommit="False" AutoCloseOnAutoUpdate="False" /> </Properties>
説明
Properties要素はプロジェクト設定に関する情報を持ちます。 この要素は、以下の要素を含みます。
| 要素名 | 説明 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| PreBuildEvent | ビルド前の処理を記述します。 ここに記述されたシェルコマンドがビルド前に実行されます。 ここにはマクロ文字列を使用することができます。 | ||||||||
| PostBuildEvent | ビルド後の処理を記述します。 ここに記述されたシェルコマンドがビルド後に実行されます。 ここにはマクロ文字列を使用することができます。 | ||||||||
| TeamSettings |
チーム管理機能に関する設定情報を持ちます。
この要素は以下の属性を持ちます。
|
Language 要素
宣言
<Language LanguageName="JP_Japanese" OutputBinary="True" ReviewEnabled="True" RubyWarning="True" SpellEnabled="False" Dictionary="en_GB"> <Language LanguageName="US_English" OutputBinary="True" ReviewEnabled="False" RubyWarning="False" SpellEnabled="True" Dictionary="en_US"> ... </Language> ... </Language>
説明
Language要素は、言語設定に関する情報を持ちます。 Language要素は、別のLanguage要素を子に含むことができます。 このLanguage要素の親子構造は、そのまま言語ツリーとして Message Studioに取り込まれます。
| 属性名 | 説明 |
|---|---|
| LanguageName | 言語名です。 |
| OutputBinary | TrueかFalseを指定できます。 ビルダーが、この言語に関する テキストデータなどを出力すべきかどうかを示し、Trueなら出力すべきです。 |
| ReviewEnabled | TrueかFalseが指定できます。 Trueならレビュー機能が 有効になります。 |
| RubyWarning | TrueかFalseを指定できます。 Trueなら、ビルダーが、 この言語に関するテキストをビルドする際、漢字にルビタグ(ふりがな)が 設定されていなければ警告を出してくれるようになります。 ただし、中国語に対してこの機能を有効にしてはいけません。(すべての文字に対して 警告が出ることになります。) |
| SpellEnabled | TrueかFalseを指定できます。 Trueならこの言語に対してスペルチェック機能が有効になります。 |
| Dictionary | スペルチェックに用いる辞書の名前です。 |
Fonts 要素
宣言
<Fonts> <FontSetting FontName="MyFont" Loader="e5d705a4-ee19-4b1c-a3da-eccc4ed6fdf8"> <FontPath>$(ProjectDir)\..\Font\MyFont.brfnt</FontPath> </FontSetting> ... </Fonts>
説明
Fonts要素は、フォント設定に関する情報を持ちます。 Fonts要素は、0個以上のFontSetting要素を含みます。
FontSetting要素
FontSetting要素は以下の属性を持ちます。
| 属性名 | 説明 |
|---|---|
| FontName | フォントの名前です。 |
| Loader | フォントリソースを読み込むためのフォントローダープラグインを 示すGUIDです。 |
また、宣言のFontType要素の例ように、FontSetting要素は任意の要素を含むことができます。 これらの要素はLoader属性に設定されているフォントローダープラグインが 独自に追加可能な要素であり、Message Studio本体がこれらの要素を直接扱うことは ありません。
Styles 要素
宣言
<Styles> <StyleClass StyleName="MyStyle"> <Default RegionWidth="400" LineNum="3" FontName="MyFont_A" RenderMode="f23e335b-192a-4a51-87f8-2ca98cac9a57"> <Nw4rTextWriter ScaleH="1" ScaleV="1" LineSpace="0" CharSpace="0" TabWidth="4" EnableFixedWidth="False" FixedWidth="0" /> </Default> <Substitute Language="JP_Japanese" RegionWidth="410" LineNum="4" FontName="MyFont_B" RenderMode="f23e335b-192a-4a51-87f8-2ca98cac9a57"/> <Nw4rTextWriter ScaleH="1" ScaleV="1" LineSpace="0" CharSpace="0" TabWidth="4" EnableFixedWidth="False" FixedWidth="0" /> </Substitute> ... </StyleClass> ... </Styles>
説明
Styles要素は、スタイル設定に関する情報を持ちます。 Styles要素は、0個以上のStyleClass要素を含みます。
StyleClass 要素
StyleClass要素は1つの属性を持ちます。
| 属性名 | 説明 |
|---|---|
| StyleName | スタイルの名前です。 |
また、StyleClass要素は1つのDefault要素および0個以上のSubstitute要素を含みます。 Default要素とSubstitute要素はほぼ共通のフォーマットを持ちます。以下に Default要素とSubstitute要素のフォーマットを示します。
Default要素、Substitute要素
| 属性名 | 説明 |
|---|---|
| Language | スタイル設定を特殊化した言語の名前です。 この属性はSubstitute要素にのみ含まれます。 |
| RegionWidth | 表示可能領域幅です。 ピクセル単位で指定します。 |
| LineNum | 表示可能行数です。 |
| FontName | フォントの名前です。 |
| RenderMode | このスタイルで使用するレンダリング方式プラグインを 示すGUIDです。(レンダリング方式についてはこちら) |
また、宣言のNw4rTextWriter要素の例ように、 Default要素およびSubstitute要素は、0個以上の任意の要素を含むことができます。 これらの要素はRenderMode属性に設定されているレンダリング方式プラグインが 独自に追加可能な要素であり、Message Studio本体がこれらの要素を直接扱うことは ありません。
Colors要素
宣言
<Colors> <Color Name="Red" R="255" G="0" B="0" A="255" /> <Color Name="Blue" R="0" G="0" B="255" A="255" /> ... </Colors>
説明
Colors要素は0個以上のColor要素を含みます。 Color要素は以下の属性を持ちます。
Color要素
| 属性名 | 説明 |
|---|---|
| Name | カラーの名前です。 |
| R, G, B, A | RGBA形式で表される色の各成分の値です。 各成分は8bitで、全体として32bitのカラーになります。 |
TagGrooups要素
宣言
<TagGroups> <TagGroup GroupName="MY_GROUP"> <MultilingualName> <Japanese>My group</Japanese> </MultilingualName> <Tag TagName="MY_TAG" HasInside="False" CompareError="Strict"> <MultilingualName> <Japanese>My tag</Japanese> </MultilingualName> <Comment> <Japanese>This is Comment</Japanese> </Comment> <Parameter Name="MY_PARAM" Type="String" Default="This is String Type parameter." LimitType="None"> <MultilingualName> <Japanese>My parameter</Japanese> </MultilingualName> <ListItem Name="New_Item"> <MultilingualName /> </ListItem> </Parameter> <Default> <WidthCalcInfo Calculator="d545ff2d-63d0-43a4-b954-eba129dc7381"> <Pixels>15</Pixels> </WidthCalcInfo> </Default> </Tag> </TagGroup> </pre>
説明
TagGroups要素は、タグ設定に関する情報を持ちます。 TagGroups要素は、0個以上のTagGroup要素を含みます。
TagGroup要素は、1つのタググループに関する情報を持ちます。 TagGroup要素は、以下の属性と要素を持ちます。
TagGrooup要素
| 属性名 | 説明 | ||||||
|---|---|---|---|---|---|---|---|
| GroupName | タググループの定義名です。 定義名にはASCIIで表すことができる文字しか使用することができず、 また255文字以内である必要があります。 | ||||||
| 要素名 | 説明 | ||||||
| MultilingualName |
多言語に対応した名前付けが可能な要素です。
MultiligualName要素は以下の要素を含むことができます。
これらの要素は、Message Studioで設定されていない場合は
記述されず、Message Studioでは定義名で表示されることになります。
|
||||||
| Tag | このタググループに含まれるタグ1つ分の情報を持ちます。 Tag要素は複数個含まれる可能性があります。 |
Tag要素
Tag要素は、タグに関する情報を持ちます。 Tag要素は以下の属性と要素を持ちます。
| 属性名 | 説明 | ||||
|---|---|---|---|---|---|
| TagName | タグの定義名です。 定義名にはASCIIで表すことができる文字しか使用することができず、 また255文字以内である必要があります。 | ||||
| HasInside | TrueかFalseを指定できます。 Trueの場合、そのタグは範囲タグとして扱われます。 範囲タグとは内部にテキストを持つことができるタグのことを言います。 | ||||
| CompareError |
タグ使用状況比較を行ったときの、比較条件を示します。
以下の値のいずれかである必要があります。
|
||||
| 要素名 | 説明 | ||||
| MultilingualName | 多言語に対応した名前付けが可能な要素です。 TagGroup要素のMultilingual要素と同じ構造を持ちます。 | ||||
| Comment | タグに関するコメントです。 多言語に対応しており、MultilingualName要素と同じ構造をもちます。 | ||||
| Parameter | このタグに含まれるタグパラメータ1つ分の情報を持ちます。 Parameter要素は複数個含まれる可能性があります。 | ||||
| Default |
デフォルトのタグの幅設定に関する情報を保持します。
特に、Substitute要素で言語別に特殊化されない限り、タグの幅情報としてこのデフォルト設定が使用されます。
タグの幅計算方法はプラグインによって拡張できるため、どのプラグインを利用するのかという情報が埋め込まれます。
|
||||
| Substitute |
言語別に特殊化されたタグの幅情報を保持します。
Substitute要素は、Default要素のに加え、以下の要素を持ちます。
|
Parameter要素
Parameter要素は、タグパラメータに関する情報を持ちます。 Parameter要素は以下の属性と要素を持ちます。
| 属性名 | 説明 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Name | タグパラメータの定義名です。 定義名にはASCIIで表すことができる文字しか使用することができず、 また255文字以内である必要があります。 | ||||||||
| Type |
パラメータの型を示します。
この値は以下のいずれかである必要があります。
|
||||||||
| Default | このパラメータのデフォルト値です。 テキストへのタグ挿入時に、特にパラメータが指定されなかった場合はこのデフォルト値が使用されます。 また、LimitType属性でFixedが指定された場合はこの値が固定値として扱われます。 | ||||||||
| LimitEnabled | この属性は現在使用されていません。 互換性のために残っています。 代わりにLimitType属性を使用して下さい。 | ||||||||
| LimitType |
このパラメータの入力制限の種類を示します。
この値は以下のいずれかである必要があります。
|
||||||||
| 要素名 | 説明 | ||||||||
| UserMaxValue | このパラメータの最大値です。 LimitType属性でUserLimitが指定された場合に使用されます。 | ||||||||
| UserMinValue | このパラメータの最小値です。 LimitType属性でUserLimitが指定された場合に使用されます。 | ||||||||
| MultilingualName | 多言語に対応した名前付けが可能な要素です。 TagGroup要素のMultilingual要素と同じ構造を持ちます。 | ||||||||
| ListItem |
このパラメータに設定されているリストアイテム(項目)です。
Type属性がListだった場合に使用されます。
この要素は複数個含まれる可能性があります。
|
Attributes要素
宣言
<Attributes> <Attribute Name="MY_ATTRIBUTE" Type="UInt8" Default="5" LimitEnabled="True"> <UserMaxValue>10</UserMaxValue> <UserMinValue>0</UserMinValue> <MultilingualName> <Japanese>My Attr</Japanese> </MultilingualName> <MultilingualComment> <Japanese>This is Comment.</Japanese> </MultilingualComment> <Item Name="New_Item"> <MultilingualName /> </Item> </Attribute> </Attributes>
説明
Attributes要素は、属性設定に関する情報を持ちます。 Attributes要素は、0個以上のAttribute要素を含みます。
Attribute要素
Attribute要素は、1つの属性に関する情報を持ちます。 Attribute要素は、以下の属性と要素を持ちます。
| 属性名 | 説明 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Name | この属性の定義名です。 定義名にはASCIIで表すことができる文字しか使用することができず、 また255文字以内である必要があります。 | ||||||||||
| Type |
属性の型を示します。
この値は以下のいずれかである必要があります。
|
||||||||||
| Comment | この属性は現在使用されていません。 互換性のために残っています。 代わりにMultiligualComment要素を使用します。 | ||||||||||
| Default | この属性のデフォルト値です。 特にパラメータが設定されない場合はこのデフォルト値が使用されます。 | ||||||||||
| LimitEnabled | この属性の値に入力制限を設けるか否かです。 TrueかFalseが指定できます。 Trueの場合、最大値としてUserMaxValue要素、 最小値としてUserMinValue要素を使用します。 | ||||||||||
| 要素名 | 説明 | ||||||||||
| UserMaxValue | このパラメータの最大値です。 LimitEnabled属性がTrueの場合に使用されます。 | ||||||||||
| UserMinValue | このパラメータの最小値です。 LimitEnabled属性がTrueの場合に使用されます。 | ||||||||||
| MultilingualName | 多言語に対応した名前付けが可能な要素です。 TagGroup要素のMultilingual要素と同じ構造を持ちます。 | ||||||||||
| MultilingualComment | 属性に関するコメントです。 多言語に対応しており、MultilingualName要素と同じ構造をもちます。 | ||||||||||
| Item |
この属性に設定されているリストアイテム(項目)です。
Type属性がListだった場合に使用されます。
この要素は複数個含まれる可能性があります。
|
Dictionaries要素
宣言
<Dictionaries> <Dictionary Name="en_US"> <ExtraWord>mstxt</ExtraWord> <ExtraWord>gmm</ExtraWord> ... </Dictionary> ... </Dictionaries>
説明
Dictionaries要素は、辞書への追加単語に関する情報を持ちます。 辞書や、辞書への単語追加に関してはこちらをご覧下さい。 Dictionaries要素は、0個以上のDictionary要素を含みます。
Dictionary要素
| 属性名 | 説明 |
|---|---|
| Name | 単語が追加される辞書の名前です。 |
| 要素名 | 説明 |
| ExtraWord | 追加される単語1つ分を示します。 この要素は複数含まれる可能性があります。 |
BuilderSettings要素
宣言
<BuildSettings> <BuildSetting Builder="45e0d427-0349-45b3-8015-c5e4cc773460"> <AttributeHeader HeaderPath="$(ProjectDir)\include\ms_attributes.h" Encoding="932" ItemPrefix="MSATTRITEM_" /> </BuildSetting> <BuildSetting Builder="8857dfd8-959a-4029-afcc-7db874bd58e8"> <MessageBinInfo OutputDir="$(ProjectDir)\bin\$(LanguageName)\$(InputFileName).msbt" Encoding="UTF16" Newline="LF" IsLittleEndian="False" HasLabelBlock="True" HashSize="101" HasAttributeBlock="True" DirectColor="True" /> </BuildSetting> ... </BuildSettings>
説明
BuilderSettings要素は、各ビルダープラグインの設定情報を持ちます。 BuilderSettings要素は、0個以上のBuilderSetting要素を含みます。
BuilderSetting要素
BuilderSetting要素は、ビルダープラグイン1つ分の設定情報を持ちます。 BuilderSetting要素は以下の属性を持ちます。
| 属性名 | 説明 |
|---|---|
| Builder | ビルダープラグインを示すGUIDです。 |
また、宣言のAttributeHeader要素やMessageBinInfo要素の例ように、 BuilderSetting要素は任意の要素を含むことができます。 これらの要素はBuilder属性に設定されているビルダープラグインが 独自に追加可能な要素であり、Message Studio本体がこれらの要素を直接扱うことは ありません。
Roles 要素
宣言
<Roles> <Administrator Password="kmPKnUp79QbJSj1k/WjaE3tIXKPmSp0j2Xoh0IEk5sk=" /> <RestrictedRole Name="JP_Japanese editor"> <Forbidden Permission="234a7423-2b39-47ed-a343-8207b935fe06"> <Subkey Name="US_English" /> </Forbidden> <Forbidden Permission="4040d647-c07f-4e9b-9334-95b62ef0e00a" /> <Forbidden Permission="40bc80ae-4158-413a-8a89-0620daecd70e" /> ... </RestrictedRole> ... </Roles>
Roles要素は、ロールとパーミッションに関する情報を持ちます。 Roles要素は、以下の属性と要素を持ちます。
| 要素名 | 説明 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Administrator |
管理者に関する情報を持ちます。
管理者には全ての操作を行う権限が与えられています。
この要素は以下の属性を持ちます。
|
||||||||
| RestrictedRole |
ロール1つ分を示します。
RestrictedRole要素は複数個含まれる可能性があります。
ロールにはパーミッションが設定されており、各パーミッションはForbidden要素で示されます。
Forbidden要素は以下の属性と要素を持ちます。
Forbidden要素
|
ExtraSettings要素
宣言
<ExtraSettings> <ExtData DataHolder="4520d7e7-1449-498b-bd1d-784ee068c2d7" /> <ExtData DataHolder="d5290830-ab71-4923-a9b3-ad88cfaf7f2c"> <SaveBuild_ButtonName xmlns="nintendo:msgstudio"> Commit </SaveBuild_ButtonName> <SaveBuild_CommitMessage xmlns="nintendo:msgstudio"> commit by @(USERNAME) </SaveBuild_CommitMessage> <SaveBuild_PostProcess xmlns="nintendo:msgstudio" /> <Execute_ButtonName xmlns="nintendo:msgstudio"> Run </Execute_ButtonName> <Execute_Process xmlns="nintendo:msgstudio" /> </ExtData> ... </ExtraSettings>
説明
ExtraSettings要素は、各種プラグインに関する設定を持ちます。 この要素は、0個以上のExtraData要素を含みます。
ExtraData要素
ExtraData要素は、以下の属性を持ちます。
| 属性名 | 説明 |
|---|---|
| DataHolder | プラグインを識別するためのGUIDです。 |
また、ExtraData属性には、宣言のSaveBuild要素やExecute要素の例のように、 任意の要素を追加することができます。 これらの要素はDataHolder属性に設定されているプラグインが独自に追加可能な要素であり、 Message Studio本体がこれらの要素を直接扱うことはありません。
はじめに
言語設定
メッセージ編集
共通のバイナリフォーマット