field 要素

field要素

field 要素は、メッセージや構造体に含まれるデータを定義する。

親要素 子要素 属性
 
  • name(必須)
  • type(必須)
  • maxlength(オプション)

name 属性

要素データの名前を指定する。

type 属性

要素データの型を指定する。

type では、予約型か複合型の配列が指定可能である。

予約型には次のものがある:

bool 真偽値
int8 8bit整数
int16 16bit整数
int32 32bit整数
int64 64bit整数
uint8 符号無し8bit整数
uint16 符号無し16bit整数
uint32 符号無し32bit整数
uint64 符号無し64bit整数
float 単精度浮動小数点数
double 倍精度浮動小数点数
string 文字列

予約名に当てはまらない名前は、複合型の指定とみなされる。 複合型の名前に "." が含まれない場合は現在の名前空間の、"." がある場合はルート名前空間に属するとして扱われる。

nineml は、複合型が実際に定義されているかどうかは関知しない。 プログラム言語のコンパイル時に解決されるはずである。 典型的には、nineml で定義した構造体を指定することが多いであろう。

複合型は、次の関数が定義されている必要がある:
  • int getMarshalSize()
  • void marshal(nine::Buffer)
  • void unmarshal(nine::Buffer)
JavaScript 出力の場合は getMarshalSize() は不要である。

maxlength 属性

maxlength 属性に数値を指定した場合、データは最大 maxlength 格納できる配列として定義される。