Links
UJML Language Reference
シンタックスに関するメモ

UJMLはXMLベースの宣言型言語であり、規定された要素の集合とそれらが取りうる属性の値と、 簡単な手続き型のスクリプティング言語の組み合わせから構成されています。

UJMLは、UJMLコンテンツを定義する規定済みのXML要素と属性の集合と、 UJMLスクリプトを記述するスクリプト要素から構成されています。 使用可能なXMLタグと属性値はUJMLシンタックスのXML部分を表しています。 関連項目: XML タグUJML タグ。 UJMLスクリプティング言語はJavaScriptのサブセットになっています(JavaScriptは Ecma Internationalの標準であるため、またの名をECMAScriptといいます)。 関連項目: スクリプティング言語。 

UJMLはXMLベースであるため、UJMLはXMLの規約に従います。 UJML言語はUJMLコンテンツを定義する規定済みのXML要素と属性の集合と、 UJMLスクリプトを記述するスクリプト要素から構成されています。 これらは全て これらは全て、UJMLのインストールに含まれているXML DTDで提供されています。

UJML XML 要素

XML要素は、一対のタグ<tagname></tagname>から構成されています。 要素には、UJML DTDに規定されている階層構造にのっとって、他の要素を含むものがあります。 属性値はDTDによって規定されており、その他の制限事項をUJMLコンパイラーによって課せられている場合があります。

要素の記述順

UJMLのシンタックスは、多くの要素に厳密な記述順に従うことを求めています。 (例えば、<x> は必ず <y> 要素の前に記述されねばなりません) 特に指定のない限り、本書において規定されている記述順には従わなければならない、と考えてください。 規定された記述順を守らないUJML文書は無効であり、コンパイラーから拒絶されます。 コンパイラーが受け付けるXMLシンタックスは UJML DTD によって正規の定義がなされています。

空白について

要素と要素との間の空白は無視されます。空白はテキストのリテラル値または数字を含む要素内でのみ、 意味を持ちます。テキスト要素の中では、空白は空白として認識されますが、 数値を扱うタグ内に空白があるとコンパイル時にエラーが発生します。

混合内容

混合内容とは、XMLの同一階層においてUJMLタグと文字列データが混在することを指します。UJMLでは混合内容の使用は認められていません。 空タグ以外のタグであれば、タグ間にテキストが含まれるか、或いは他のタグを含むかの何れかでなければならず、テキストと他のタグを混合して含むことはできません。同一の階層の中にテキスト・数字と他のタグを含める必要があるときは、そのテキストは<val>要素の内で記述されていなければなりません。

エンティティ

XML ではエンティティを定義することよって、頻繁に使用される文字列や数値を繰り返し利用できます。 関連項目: XML エンティティ。 UJML の DTD ではエンティティ名が '_' で始まる、便利なエンティティを幾つか定義しています。 関連項目: エンティティ。 ユーザーは UJML DTD に定義されているエンティティに加え、独自のエンティティを自由に定義することができます。 関連項目: リテラルと定数

UJMLのシンタックスの表記について

UJML要素のシンタックスはその要素が含むことができる他の要素とその属性(属性が必要な場合)を 正規の表記で規定しています。 子要素を複数記述することを許可している場合は (...)で示されています。 また子要素が複数の孫要素の記述を許可している場合も(...)で示されています。 使用が任意である要素は大括弧で ([])示されています。 また要素の中身として記述可能な内容を中括弧 ({}) に簡略した形で記載している場合もあります。 中括弧の中身はテキストである場合、スクリプティング式である場合、そして特定のUJML要素の場合とがあります。 

例えばbox要素のシンタックスは次のように定義されています:

<box>
    [<x>{integer-expr}</x>]
    [<y>{integer-expr}</y>]
    [<width>{integer-expr}</width>]
    [<height>{integer-expr}</height>]
    [<fg>{color-expr}</fg>]
    [<bg>{color-expr}</bg>]
    [<x-clip>{boolean-expr}</x-clip>]
    [<event>...</event>]
    [{visual-element}...]
</box>

 

またvar要素のシンタックスは次のように定義されています:

<var
    name="{string}"
    type="int | boolean | string | handle"
    [size="{integer}[,{integer}...]"]
    [access="import | export"]
    [visibility="public | private"]/>
スクリプティング言語

script要素の中の内容は、UJMLスクリプトの規定に従わねばなりません。 スクリプティング言語のシンタックスの仕様に関してはスクリプティング言語を参照してください。 スクリプト要素の中にはXML要素を記述してはなりません。ただし、エンティティやXMLのコメントを記述することは可能です。

UJML API関数のシンタックス定義

UJMLは広範囲な用途をカバーし、プログラム内から使用可能なビルトイン関数を提供しています。 関連項目: 関数。 関数には戻り値をもつものと、戻り値をもたないvoid型のものがあります。 関数には引数をもたないものと、複数の引数を必用とするものがあります。 それぞれの引数は決まったデータ型の値を必要とします。 最後の引数を繰り返し指定することが可能な場合は (...)で示されています。 指定が任意の引数は大括弧([])で括られています。 

例えば_strcat関数のシンタックスは次のように定義されています:

string _strcat(string s1, string s2, ...)

 

また_srand関数のシンタックスは次のように定義されています:

int _srand(int seed)
シンタックスの表記一覧
シンタックス要素 
説明 
<name
規定された名称のXMLタグ 
name="{value-type}" 
規定された名称のXML属性 
[ ] 
指定が任意の項目を示す 
... 
繰り返し指定することが可能な項目、または省略する項目を示す 
選択を示す 
{boolean} 
真または偽のリテラル値。 関連項目: boolean型リテラルと定数。 
{integer} 
整数のリテラル値。 関連項目: int型リテラルと定数。 
{string} 
Unicode文字列のリテラル値。 関連項目: string型リテラルと定数。 
{expression} 
リテラル値、または評価した際に値を返すスクリプティング要素 
{boolean-expr} 
{boolean}に評価される{expression} 
{integer-expr} 
{integer}に評価される{expression} 
{handle-expr} 
ハンドルに評価される{expression}。 関連項目: handle型。 
{string-expr} 
{string}に評価される{expression} 
{color-expr} 
整数値で表した色のRGB値。関連項目: UJMLにおける色。 
{size-expr} 
整数値で表したフォントサイズ。 関連項目: テキストとフォントフォントエンティティ。 
{style-expr} 
整数値で表したフォントスタイル。 関連項目: テキストとフォントフォントエンティティ。 
{face-expr} 
整数値で表したフォントフェイス。 関連項目: テキストとフォントフォントエンティティ。 
{url} 
リソースのURL。関連項目: Resources. 
{image-file} 
画像ファイルの{url} 
{sound-file} 
音声ファイルの{url} 
{media-file} 
画像または音声ファイルの{url}  
{UJML-file} 
UJMLバイトコードファイルまたはJSP等のUJMLを生成するリソースの{url}。 関連項目: バイトコードファイル。 
{key-code} 
0-9、 a-z、 A-Z、 UP、 DOWN、 LEFT、 RIGHT、 FIRE、 GAME_A、 GAME_B、 GAME_C、 GAME_D、 F1、 F2、 POUND、 STARの中のどれか一つ。 関連項目: キーコード。 
{visual-element} 
画面に描画されるビジュアル要素。関連項目: ビジュアル要素。 
Copyright (c) 2000-2005 by UIEvolution, Inc. All rights reserved.
この項目に関するフィードバックをお寄せください。 Send feedback!