X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
(1)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
まえがき
この規格は,工業標準化法に基づいて,日本工業標準調査会の審議を経て,通商産業大臣が制定した日
本工業規格である。
JIS X 4346には,次に示す附属書がある。
附属書A(規定) ASN.1表記法
附属書B(規定) テキスト表記法
附属書C(規定) MHEG-5 API
附属書D(参考) 基本操作とMHEG-5 AP1演算との対応付け
附属書E(参考) MHEG-6アプレットとWorld Wide Webアプレットとの関係
附属書F(参考) 主な特徴
附属書G(参考) 知的財産権
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
日本工業規格 JIS
X 4346 : 1999
(ISO/IEC 13522-6 : 1998)
情報処理技術ーマルチメディア・
ハイパメデイア情報符号化−
第6部:拡張対話型応用
Information technology−Coding of multimedia and
hypermedia information−
Part 6 : Support for enhanced interactive applications
序文 この規格は,1998年に第1版として発行されたISO/IEC 13522-6, Information technology−Coding of
multimedia and hypermedia information−Part 6 : Support for enhanced interactive applicationsを翻訳し,技術的
内容を変更することなく作成した日本工業規格である。
1. 適用範囲
1.1
適用範囲の背景 この一群の規格“マルチメディア・ハイパメディア情報符号化”は,マルチメデ
ィア・ハイパメディア情報オブジェクト(MHEGオブジェクト)の符号化表現を規定する。この規定によ
ってMHEGオブジェクトは,ローカルエリアネットワーク,広域な通信又は放送ネットワーク,記憶媒体
を通じて,複数のサービス及び応用内,更にこれらをまたがって,最終形式の単位で交換される。MHEG
オブジェクトは,マルチメディアスクリプト言語を用いて設計されたマルチメディア応用のソースプログ
ラムを入力として,計算機ツールによって作り出される。この意味合いからすると,MHEGスクリプト(言
い換えればプログラム)クラスは,他のMHEGクラスと相補いあって,スクリプト言語で広く利用されて
いる機能を表現する。スクリプト(プログラム)オブジェクトは,より強力な制御機構を表現し,MHEG
操作オブジェクト及びリンクオブジェクトだけで表現できる範囲を超えて,MHEGオブジェクト間のより
複雑な関係を記述できる。更に,スクリプト(プログラム)オブジェクトは,実行時環境が提供してくれ
る外界との対話サービスをも表現する。
JIS X 4345は,情報交換と利用のための基本レベルの応用におけるMHEGオブジェクトクラスを定義す
る。これは,対話的な広帯域サービスを実現するアダプタ(セットトップユニット)など,最小限の端末
で動作することを意図している。
JIS X 4345は,開かれた方法でプログラムオブジェクトの符号化表現を定義する。
これは,プログラムオブジェクトが標準化されたか否かを問わず,プログラムコードをカプセル化する
ことを可能とする。
JIS X 4345は,応用領域で定義されている符号化形式であれば,どの符号化されたプログラムであって
も,プログラムオブジェクトが内蔵又は参照することを可能とする。
2
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
1.2
この規格の適用範囲 この規格は,拡張対話型マルチメディア応用を交換する際の最終形式符号化
表現及び意味を定義する。
これらの応用は,計算機能(データ処理),拡張された通信機能(サーバ,ローカルデバイスなどの外部
環境とのやりとり)などを総合することによって,JIS X 4345によって実現される応用を拡張する。
これらの応用は,放送形式,クライアントサーバ形式,又は会話形式 (peer-to-peer) などの,どのよう
な通信環境においても利用することができる。しかし,主な対象は,対話型検索(クライアントサーバ)
応用である。これらは,下りチャネルにおける実時間映像音声を伴う非対称データ交換を含む限られた資
源のセットトップユニットで動作する。
この規格で定義する符号化表現は,JIS X 4345によって定義される符号化表現を特殊化する。特に,こ
の規格は,MHEG-5の交換プログラム (Interchanged Program) クラスにおけるOriginalContent属性のため
の符号化表現を定義する。加えてこの規格は,アプレット (Applet) クラスを定義する。アプレットクラス
は,交換プログラムのサブクラスであっては,エンジンからの委託によって自身の表示及び対話を管理す
る能力をもつ。
この符号化表現は,次の性質をもつ。
− JIS X 4345で定義されたものと両立できる。
− JIS X 4345で示された最小限の資源制約と同じ条件のセットトップユニットで実行するのに適してい
る。
この規格は,次の事項を規定する。
− MHEG-5の交換プログラムクラスにおけるOriginalContent属性のための交換様式
− 符号化表現の意味
− アプレットクラスの符号化表現及び意味
− JIS X 4345によるMHEG-5エンジンの振る舞いに対する意味の拡張
− JIS X 4345によるMHEG-5交換様式の意味の制約
− 交換プログラムオブジェクトのコードからMHEG-5エンジンの出力機能を呼び出すMHEG-5 API
− MHEG-5エンジン実行モデルと,プログラム内容交換様式の基礎になる実行モデルとの間の協調動作
の要件
MHEGエンジンは,MHEGオブジェクトを扱い,解釈し,出力するシステム又は応用の構成要素で
ある。この規格は,MHEG-6符号化表現の意味を規定する。これらの意味は,MHEG-6エンジンの振
る舞いに関する最小限の要件として規定する。
この規格は,マルチメディア・ハイパメディアの情報を交換するすべての応用に適用できる。
2. 引用規格及び参照仕様
2.1
引用規格 次に掲げる規格は,この規格に引用されることによって,この規格の規定の一部を構成
する。これらの引用規格は,その最新版を適用する。
JIS X 0201 7ビット及び8ビットの情報交換用符号化文字集合
備考 ISO/IEC 646 : 1991, Information technology−ISO 7-bitcoded character set for information
interchangeからの引用事項は,この規格の該当事項と同等である。
JIS X 0221 国際符号化文字集合 (UCS) −第1部 体系及び基本
備考 ISO/IEC 10646-1 : 1993, Information Technology−Universal Multiple−Octet Coded Character Set
(UCS) −Part 1 : Architecture and Basic Multilingual Planeがこの規格と一致している。
3
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
JIS X 4345 情報処理技術−マルチメディア・ハイパメディア情報符号化−第5部 基本レベル対話
型応用
備考 ISO/IEC 13522-5 : 1997, Information Technlogy−Coding of multimedia and hypermedia
information−Part 5 : Support for Base-level interactive applicationsがこの規格と一致してい
る。
JIS X 5605-1 : 1998 情報技術−抽象構文記法1 (ASN.1) 仕様−第1部:基本記法の仕様
備考 ISO/IEC 8824-1 : 1995, ITU-T Recommendation X.680 (1994), Information Technology−Abstract
Notation One (ASN.1) : Specification of basic notationからの引用事項は,この規格の該当事
項と同等である。
JIS X 5606-1 : 1998 情報技術−ASN.1 符号化規則−第1部:基本符号化規則 (BER),標準符号化規
則 (CER) 及び識別符号化規則 (DER) の仕様
備考 ISO/IEC 8825-1 : 1995, ITU-T Recommendation X.690 (1994), Information technology−ASN.1
encoding rules : Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER)
and Distinguished Encoding Rules (DER) からの引用事項は,この規格の該当事項と同等で
ある。
2.2
参照仕様 ここでは,原国際規格発行の時点で有効であった参照仕様を示す。これらの参照仕様は,
この規格でその一部分だけを参照して用いる。参照仕様そのものは,それ以上のものではない。特に,こ
こに示してあるからといって,国際規格であることにはならない。
a) Lindholm, Tim and Yellin, Frank (September 1996), The Java Virtual machine specification. ISBN :
0-201-63452-X, Addison-Wesley Publishing Co. : Reading, Massachusetts.
b) Gosling, James, Yellin, Frank and the Java team (May 1996), The Java Application Programming Interface,
Volume 1 : Core Packages. ISBN : 0-201-63453-8, Addison-Wesley Publishing Co. : Reading, Massachusetts.
3. 定義 この規格で用いる主な用語の定義は,JIS X 4345によるほか,次による。
3.1
アプレット (applet) ホストの枠組みの中でだけ実行することができる自律したプログラム。
3.2
アプリケーションクラス (application class) JVM命令語で書かれ,MHEG-6応用の一部として交
換対象となるJavaのクラス。
3.3
API (application programming interface) 応用ソフトウエアからプログラム言語の機能を通してソ
フトウエアサービスを利用するためのインタフェース。
3.4
属性 (attribute) オブジェクトと値との対応。名前と型とが付与され,クラスのインタフェースの
一部として宣言される。属性には,次のものがある。
a) MHEG-5属性(JIS X 4345参照)
b) JVMクラスの属性(2.2参照)
3.5
クラス (class) 交換対象となる一群の情報オブジェクトに共通するデータ(属性)及び振る舞いを
抽象化した定義。クラスには,次のものがある。
a) MHEG-5クラス(JIS X 4345参照)
b) JVMクラス(2.2参照)
3.6
例外 (exception) 演算要求の実行中に例外的な条件が生じた場合に発生する信号。特に,JVM例
外がある[2.2a)参照]。
4
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
3.7
ハイパメディア (hypermedia) 明示的なリンクを介しての,モノメディア及びマルチメディアの情
報へのアクセスを伴う場合の形容詞。
3.8
実体 (instance) 指定されたクラスの属性及び振る舞いをもつオブジェクト。
3.9
インタフェース (interface) クライアントがオブジェクトに対して要求できる一群の演算の記述。
a) API
b) JVMインタフェース[2.2b)参照]
3.10 JVM (Java Virtual Machine) 2.2a)の参照仕様で定義された抽象機械。MHEG-6交換プログラムオ
ブジェクトのOriginalContent属性に対して,その交換用表現及び実行モデルとして用いる。
3.11 メソッド (method) クラスで定義されている演算。特に,JVMメソッド[2.2a)参照]がある。
3.12 MHEG-5 API MHEG-6交換プログラムオブジェクトのOriginalContentに使う命令バイト語から,
MHEG-5オブジェクトの属性にアクセスしたりその振る舞いを制御したりするためのAPI。
3.13 MHEG-5交換プログラムオブジェクト (MHEG-5 InterchangedProgram object) 命令列をなす解
釈実行語又は機械語として表現された処理単位を駆動する手段を与えるMHEG-5オブジェクト。
3.14 MHEG-5オブジェクト (MHEG-5 object) MHEG-5クラスの実体の命令語表現。
3.15 MHEG-6 この規格に適合していることを示す形容詞。
3.16 MHEG-6アプレットオブジェクト (MHEG-6 Applet object) 8.に規定するアプレットクラスの実
体。
3.17 MHEG-6応用 (MHEG-6 application) MHEG-5交換プログラムオブジェクトのOriginalContent属
性となっているプログラム及びMHEG-5オブジェクトの交換を含んだ応用。単独の応用のこともあれば,
他の応用の一部となっていることもあり,この規格での規定に従った表現をもつ。
3.18 MHEG-6エンジン (MHEG-6 engine) この規格の規定に従って,MHEG-6オブジェクト(JVMプ
ログラムを含む。)を解釈実行するプロセス又はプロセス群。
3.19 MHEG-6交換プログラムオブジェクト (MHEG-6 Interchanged Program object) この規格に適合
するMHEG-5交換プログラムオブジェクト。
3.20 MHEG-6オブジェクト (MHEG-6 object) 7.に規定する意味拡張に適合したMHEG-5オブジェク
ト,又は8.に規定するアプレットクラスのオブジェクト。
3.21 MHEG-6プロファイル (MHEG-6 profile) この規格に対するプロファイル。
3.22 MHEG-6プログラム (MHEG-6 program) MHEG-6交換プログラムオブジェクトの
OriginalContent属性に直接書かれるか,そこから参照されるかしているJVMクラスの一覧。
3.23 マルチメディア (multimedia) 複数の表現媒体を扱う場合の形容詞。
3.24 マルチメディア・ハイパメディア応用 (multimedia and hypermedia application) マルチメディア
情報を表現し,利用者がその上を対話的に行き来できる機能を備えた応用。
3.25 マルチメディア応用 (multimedia application) 利用者にマルチメディア情報の表現を供する応用。
3.26 演算 (operation) オブジェクトが提供し,オブジェクトに対して要求することのできるサービス。
インタフェースの中で,その名前,引数及び返却値の型を指定するシグネチャ,並びにその駆動中に発生
し得る例外の一覧が宣言してある。
3.27 プログラム (program) 計算機での振る舞いを表現した2進命令語列。適切な計算機環境下で走ら
せることによって,その振る舞いが実現する。
3.28 プログラム交換様式 (program content interchange format) MHEG-6交換プログラムオブジェクト
のOriginalContent属性(IncludedContent型である場合)に対する構文及び符号化様式(12.1参照)
5
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
3.29 スクリプト言語 (script language) 応用プログラムが非専門プログラマによっても簡単にかつ迅速
に設計できるようにしたプログラム言語。
3.30 スタック (stack) 後入れ先出し (LIFO, last-in-first-out) で要素を追加(プッシュ)し削除(ポップ)
することができる情報蓄積機構。
3.31 システムクラス (system class) JVMクラスのうち,その実装が(少なくとも部分的に)システム
依存になって(したがって,機械語で作られて)いることから,VMから使えるように実行時環境に備わ
っていなければならないクラス。
3.32 仮想機械,VM (virtual machine) マイクロプロセッサ及びその振る舞いに対する抽象的な仕様。
備考 VMの実装対象となるプロセッサの機種は,様々である。VMは,どの機種に対しても同じ命
令群を実行できるように実装される。VMと同一の命令群をもったマイクロプロセッサを設計
することも可能である。VM命令語は,ソフトウェアを可搬にするためにも使うことができる。
4. 記号及び短縮形 この規格で用いる主な記号及び短縮形を次に示す。
API
Application Programming Interface
ASN.1
Abstract Syntax Notation One
ETSI
European Telecommunications Standards Institute(欧州通信規格機関)
IEC
International Electrotechnical Commission(国際電気標準会議)
ISO
Internationai Organisation for Standardisation(国際標準化機構)
ITU-T
International Telecommunication Union, Telecommunication standardisation sector
(国際電気通信連合,電気通信標準化部門)
JVM
Java Virtual Machine(Java仮想機械)
HTML
HyperText Mark-up Language(ハイパテキストマーク付け言語)
MHEG
Multimedia and Hypermedia information coding Expert Group
(マルチメディア・ハイパメディア情報符号化)
VM
Virtual Machine(仮想機械)
WWW
World Wide Web
5. 適合性の要件 この規格は,次の事項に対する適合性要件を定義する。
− 情報オブジェクト。すなわち,MHEG-6オブジェクト。
− 実装。すなわち,MHEG-6エンジンの実装。
5.1
情報オブジェクトの適合性 適合したMHEG-6オブジェクトは,次のすべての基準を満たさなけれ
ばならない。
− オブジェクトの符号化及び構文は,5.1.1の規定に適合しなければならない。
− オブジェクトの意味は,5.1.2の規定に適合しなければならない。
情報オブジェクトの適合性は,端末において実行されることを目的として交換される情報オブジェクト
に対して調べられる。
5.1.1
符号化及び構文 適合したMHEG-6オブジェクトは,附属書Aに定義した符号化規則及び構文,
又は附属書Bに定義した符号化規則及び構文のいずれかに従って符号化しなければならない。さらに,適
合したMHEG-6交換プログラムオブジェクトの属性は,7.1の構文及び符号化の規定に従わなければなら
ない。
5.1.2
意味 適合したMHEG-6オブジェクトの構成要素は,JIS X 4345及びこの規格の7.〜12.に定義す
る意味規則に合致しなければならない。
5.1.3
プロファイル この規格は,いかなるプロファイルも定義しない。
6
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
5.2
実装の適合性 この規格の実装は,MHEG-6エンジンとする。
この規格は,MHEG-6オブジェクトの意味を定義する。これは,情報オブジェクトではなく,MHEG-6
エンジンの振る舞いに関する適合性の要件にほかならない。
5.2.1
適合性の要件 MHEG-6エンジンの適合性は,JIS X 4345の4.に定義されるように,応用領域の定
義に照らしてはじめて判断できる。
JIS X 4345の4.に列挙された必す(須)のクラスのすべてに加え,いかなるMHEG-6エンジンも,次の
クラスのすべての属性と内部振る舞いとを解釈できなければならない。
− 交換プログラム
− オクテット型変数,整数型変数,論理型変数,コンテント参照型変数及びオブジェクト参照型変数
いかなる適合したMHEG-6エンジンも,応用領域の定義に含まれる任意のMHEG-6適合のオブジ
ェクトの解釈を行えなければならない。特に,MHEG-6適合のエンジンは,次の基準に合致しなけれ
ばならない。
− JIS X 4345に適合する。
− 7.に定義するMHEG-5交換プログラムオブジェクトに関する意味の規定を解釈する。
− アプレットクラスが応用領域の定義に含まれる場合,MHEG-6適合のエンジンは,MHEG-6のアプレ
ットクラスを,8.に定義する属性,事象,内部振る舞い,及び基本操作とともに解釈する。
− 9.に定義するとおりに,JVMコードを実行する。
− JVMコードから10.に定義するカーネルAPIに対する完全なアクセスを可能にする。
− JVMコードから11.及び附属書Cに定義するMHEG-5 APIの全体又はその一部に対してアクセスする
ことが可能である。
− 12.に定義するMHEG-5とJVMとの相互動作を可能にする。
5.2.2
適合性宣言文書 この規格に対する適合性を主張するには,次の情報をもつ適合性記述文書を用意
しなければならない。この適合性宣言文書は,次の基準のすべてを満たさなければならない。
− この規格及びJIS X 4345で要求される必ず機能に,適切な箇条番号及び細別符号を付けて列挙する。
− 適用する規格の正式名称,規格番号及び発効年を示す。
− この規格及びJIS X 4345に定義された任意選択機能のうち,いずれの機能が実装されているかを記す。
この目的で,JIS X 4345の4.に規定されるように,応用領域に依存する機能のすべてを記載する。
− この規格及びJIS X 4345に定義される実装依存機能のすべてに対して,実装の振る舞いを記述する。
この要件を満たすためには,それらの機能を列挙し,更に,システムの文書に対する参照又はそれら
の機能に関する完全な構文と意味とを与えなければならない。適合性宣言文書は,この規格又はJIS X
4345で実装依存としている機能,又はこれらの規格で未定義若しくは未記述と認められる機能に対し
ては,実装の動作を示してもよい。
5.3
応用の適合性 適合したMHEG-6応用(3.17参照)に含まれる任意の交換プログラムオブジェクト
は,適合したMHEG-6交換プログラムオブジェクトでなくてはならない。さらに,適合したMHEG-6応
用のすべてのオブジェクトは,附属書A又は附属書Bのいずれかに定義する表記法に従い,同一の表記法
で符号化しなければならない。
6. この規格の構成 MHEG-6の仕様は,次の事項で構成する。
a) 交換単位としてのMHEG-5オブジェクトに関する事項
1) JIS X 4345の構文及び意味への適合。
7
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2) 交換プログラムオブジェクトヘの構文制限及び意味拡張(7.参照)。
3) アプレットクラス及びInvoke基本操作の新設(8.参照)。
4) 符号化表現(附属書A参照)。JIS X 4345附属書Aの符号化表現の拡張版。
5) 符号化表現(附属書B参照)。JIS X 4345附属書Bの符号化表現の拡張版。オブジェクトは,4)又
は5)のいずれかの表現をとる。
b) 交換様式としてのJVM命令語列に関する事項 これらは,交換プログラムオブジェクトの
OriginalContent属性の交換に用いる。
1) JVMの命令語表現及び意味(9.参照)。
2) カーネルAPI(Java. lang,Java. util及びJava. ioの各パッケージ,10.参照)。常駐して,必要な機能
をJVM命令語列に提供する。
3) MHEG-5 API(iso. mheg5パッケージ,11.及び附属書C参照)。MHEG-5オブジェクトの取扱い機能
及びMHEG-5振る舞いの制御機能をJVM命令語列に提供する。
4) 協調実行に関する要件(12.参照)。MHEG-5オブジェクトからJVMのメソッドの駆動及びJVMク
ラスからのMHEG-5基本操作の駆動の意味を与える。
7. MHEG-6交換プログラムクラス 交換プログラムクラス及びその下位クラスに適用する意味拡張及
び構文制限,並びにこれらのクラスに関する基本操作を規定する。
7.1
交換プログラムオブジェクトの構文 MHEG-6オブジェクトは,7.1で特に規定する場合を除き,JIS
X 4345の規定によるMHEG-5クラスの構文に従わなければならない。7.1では,MHEG-6オブジェクトの
適合要件として,MHEG-5オブジェクトの構文に対する制限(値,任意選択機能又はその組合せ)を規定
する。
7.1.1
交換プログラムクラスの構文 MHEG-6交換プログラムオブジェクトは,1個以上のJVMクラス
をカプセル化するのに使う。カプセル化するJVMクラスは,交換プログラムオブジェクトに直接含めるか,
そこから参照しておくかする。
7.1.1.1
Name属性 MHEG-6交換プログラムオブジェクトのName属性は,空文字 (NUL) で終端した
UTF-8符号での文字列を並べた列として符号化しなければならない。それぞれの文字列は,交換プログラ
ムオブジェクトがカプセル化するJVMクラスの名前を表す。
備考 文字列のUTF-8符号による表現は,9.2で引用するJVMクラスのファイル形式によって定まる。
それは,JIS X 0221 (UCS) 文字の可変長列であり,空文字以外のすべての基本ラテン文字を1
バイトだけで表す。
7.1.1.2
OriginalContent属性 MHEG-6交換プログラムオブジェクトのOriginalContent属性は,次のとお
りに符号化しなければならない。
a) OriginalContent属性がIncludedContent型である場合,そのOctetString値は,12.1に規定するプログラ
ムコンテンツ交換形式で定まる構文に従わなければならない。
b) OriginalContent属性がReferenceContent型である場合,そのContentReference要素は,次のいずれかで
なければならない。
1) 空文字で終端したJIS X 0201の表1の符号化による文字列を並べた列。それぞれの文字列は,JVM
クラスのデータを収めたファイルの名前を表す。この列は,Name属性の列と同じ要素数をもち,
Name属性に並んだクラスの順に対応するファイル名を並べていなければならない。
2) 空の文字列1個。この場合,(Name属性に並べられた)JVMクラスの名前には,処理系依存の対応
8
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
規則に従ってファイルの名前が対応付けられる。
7.1.1.3
ContentHook属性 MHEG-6交換プログラムオブジェクトのContentHook属性は,0に設定する。
この値は,JVM命令語で符号化されたプログラムを意味する。
7.1.1.4
Shared属性 Applicationオブジェクトの一部として交換対象となるMHEG-6交換プログラムオ
ブジェクト(応用全体が有効範囲)のShared属性は,Trueに設定する。
7.1.2
交換プログラムオブジェクトに適用する基本操作の構文 MHEG-6交換プログラムオブジェクト
を対象とするCall基本操作及びFork基本操作は,その引数Parametersの中に,GenericInteger型の第1引
数Class及びGenericOctetString型の第2引数Methodをもっていなければならない。
第1引数Classは,InterchangedProgramオブジェクトのName属性に与えられたJVMクラスの列の要素
番号(1から始める。)を表す。
第2引数Methodは,UTF-8符号による文字列として,第1引数Classが示すクラスがもつ静的メソッド
の名前を表す。
このCall基本操作又はFork基本操作のActivation振る舞いは,Classで指定されたクラスのMethodが示
すメソッドを,その基本操作へのParametersとして与えられた残りの引数を(値渡しで)引数として与え
て駆動することを意味する。
備考 Call基本操作又はFork基本操作へのParametersに,そのプログラムの入力引数又は出力引数の
意味でMHEG-5変数(GenericObjectReference型として)を使うこともできる。出力引数として
使う場合は,プログラムの中で,MHEG-5 API VariableクラスのSetVariable操作を用いて明示的
に値を入れる必要がある。
7.2
交換プログラムオブジェクトの意味 ここでは,MHEG-5の用語を用いて,MHEG-5オブジェクト
の振る舞いの記述に対する意味の拡張について示す。
7.2.1
InitiallyAvailable属性 あるMHEG-6交換プログラムオブジェクトのInitiallyAvailable属性がTrue
である場合,その交換プログラムオブジェクトのPreparation振る舞いは,その交換オブジェクトが附属し
ているMHEG-5のグループ(シーン又はアプリケーション)オブジェクトのPreparation振る舞いによって
引き起こされなければならない。
7.2.2
交換プログラムオプジェクトの有効範囲 要素クラスのサブクラスの1実体として,任意の
MHEG-5交換プログラムオブジェクトは,シーンオブジェクト又はアプリケーションオブジェクトに附属
する。
MHEG-6交換プログラムオブジェクトの有効範囲は,その交換プログラムオブジェクトが附属する
MHEG-5のグループ(シーン又はアプリケーション)オブジェクトとする。MHEG-6交換プログラムオブ
ジェクトのクラスによってメソッドが起動される任意のJVMクラスは,次のいずれかに該当するものでな
くてはならない。
− システムクラス(3.31参照)であり,カーネルAPIのような標準的なパッケージによって提供される
もの。
− アプリケーションクラス(3.2参照)であり,MHEG-6交換プログラムオブジェクト呼出しの適用範
囲内であり,あるMHEG-6交換プログラムオブジェクトによって交換されるもの。
備考 言い換えると,交換プログラム1のクラスが交換プログラム2のクラスを呼び出す場合,
− 交換プログラム1がシーンの一部である場合には,交換プログラム2は同じシーンの一部であるか,
そのシーンを含むアプリケーションの一部でなくてはならない。
− 交換プログラム1がアプリケーションの一部である場合には,交換プログラム2は同じアプリケーシ
9
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ョンの一部でなくてはならない。
適合したMHEG-6アプリケーションオブジェクトは,適用範囲外のアプリケーションクラスのメソ
ッドに対する呼出しを含むJavaクラスの交換プログラムオブジェクトを包含してはならない。
備考 非適合のオブジェクトがエンジンにもたらされた場合,そのエンジンの振る舞いについては規
定しない。
MHEG-6準拠のアプリケーションオブジェクト全体に対し,交換プログラムによって包含又は参照され
るJVMクラスは,すべて相異なるクラス名をもたなければならない。
7.2.3
交換プログラムオブジェクトに適用可能な基本操作の効果
7.2.3.1
Preparation振る舞い 任意のMHEG-6交換プログラムオブジェクトを対象としてPreload基本操
作を実行することで,その交換プログラムオブジェクトの内容を取得する。それがカプセル化しているJava
クラス又はそれが参照しているJavaクラスが,MHEGエンジンによってVMにロードされる。このロー
ディングは非同期に実施される。すなわち,このローディングはActivation振る舞いが始まるまでの任意
の時点に行えばよい。
あるクラスの名前がすでにVMにロードされたクラスと同じ名前である場合,新しいクラスは無視され
なければならない。
7.2.3.2
Activation振る舞い MHEG-6交換プログラムオブジェクトのActivation振る舞いは,そのオブ
ジェクトに対してCall基本操作又はFork基本操作が実行されたときに引き起こされる。Activation振る舞
いの主な効果は,次のとおりに,クラスのメソッドを起動することにある。
− クラスは,Call基本操作又はFork基本操作のParameters引数の中の,最初のParameterで指定する。
その値で,交換プログラムオブジェクトのName属性の中での,そのクラスのインデックスを示す。
− メソッドは,Call基本操作又はFork基本操作のParameters引数の中の,2番目のParameterで指定す
る。その値で,そのメソッドの名前を示す。
− メソッドヘの引数は,(必要であるならば)Call基本操作又はFork基本操作のParameters引数の中の
以後のParameterで指定する。すなわち,3番目のParameterがそのメソッドヘの第1引数となり,以
後,同様に対応する。
次に示すすべての場合,Call基本操作又はFork基本操作の結果の変数(CallSucceeded引数又は
ForkSucceeded引数)をActivation振る舞いの一部としてFalseに設定したうえで,Activation振る舞い
を終了しなければならない。
− Parametersの中のParameterの個数が2個未満である場合
− 最初のParameter又は2番目のParameterの型が,7.1.2の規定に照らして正しくない場合
− 最初のParameterがName属性の中の正当なインデックス(1からリストの長さまでの整数)を示して
いない場合
− 2番目のParameterが示す名前のメソッドが,指定されたJVMクラスにない場合
− 指定されたJVMクラスのメソッドが静的メソッドでない場合
− 指定されたJVMクラスのメソッドがParameters引数と(JVMの型一致規則を用いて)型解決可能な
シグネチャをもっていない場合,すなわち,そのメソッドの引数の型とParametersの中の(3番目以
降の)Parameterの型とを順に型一致させることができない場合
− 交換プログラムオブジェクトがすでに活性化している場合
MHEG-5引数の型は,表1のとおりにJVMの型に対応させる。
例 { : interchgprg 100 : name "Prog"}
10
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
次の基本操作呼出しを考える。
: fork (100 99 "ginteger 1 : goctetstring " start "
"gobjectref 150 : goctetstring : indirectref 2)
これは,次のシグネチャと静的に型解決することができる。
public static void Prog. start (ObjectReference, OctetString)
備考 Call基本操作又はFork基本操作のParameters引数の中のParameterがちょうど2個である場合,
メソッド呼出しのシグネチャは,次のものとなる。
void <method̲name> ( )
ただし,<method̲name>部分を対象メソッドの名前に置き換えて考える。
表1 MHEG-5引数の型とJVMの型との対応
MHEG-5引数の型
JVMの型
Boolean
Boolean
OctetString
OctetString
Integer
Integer
ContentReference
ContentReference
ObjectReference
ObjectReference
備考 JVMの型Boolean及びIntegerは,カーネルAPI(java.langパッケージ)が定義している。JVM
の型OctetString, Content Reference及びObject Referenceは,MHEG-5API(iso.mheg5パッケージ)
が定義している(附属書C参照)。
7.2.3.3
Deactivation振る舞い MHEG-6交換プログラムオブジェクトのDeactivation振る舞いは,次の事
由のいずれかによって引き起こされる。
− 当該オブジェクトを対象としたStop基本操作が実行された場合。
− 当該オブジェクトを活性化したCall基本操作又はFork基本操作によって起動されたメソッドから生
成されたすべてのスレッドが正常終了した場合。
Stop基本操作は,非同期のプログラム,すなわち,Fork基本操作によって起動されたプログラムにだけ
適用されなければならない。その効果として,Fork基本操作から生成されたすべてのVMスレッドを停止
することでプログラムを終了させなければならない。
Fork基本操作によって起動されたメソッドから生成されたすべてのスレッドの正常終了によって,
AsynchStopped事象が発生する。
7.2.3.4
Destruotion振る舞い MHEG-6交換プログラムオブジェクトのDestruction振る舞いは,Unload
基本操作,又は当該交換プログラムオブジェクトが附属するグループオブジェクトのDestructionの一環と
して引き起こされる。
いずれの場合においても,カプセル化されたすべてのVMクラス及びVMオブジェクトは,別の交換プ
ログラムによって使用されない限り,エンジンから利用不可能な状態とならなければならない。
MHEG-5アプリケーションのDestructionの場合には,すべてのVMオブジェクト及びすべてのVMクラ
ス(すなわち,システムクラス以外のすべて)をエンジンから利用不可能な状態とし,エンジンは,これ
らのVMオブジェクト及びVMクラスを,後に解釈されるMHEG-6アプリケーションのクラスとのあらゆ
る不整合を避けるようにしなければならない。
8. アプレットクラス
記述
表示及び対話能力を供給するJVMコードのカプセル化を定義
11
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
基底クラス
交換プログラム,対話及び可視
サブクラス
なし
状態
具象クラス
8.ではJIS X 4345の7.で定義された表記法を用いてアプレットクラスを定義する。
他のMHEG-5クラスと異なり,アプレットクラスは,要素クラスの二つのクラスを継承する。菱形の継
承によって起こる不都合が生じたときは常に,最初にリストされたクラスで定義された継承経路によって
特徴を継承しなけれならない。つまり,特に指定のない限り,すべての要素クラスの特徴(属性,振る舞
い,事象及び基本操作の効果)は,可視クラスではなく,交換プログラムクラスから継承しなければなら
ない。
8.1
属性 アプレットに対して,継承属性,交換属性及び内部属性を定める。
8.1.1
継承属性 アプレットクラスは,その基底クラスのすべての属性をもつ。ただし,次の制約をおく。
属性名
基底クラス
制約
InitiallyActive
Ingredient
JIS X 4345 14.1.1のプログラムクラスの定義に従う。
OriginalContent
Ingredient
7.1.1.2及びJIS X 4345 17.1.1のMHEG-6交換プログラムの定義に従う。
ContentHook
Ingredient
7.1.1.3及びJIS X 4345 17.1.1のMHEG-6交換プログラムの定義に従う。
Shared
Ingredient
7.1.1.4のMHEG-6交換プログラムの定義に従う。
Name
Program
7.1.1.1のMHEG-6交換プログラムの定義に従う。
InitiallyAvailable Program
7.2.1のMHEG-6交換プログラムの定義に従う。
OriginalPaletteRef
Visible
アプレットクラスの中で直接に用いてはならない。
8.1.2
交換属性 アプレットクラスは,(継承した属性を除いて)それ自身の交換属性をもたない。
8.1.3
内部属性 アプレットクラスは,(継承した属性を除いて)それ自身の内部属性をもたない。
8.2
事象 アプレットクラスは,その基底クラスにあるすべての事象をもつ。これらの事象の意味は,
基底クラスでの意味と同じとする。ただし,事象AsynchStoppedについては,次のとおりとする。
AsynchStopped
この事象は,アプレットオブジェクトの基本JVMスレッドが終了した時点に生じ
る。関連データは,もたない。
8.3
内部振る舞い アプレットクラスは,その基底クラスの内部振る舞いのすべてをもつ。ただし,次
の制約をおく。
Preparation
7.2.3.1及びJIS X 4345 8.3で定義したMHEG-6交換プログラムに対するPreparation
振る舞いのとおりとする。ただし,次のとおりに変更を加える。
1. AvailabilityStatusをTrueに設定する直前に,JIS X 4345 31.3で定義した可視ク
ラスに対するPreparation振る舞いの第2ステップを実行する。
Destruction
7.2.3.4及びJIS X 4345 8.3で定義したMHEG-6交換プログラムに対するDestruction
振る舞いのとおりとする。
Activation
次の一連の操作を逐次実行する。
1. JIS X 4345 8.3で定義したルートクラスに対するActivation振る舞いを行う。
2. アプレットオブジェクトに対して基本JVMスレッドを生成する。
3. 対象クラスのコンストラクタを起動し,コンストラクタが生成したVMオブジ
ェクトを,活性化しようとしているMHEGアプレットオブジェクトに結合す
る。ここで,対象クラスとは,アプレットオブジェクトのOriginalContent属性
の中での,そのインデックスがFork基本操作の(Parameters引数の中の)最初
のParameterで指定されたクラスをいう(7.1.2参照)。Fork基本操作に以後の
Parameterがない場合は,引数をもたないコンストラクタを起動する。そうでな
い場合は,2番目以降のParameterの型と一致する引数列をもつコンストラクタ
を起動する。ここでの型一致規則は,7.2.3.2による。
例 { : APPlet 200 : name "APP"}
次の基本操作を考える。
: fork (200 99 : ginteger 1 : goctetstring "go")
12
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
型解決の結果,次のコンストラクタを引数 "go" 付きで起動する。
public void App (OctetString)
4. コンストラクタを正当に起動することができない次の場合には,ForkSucceeded
引数をFalseに設定し,直ちにこの振る舞いを終了する。
− Fork基本操作にParameterがない場合
− Fork基本操作の最初のParameterが,Name属性の中の正当なインデックス(1
からその長さまでの整数)を示していない場合
− 指定されたクラスに適切なシグネチャのコンストラクタがない場合
5. 可視オブジェクトを表示する。表示は,オブジェクトがDisplayStackの中でど
こに位置しているかに対応させ,オブジェクトのPosition属性及びBoxSize属
性が示す位置及び境界長方形に対応させて行う(下に示す備考も参考のこ
と。)。
6. ForkSucceeded引数にTrueを設定する。
7. RunningStatus属性にTrueを設定する。
8. IsRunning事象を発生する。
Deactivation
次の一連の操作を逐次実行する。
1. オブジェクトのRunningStatus属性がFalseである場合は,直ちにこの振る舞い
を終了する。
2. オブジェクトのInteractionStatus属性がTrueである場合,そのInteraction振る
舞いを中止し,InteractionStatus属性にFalseを設定する。
3. オブジェクトの表示を停止する。
4. アプレットオブジェクトに対する基本JVMスレッドを終了させ,そのスレッ
ドから派生していたスレッドもすべて終了させる。MHEG-6オブジェクトから
の,このJVMアプレットオブジェクトに対する参照をすべて除去する。この
JVMアプレットオブジェクトは,それへの参照がVMの中に一つもなくなっ
た後,いずれはゴミとして回収されることになる。
5. RunningStatus属性にFalseを設定する。
6. IsStopped事象を発生する。
Interaction
この振る舞いは,Interactibleクラスに対する定義どおりとする。
オブジェクトのInteractionStatus属性がTrueである場合,利用者からの入力事象す
べては,エンジンがアプレットにそのまま受け渡す。このとき,入力事象がJVM
のプログラム列にどのようにして渡されるかは,利用者インタフェースAPIによ
る。利用者インタフェースAPIは,応用領域ごとにその仕様を定めてよい。
備考 境界長方形の寸法を0としてアプレットクラスを使うことで,実体化できても可視でないプロ
グラムを実現することができる。この方法は,利用者インタフェースAPIがない状況でも使え
る。
8.4
MHEG-5の基本操作の効果 アプレットクラスは,その基底クラスのMHEG-5基本操作をすべてそ
のままもつ。ただし,次の制約をおく。
SetData プログラムクラスに対してと同様に,アプレットオブジェクトを対象としてこの基
本操作を用いてはならない。
SetPaletteRef アプレットオブジェクトを対象としてこの基本操作を用いてはならない。
Run アプレットオブジェクトを対象としてこの基本操作を用いてはならない。
Call アプレットオブジェクトを対象としてこの基本操作を用いてはならない。
Fork Activation振る舞いを適用する。ただし,次の制約をおく。
(ForkSucceded,
Parameters)
− ForkSucceded引数には,BooleanVanableオブジェクトを指定しなければならな
い。
− Parameters引数の最初のParameterは,評価すると正の整数となるものでなけれ
ばならない。
− Parameters引数のそれ以降のParameterには,オブジェクトのstartupクラスの
コンストラクタの引数列に渡す値を並べなければならない。Parametersに並べ
13
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
る順序は,コンストラクタの引数の順序に従っていなければならない。すべて
の引数は,値渡しとする。
Stop Deactivation振る舞いを適用する。
アプレットクラスは,次のMHEG-5基本操作を定義する。
Invoke この基本操作は,オブジェクトに結合したアプレットがもつメソッドの実行を行
う。
(InvokeSucceeded, 次の一連の操作を逐次実行する。
Method,
Parameters)
1. アプレットオブジェクトが活性化していない場合は,この基本操作を終了す
る。
2. アプレットオブジェクトを活性化したActivation振る舞いが生成したJVMオブ
ジェクトの中の,Method引数が示すメソッドを予約する。Parametersが空であ
る場合,予約するメソッドは,次に示すシグネチャをもったメソッドとする。
public void<method̲name>0
ここで,<method̲name>はそのメソッドの名前に置き換えて考える。
Parametersが空でない場合,予約するメソッドは,その引数列の型が,Invoke基本
操作のParameters引数の中のParameter列の型に型一致するメソッドとする。この
型一致規則は,7.2.3.2による。
例 { : APPlet 200 : name "App"}
次の基本操作呼出しは,型解決の結果,次のメソッドを1を引数として呼
び出すことを予約する。
3. 何らかの理由から予約ができない場合には,InvokeSucceeded引数にFalseを設
定し,この振る舞いを終了する。例えば,正しいシグネチャをもったメソッド
が存在しない場合が,これに当たる。
4. 予約したメソッドの呼出しを,そのアプレットの待ち行列に入れる。
それまでのInvoke基本操作によって予約されたメソッド呼出しがすべて実行完了
した時点で,この待ち行列に入れたメソッド呼出しを,Activation振る舞いが生成
したJVMスレッドの中で実行する。
備考 Invoke基本操作からは,4.が終わった時点で,呼出し元へ戻る。すなわ
ち,予約するメソッドを見定め,そのメソッド呼出しを待ち行列に入れ
終わると,Invoke基本操作から戻る。
Invoke基本操作には,次の制約をおく。
− InvokeSucceeded引数には,BooleanVariableオブジェクトを指定しなければなら
ない。
− Method引数は,評価するとオクテット列が得られるものでなければならない。
そのオクテット列は,メソッドの名前を表した,UTF-8符号化による文字列で
なければならない。
− Parameters引数には,予約するメソッドの引数列に対応する値を並べなければ
ならない。
Parametersに並べる順序は,メソッドの引数の順序に従っていなければなら
ない。すべての引数は,値渡しとする。
14
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
構文記述
Invoke
-->
Target,
InvokeSucceeded,
Method,
Parameters?
Target
-->
GenericObjectReference
InvokeSucceeded
-->
ObjectReference
Method
-->
GenericOctetString
Parameters
-->
Parameter+
Parameter
-->
GenericBoolean | GenericInteger |
GenericOctetString | GenericObjectReference
|
GenericContentReference
8.5
形式記述
Applet Class
-->
InterchangedProgram class,
Interactible class,
OriginalBoxSize,
OriginalPosition?
OriginalBoxSize
-->
XLength, Ylength
Xlength
-->
INTEGER
YLength
-->
INTEGER
OriginalPosition
-->
XYPosition
9. 仮想機械 仮想機械は,VMコードを解釈するあらゆる計算実体の抽象的な仕様とする。この仕様は,
MHEG-6プログラムへ意味の定義を与える。
MHEG-6プログラムは, "The JavaTM Virtual machine specification" (2.2参照)の2〜8章に詳しく述べら
れているJVMによって定義された表現及び意味をもたなければならない。
仮想機械コードの構文及び意味の要件を規定するこの参照仕様のこの部分だけが,この規格の基準条項
を構成する。
2〜8章はすべてこれらの要件を含んでいるが,命令集合及びクラスファイル形式を決めている二つの章
は特に重要である。
9.1
VM命令集合 VM命令集合は,VMコードのコード部分を構成する仮想プロセッサの命令集合を定
義する。
すべてのMHEG-6プログラムのメソッドは, "The JavaTM Virtual machine specification" (2.2参照)の6
章 "The Java Virtual Machine Instruction Set" の151〜338ページに記載されているVM命令集合を使用しな
くてはならない。
9.2
VM交換形式 VM交換形式は,クラスに編成されたVMコードの構文及び符号化を定義する。ク
ラスファイルは,データ(定数,変数,属性及び値)だけでなくクラスの構造,及びクラスを構成する符
号(一連の命令)を定義する。
MHEG-6プログラムのすべてのクラスは, "The JavaTM Virtual machine specification" (2.2参照)の4章
"The class File Format" の83〜138ページに記されている交換形式を使用しなくてはならない。
備考 符号化表現したMHEG-6プログラムは,12.1に規定するクラスファイルの集合からなる。
15
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
10. カーネルAPI カーネルAPIは,すべてのMHEG-6応用のJVM命令語を遂行するのに必要な基本機
能からなる。
備考 これらの機能には,次のものが含まれる。
− オブジェクト及びクラスの概念
− 基本データ型を含んだクラス
− 文字データの取扱い
− VMスレッドの管理
− クラスのロード
− 数学的な演算
− 例外及び誤りの取扱い
− 補助的なデータ構造
− ストリームの入出力
10.1 カーネルAPIの仕様 カーネルAPIは,次に示すjava. langパッケージ,java. utilパッケージ及びjava.
ioパッケージとする。
− java. langパッケージは,The Java Application Programming Interface, Volume 1 : Core Package(2.2参照)
の "Java Language Package" の章(1〜185ページ)に定義されたパッケージとする。
− java. ioパッケージは,The Java Application Programming Interface, Volume 1 : Core Package(2.2参照)の
"Java I/O Package" の章(187〜326ページ)に定義されたパッケージとする。
− java. utilパッケージは,The Java Application Programming Interface, Volume 1 : Core Package(2.2参照)
の "Java Utilities Package" の章(327〜371ページ)に定義されたパッケージとする。
上で引用した仕様のうち,それぞれのパッケージの構文及び意味に対する要件を与えている部分だけを,
この規格での要件とする。
10.2 構文に対する要件 MHEG-6プログラムは,カーネルAPIの機能を呼び出すに際して,カーネルAPI
に含まれたバイト命令語を使わなければならない。
MHEG-6エンジンは,カーネルAPIの定義どおりのシグネチャをもったすべてのクラス,インタフェー
ス及び例外へのインタフェースをもっていなければならない。
10.3 意味に対する要件 カーネルAPIのすべてのクラス,インタフェース及び例外は,MHEG-6エンジ
ンにとって,10.1で引用したカーネルAPIの仕様どおりの振る舞いをするように具現しなければならない。
カーネルAPIは,MHEG-6エンジンの動作開始直後からその動作中である限り,MHEG-6エンジンから使
えなければならない。
備考 この要件を満たす自明な方法は,JVMカーネルAPIを常駐させておくことである。しかし,そ
うしなければならないわけではない。
10.4 運用に対する要件 運用は,その応用分野での要求による。場合によっては,幾つかの機能がいら
ないこともある。プロファイル又は応用分野によって,幾つかの振る舞いに制限を置くこともあるし,幾
つかの振る舞いを選択事項とすることもある。さらに,そうした場合にそれらの振る舞いの望ましい具現
方法を与えることもある。
11. MHEG-5 API MHEG-5 APIは,JVM命令語からMHEG-5オブジェクトの動的属性の値を読み出した
り,MHEG-5オブジェクトに対する基本動作を駆動したりするための一群のインタフェース機能からなる。
16
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
11.1 MHEG-5 APIの仕様 MHEG-5 APIは,附属書Cに規定するiso. mheg5パッケージの公開インタフ
ェースからなる。このインタフェースは,iso. mheg5パッケージのクラス及びインタフェースが提供する
メソッドのシグネチャで定まる。VM交換形式(9.2参照)は,これらのクラス宣言をパッケージとして具
現する際の一意的な符号化方式を与える。VM命令群(9.1参照)は,そうしたパッケージが提供するイン
タフェースの駆動をVM命令語に一意的に符号化する手段を与える。
11.1.1 設計方針 MHEG-5 APIの設計は,次に示す方針による。
− MHEG-5のクラスは,それぞれ,1個のJavaのクラスに対応付ける。
− MHEG-5の基本操作は,それぞれ,その操作の対象となるMHEG-5のクラスに対応付けたJavaのク
ラスでの1個のJavaのメソッドに対応付ける。
− MHEG-5の動的属性の値の読み出しは,それぞれ,その属性をもつMHEG-5のクラスに対応付けたJava
のクラスが提供する1個のJavaの "get" メソッドに対応付ける。
− マルチメディア・ハイパメディア機能(表示,会話及び同期)を直接駆動する基本操作だけを,MHEG-5
APIとして提供する。
− 演算の駆動を実行できないときは,MhegException例外を発生させる。この例外は,Exception例外の
拡張とする。
備考1. 基本操作のMHEG-5 AP1演算への対応付けは,附属書Dに示す。
2. MHEG-5 API演算は,基本操作に対応するものの,基本演算を実際に引き起こすことはなく,
MHEG-5の内部データを直接に取り扱う(12.2.5参照)。
11.1.2 版 MHEG-5 APIに,次に示す二つの版を設ける。
− 完全版 すべてのMHEG-5クラスの機能に対して直接の取扱いができるだけのクラスを用意する。
− 簡略版 次に示すクラスだけを用意する。
0bjectReference, ContentReference, MhegException, OctetString, Root, Group, Application, Scene,
Ingredient,
Variable,
BooleanVariable,
IntegerVariable,
OctetStringVariable,
ObjectRefVariable,
ContentRefVariable
備考1. Variableクラス,Groupクラス及びその上位クラス・下位クラス,並びにこれらのクラスが引
用する補助的なクラスだけが必すである(簡略版に相当する)。これら以外のクラスを用意す
る場合は,すべてのクラスをパッケージに含めなければならない(完全版となる)。
2. 簡略版であっても,MHEG-6プログラムからは完全版と同じ機能を扱うことができるが,不
便になる。実際,簡略版を使うプログラムでは,基本操作に対応する機能を直接呼び出すこ
とができず,代わりに,その基本操作への引数に当たる値をVariable. setVariableを使って
MHEG-5変数に設定しておいたうえで,Scene. sendEventを使って,設定したMHEG-5変数
への参照を添え,その基本操作を本体とするMHEG-5リンクを引き起こさなければならない
ことがある。
11.2 構文に対する要件 MHEG-5 API演算の駆動を表すVM命令語列に,適合要件を設ける。MHEG-6
プログラムは,マルチメディア機能を駆動するに当たって,MHEG-5 APIのシグネチャ(附属書C参照)
に合致するメソッドシグネチャのオペランドをもったJVM命令(invokevirtual, invokenonvirtual, invokestatic
及びinvokeinterface)を使わなければならない。
備考 この規定から,MHEG-5オブジェクトの取扱いについて,iso. mheg5パッケージを使ってJava
で書いた場合に作られるバイト命令語と同じバイト命令語に翻訳される限りは,どんなプログ
ラム言語を使い,MHEG-5オブジェクトの機能に対するどんなAPIを使っても応用プログラム
17
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
が作れることになる。この原則は,カーネルAPIにも当てはまる。
MHEG-6エンジンは,MHEG-5 APIのシグネチャに従って,すべてのクラス,インタフェース及び例外
に対するインタフェースをもっていなければならない。
11.3 意味に対する要件 MHEG-5 APIは,完全版又は簡略版の形で,MHEG-6エンジンの動作開始直後
からその動作中である限り,MHEG-6エンジンから使えなければならない。MHEG-5 APIのすべてのクラ
ス,インタフェース及び例外は,MHEG-6エンジンにとって,11.1で引用したカーネルAPIの仕様どおり
の振る舞いをするように具現しなければならない。
11.4 運用に対する要件 運用は,その応用分野での要求による。応用分野によっては,JIS X 4345の規
定に従って,幾つかの振る舞いに制限を置くこともあるし,幾つかの振る舞いを選択事項とすることもあ
る。例えば,MHEG-6の応用分野によっては,完全版を用意するか簡略版を用意するかを指定することも
ある。しかしながら,これによって用意するiso. mheg5パッケージの構文が影響を受けることはない。い
ずれの場合にしても,選択した版のすべてのクラス及びメソッドを用意しなければならない。もちろん,
選択可能な機能又は準備しないとされた機能に対応付けられたクラス及びメソッドの振る舞いは保証され
ない。応用分野での指定外の機能及びエンジンの具現で準備しない機能をMHEG-6プログラムが呼び出し
たときは,いつでも,OPTION̲NOT̲SUPPORTED例外が返されなければならない。
11.5 協調 MHEG-5クラス(Rootクラス及びその下位クラス)に対応するJVMクラスのすべてのコンス
トラクタは,保護対象となる。したがって,MHEG-5オブジェクトヘのJavaの参照は,Rootクラスの静的
なgetObjectメソッドを使って行わなければならない。この参照を使って演算を駆動したとき,その参照が
もはやMHEG-5オブジェクトを指していなければ,例外を発生しなければならない。
MHEG-5オブジェクトに対応するJVMの“代理”オブジェクトは,そのMHEG-5オブジェクトの
Preparation振る舞いが駆動された時点又はそのMHEG-5オブジェクトに対するgetObject演算が初めて呼
び出された時点で生成するのがよい。MHEG-5オブジェクトのDestraction振る舞いが駆動された時点では,
APIを実現している命令列にその事実を知らせ,代理オブジェクトがJVM命令列から使えなくすることが
できるようにするのがよい。
備考1. このとき,代理オブジェクトを取り除く必要はない。これは,Javaのオブジェクトのモデル
から導ける。
2. MHEG-5APIは,MHEG-6エンジンの設計に何らの想定をおかない。例えば,JVMとMHEG-5
エンジンとが,互いにMHEG-5 APIを介して通信し合う形の独立したプロセスであってもよ
いし,MHEG-5 APIに対する“代理”オブジェクトが,MHEG-5エンジン内のMHEG-5オブ
ジェクトを表した実際の具現上のオブジェクトであってもよい。MHEG-5 APIは,プログラ
ムの命令列が移植可能であることを保証するための手段にすぎない。
3. groupidentifierが書いてない参照は,一意的でないが,getObjectを呼び出す時点で参照対象が
決められる。
12. MHEG-5とJVMとの協調
12.1 プログラムコンテンツの交換形式 MHEG-6交換プログラムオブジェクトにあっては,その
IncludedContent型のOriginalContent属性は,12.1の規定に従わなければならない。ここでの形式化は,9.2
でのJVMクラスのファイルに対するものと同じとする。
IncludedProgramContentData {
u4 [class̲count] offsets;
18
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ClassFile [class̲count] classes;
}
offsets [i] の値は,i番目のクラス (classes [i]) のデータの最初のバイトの,OngmalContentオクテット列
の先頭からの相対位置とする。
class̲countは,MHEG-6 InterchangedProgramオブジェクトのName属性の値である文字列の列の長さに
等しい値とする。この値は,MHEG-6 InterchangedProgramオブジェクトがカプセル化しているJVMクラス
の個数を示す。
classes [i] は,JVMクラスのデータを9.2で規定するクラスのファイル形式に従って符合化したものとす
る。
offsets及びclassesは,MHEG-6 InterchangedProgramオブジェクトのName属性に並んだクラスの順に従
っていなければならない。
12.2 基本操作の意味
12.2.1 Call基本操作 call基本操作は,ライブラリ機能の呼出しの意味をもつ。call基本操作の効果は,
指定されたクラスの指定されたメソッドを実行すること,及びこのメソッドが完了し,このメソッドが作
り出すすべてのJVMスレッドが完了するまで,MHEG-5エンジンの演算を停止することにある。
call基本操作によって駆動されたMHEG-6 InterchangedProgramオブジェクトは,次に示すMHEG-5演算
だけしか使ってはならない。
− MHEG-5内部の属性の値を直接読み出す演算(これらの演算の大部分は, "get" で始まる名前をもつ。)
− Variableクラスの下位クラスが提供するsetVariableメソッド
備考 call基本操作で駆動されたMHEG-6 InterchangedProgramオブジェクトから使うことのできる
MHEG-5 APIのメソッドは,その一覧を附属書Dに示す。
call基本操作によって活性化したInterchangedProgramオブジェクトがMHEG-5の基本操作を起動するこ
とは,プログラムの誤りとする。
備考1. これを徹底するために,MHEG-5 APIの具現は,VM命令語列がMHEG-5の基本操作を要求
してきたとき,そのVM命令語列のVMスレッドが非同期プログラム(Fork基本操作によっ
て駆動されたプログラム)であることを確認するようにし,そうでなければすべてを終了す
る例外を発生させるのがよい。
2. 許容された演算("get" 演算及びsetVariable)の具現は,したがって(12.2.5のとおりに),
MHEG-5の基本操作を駆動するのではなく,直接データにアクセスする仕組みとするのがよ
い。
3. MHEG-5エンジンは,Call基本操作が使われたとき,その呼出しが終了するまでどんな基本
操作も処理しないでおくのがよい。
12.2.2 Fork基本操作 Fork基本操作は,新しいスレッドを作ってプログラムを走らせる意味をもつ。Fork
基本操作の効果は,ForkSucceeded変数引数に結果を入れてMHEG-5エンジンに通知し,MHEG-5エンジ
ンが停止していた演算を再開できるようにすることにある。作り出されたスレッドは,MHEG-5エンジン
が処理を再開しても,走り続ける。Fork基本操作によって駆動されたMHEG-6 InterchangedProgramオブジ
ェクト又はAppletオブジェクトは,MHEG-5 APIのどの演算を駆動してもよい。
備考 Fork基本操作とCall基本操作との違いを徹底するのに,MHEG-5 APIの具現では,Fork基本操
作によって作られたJavaのスレッド及びそこから作られたスレッドを,Call基本操作に呼応す
るJava命令語列の実行で使うスレッドのグループとは別のグループに入れるとよい。
19
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
InterchangedProgramオブジェクト又はAppletオブジェクトは,他の親をもつスレッドのグループを作り
出してはならない。
備考 これは,プログラムの誤りとなり,SecurityManagerによる例外が発生する。
12.2.3 Invoke基本操作 Invoke基本操作は,アプレットのメソッドを駆動する意味をもつ。Invoke基本
操作の効果は,そのメソッドの呼出しを待ち行列に入れ,InvokeSucceeded変数引数に結果を入れて
MHEG-5エンジンに通知し,MHEG-5エンジンが停止していた演算を再開できるようにすることにある。
待ち行列に入れられたメソッド呼出しは,同じ待ち行列に入っていた他のメソッド呼出しの処理がすべて
終わり次第,Appletクラスの主スレッドの中で実行される。
12.2.4 Stop基本操作 Stop基本操作の効果は,その時点で実行中のメソッドを終了し,そのプログラム
から駆動されたすべてのVMスレッドを停止することにある。
備考1. Stop基本操作は,Fork基本操作によって駆動されたプログラムにだけ適用する。
2. 応用プログラムの設計者は,システムが“クラッシュ”して制御不能になることを避けるた
め,そのプログラムでJavaのすべての例外を処理し,プログラムをきれいに終了させたうえ
で,元のCall基本操作又はFork基本操作に戻るようにするのがよい。
12.2.5 MHEG-5 API演算 すべてのMHEG-5 API演算は,逐次実行の意味をもつ。VM命令語列から
MHEG-5 API演算を呼び出すと,その命令語列の実行が行われていたVMスレッドは,呼び出したMHEG-5
API演算が終わるまで,実行を停止する。基本操作に対応するMHEG-5 API演算からは,そのMHEG-5基
本演算の起動が終わり,それから生じるMHEG-5の逐次処理(起動されたリンクの基本操作の実行)がす
べて終わり次第,元へ戻る。属性値の取扱いに使うMHEG-5 API演算からは,その属性の値の読み書きが
終わり次第,元へ戻る。
12.3 実行 JVM側から見たときの,MHEG-6交換プログラムオブジェクトに適用できる操作の効果を規
定する。この目的で,ClassMapperという概念を導入して,7.2.3に規定した機構を説明し,そのうえで,
具現についての推奨事項を規定する。
備考 この説明は,エンジンの振る舞いについての基準として使うことを意図したもので,このとお
りにMHEG-6を具現しなくてよい。
ClassMapperは,仮想的な実体であって,MHEG-6交換プログラムオブジェクトとJVMクラスとの間の
関連が,(MHEG-5エンジンの制御下にある)MHEG-6オブジェクト及び(VMに知られるようになった)
JVMアプリケーションクラスの両方の生涯を通じて,動的に維持される方法を示すために使用する。
12.3.1 エンジンの立上げ MHEG-6エンジンは,MHEG-6応用のPrepare振る舞いを駆動する前に“ロー
ド”しておく。これは,次の示すことがらが応用の解釈実行中いつでも成り立っていることを意味する。
− MHEG-5エンジンは,活性化したLinkを処理することができる。
− ClassMapperは,どんな要求も受け付けられる。
− JVMは,VM命令語列を実行することができる。
12.3.2 ClassMapperの始動 Applicationオブジェクトを駆動すると,新しい応用プログラムが動き始めた
ことがそのGroupIdentifierをもつClassMapperに通知される。
備考 この目的に合わせて,ClassMapperには次に示すとおりの関数があるものとする。
public void setApplication (MHEGId application̲id)
グループオブジェクトが準備されるとすぐに,このグループに附属したすべてのMHEG-6交換プログラ
ムの説明的な情報が,ClassMapperに提供される。各MHEG-6交換プログラムオブジェクトに対して,こ
の説明的な情報は,(Name属性によって提供される)クラスの名前及び(IncludedContent属性に対するク
20
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ラスデータオフセット及び/又はReferencedContent属性に対するクラスファイル名を通じての)内容デー
タヘの参照を含む。クラスの各々に対して,ClassMapperは,説明的な情報を利用し,エントリを内部ク
ラス対応表に追加する。ここで,内部クラス対応表とは,カプセル化したMHEG-6交換プログラムオブジ
ェクトにクラス名を対応付けし,クラスデータに参照を対応付けるものとする。
この通知を使用して,ClassMapperは,解決を要求されたときにはいつでも,これらクラスをロード可
能と知る。
備考 java. lang. packageのClassLoaderクラスは,抽象クラスである。(java. lang. ClassLoaderから継
承する)MHEG-6 ClassLoaderは,MHEG-6文脈に従って実装する必要がある。(含まれる内容
データに対する)プログラム交換形式の構文解析及び(参照される内容データに対する)クラ
スファイルのアクセスは,実行時環境で利用可能な(Java. io. DataInputなどの)データ入力機
構を通じて,ClassLoaderクラスのloadClassメソッドによって実行される(このデータ入力機
構は,この規格では規定しない)。
例 応用プログラムが,(その応用プログラムを通して使用される)クラスAddをもつMHEG-6交換
プログラムオブジェクトを含むと仮定する。その名前及び位置は,ClassMapperに通知されるが,
そのクラスはVMにロードされない。さらに,シーン1が,(そのシーン内でだけ使用する)ク
ラスFactをもつ交換プログラムを含むと仮定する。このとき,そのInitiallyAvailable属性はTrue
に設定されているとする。そこで,クラスFactをVMにロードしなければならない。クラスFact
のメソッドがクラスAddのメソッドを呼び出すので,クラスFactのロードは,クラスAddの参
照が解決されるまで実行できない。そこで,ClassMapperによって保持されている対応付けを使用
し,MHEG-5エンジンの演算を妨げることなく,クラスAddのコードをロードする。
備考 この目的のために,ClassMapperは,次の関数を提供できる。
public void notify (MHEGId object̲id, String [ ] class. names,
ByteStreamReference [ ] class̲data)
ClassMapperが保持する対応付けの構造は,次のとおりとすることができる。
ClassEntry [ ] class̲map;
ClassEntry {
CONSTANT̲Utf8̲info name;
MHEGId program̲id;
ByteStreamReference location;
}
ここで,ByteStreamReferenceは,実装依存の型をもち,参照される及び/又は含まれる内容
を保持するために使用する大規模データ領域へのハンドルを表現する。
12.3.3 プログラムの準備 MHEG-6交換プログラムオブジェクトの準備の際に,そのOriginalContentデー
タが検索され,ClassMapperに提供される。そのとき,ClassMapperは,クラスファイル形式を構文解析し,
そのクラスをVMにロードする。
備考 この目的のために,ClassMapperは,次の関数を提供できる。
public Error load (String class̲name)
12.3.4 プログラムの活性化 交換プログラム上のCall基本操作又はFork基本操作を引き起こす際に,
MHEG-5エンジンは,その最初の引数(クラスインデックス)を処理し,Name属性を使用して対象とな
るクラスの名前を検索する。さらに,ClassMapperは,次のことを行う。
21
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
− 起動されたクラスが,2番目の引数 (method) で与えられる名前のメソッドをもつことを検査する。
− 他のMHEG-5引数をJVMオブジェクト引数に転送する。
− メソッドが起動できない場合(7.2.3参照)は,Falseを返す(これは,MHEG-5エンジンが,CallSucceeded
引数又はForkSucceeded引数を設定するために使用する。)。
− 実際には,転送された引数でJVMクラスの要求されたメソッドを呼び出す。
− Callの場合には,要求されたメソッドの終了において終了コードを返す(これは,MHEG-5エンジン
が,CallSucceeded引数を設定するために使用する。)。
− Forkの場合には,新しく生成されたThreadGroupの識別子を,後で参照するために一時的に記憶する
MHEG-5エンジンに返す(12.3.5参照)。要求されたメソッドの終了において,ForkSucceeded引数を
設定するために使用する終了コードをもつ通知を,MHEG-5エンジンに送る。
備考 この目的のために,ClassMapperは,次の関数を提供できる。
public boolean call (String class̲name, String method̲name, Param [ ] args)
public int fork (String class̲name, String method̲name, Param [ ] args)
12.3.5 プログラムの非活性化 交換プログラム上のStop基本操作を引き起こす際に,MHEG-5エンジン
は,一時的に記憶したスレッドグループ識別子を使用してプログラムの終了を要求する。Stop基本操作の
効果は,初期スレッドを含む,プログラムが生成したすべてのスレッドを終了することとする。
備考 この目的のために,ClassMapperは,次の関数を提供できる。
public void stop (int ThreadGroupId)
12.3.6 プログラムの破壊 MHEG-6交換プログラムオブジェクトの破壊に際して,この交換プログラムに
よって運ばれた名前がName属性によって定義されたクラスは,VM内で削除という印が付けられる。
備考1. この目的のために,ClassMapperは,次の関数を提供できる。
public void unload (String class̲name)
これは,ClassMap内のエントリをも削除する。MHEG-5アプリケーションオブジェクトの
破壊に際してClassMapperはその初期状態に復帰する。
2. JVMクラス及びオブジェクトは,そのカプセル化した交換プログラムを破壊したときに削除
と印を付けられているが,これらのオブジェクトが実際に削除されるときを知る方法は存在
しない。これはJVM実装のガーベジコレクションの方針に依存するためである。
3. JVMオブジェクトがクラス変数によって参照される場合,そのオブジェクト(及びそのオブ
ジェクトが参照する任意のオブジェクト)は,クラスがアンロードされるまで維持される。
4. シーン適用範囲をもつクラスのオブジェクトがアプリケーション適用範囲をもつクラスのオ
ブジェクトによって参照される場合,このクラスのコードは,シーンの破壊の後,VMメソ
ッド領域内に維持される必要があるかもしれない。しかし,こうしたプログラミングはしな
いほうがよい。より一般的に,破壊された交換プログラムが,まだ利用可能な他の交換プロ
グラムによって使用される場合,このクラスのコードは,もはや参照されなくなるまでVM
メソッド領域に維持されている必要があるかもしれない。
12.3.7 アプレットに対するClassMapper ClassMapperは,MHEG-6アプレットオブジェクトに対して同
様の振る舞いをするものとする。それに加えて,ClassMapperは,次のことを行う。
− アプレットのMHEG参照を,対応するJava実体及びスレッドオブジェクトに対応付ける。対象とな
るクラスのコンストラクタにおける活性化振る舞い呼出しの後,これら両方は,MHEGアプレットオ
ブジェクトの寿命を通じて記憶されなければならない。
22
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
− Invoke基本操作を,待ち行列に加えるメソッド呼出しに変換する。
23
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書A(規定) ASN.1表記法
附属書Aでは,MHEG-6オブジェクトの構文のためのASN.1表記法について規定する。
ASN.1表記法の使用は,サービスの配布及び配置を行うために推奨される。実際,ASN.1表記法は,一
般的にテキスト表記法よりも1/3〜1/4の大きさのバイナリ形式を生成すると考えられる。
ASN.1表記法を用いて符号化されるMHEG-6オブジェクトは,すべて次のASN.1構文を使用して記述
されなければならない。また,ISO/IEC 8825-1 : 1995 | ITU-T勧告X.690で定義される識別符号化規則
(DER) に従って符号化されなければならない。
次の構文は,JIS X 4345の附属書Aで定義されるものと互換性がある。したがって,JIS X 4345の附属
書Aに従って符号化されたMHEG-5オブジェクトは,すべてMHEG-6オブジェクトでもある。すなわち,
この附属書の構文に適合している。
--Copyright statement:
--© International Organisation for Standardisation 1998
--Permission to copy in any form is granted for use with conforming MHEG-6 engines
and applications
--provided this notice is included in all copies
--$PREFIX=ISOMHEG-mheg-6 : mheg-6
-- Module : mheg-6
ISO13522-MHEG-6 {joint-iso-itu-t (2) mheg (19) version (1) mheg-6 (18)}
DEFINITIONS IMPLICIT TAGS : : = BEGIN
-- This module defines the MHG-6 abstract syntax which consists of data values of
type:
-- ISO13522-MHEG-6. InterchangedObject.
-- This abstract syntax is identified by the name:
-- {joint-iso-itu-t (2) mheg (19) version (1) mheg-6 (18)}.
InterchangedObject : : = CHOICE {
application [0] ApplicationClass,
scene [1] SceneClass
}
-- <A.1> Root Class
RootClass : : = ObjectReference
-- <A.2> Group Class
24
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
GroupClass : : = SET {
RootClass (WITH COMPONENTS
{external-reference (WITH COMPONENTS {..., object-number (0)}) PRESENT}),
standard-identifier [2] StandardIdentifier OPTIONAL,
standard-version [3] INTEGER (1) OPTIONAL,
object-information [4] OCTET STRING OPTIONAL,
on-start-up [5] ActionClass OPTIONAL,
on-close-down [6] ActionClass OPTIONAL,
original-group-cache-priority [7] INTEGER (0..255) DEFAULT 127,
items [8] SEQUENCE SIZE (1..MAX) OF GroupItem OPTIONAL
}
StandardIdentifier : : = SEQUENCE {
joint-iso-itu INTEGER (2),
mheg INTEGER (19)
}
GroupItem : : = CHOICE {
resident-program [9] ResidentProgramClass,
remote-program [10] RemoteProgramClass,
interchanged-program [11] InterchangedProgramClass,
palette [12] PaletteClass,
font [13] FontClass,
cursor-shape [14] CursorShapeClass,
boolean-variable [15] BooleanVariableClass,
integer-variable [16] IntegerVariableClass,
octet-string-variable [17] OctetStringVariableClass,
object-ref-variable [18] ObjectRefVariableClass,
content-ref-variable [19] ContentRefVariableClass,
link [20] LinkClass,
stream [21] StreamClass,
bitmap [22] BitmapClass,
line-art [23] LineArtClass,
dynamic-line-art [24] DynamicLineArtClass,
rectangle [25] RectangleClass,
hotspot [26] HotspotClass,
switch-button [27] SwitchButtonClass,
push-button [28] PushButtonClass,
text [29] TextClass,
25
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
entry-field [30] EntryFieldClass,
hyper-text [31] HyperTextClass,
slider [32] SliderClass,
token-group [33] TokenGroupClass,
list-group [34] ListGroupClass
applet [237] AppletClass
}
-- <A.3> Application Class
ApplicationClass : : = SET
COMPONENTS OF GroupClass,
on-spawn-close-down [35] ActionClass OPTIONAL,
on-restart [36] ActionClass OPTIONAL,
default-attributes [37] SEQUENCE SIZE (1..MAX) OF DefaultAttribute OPTIONAL
}
DefaultAttribute : : = CHOICE {
character-set [38] INTEGER,
background-colour [39] Colour,
text-content-hook [40] INTEGER,
text-colour [41] Colour,
font [42] FontBody,
font-attributes [43] OCTET STRING,
interchanged-program-content-hook [44] INTEGER,
stream-content-hook [45] INTEGER,
bitmap-content-hook [46] INTEGER,
line-art-content-hook [47] INTEGER,
button-ref-colour [48] Colour,
highlight-ref-colour [49] Colour,
slider-ref-colour [50] Colour.
}
FontBody : : = CHOICE {
direct-font OCTET STRING,
indirect-font ObjectReference }
-- <A.4> Scene Class
SceneClass : : = SET {
COMPONENTS OF GroupClass,
26
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
input-event-register [51] INTEGER,
scene-coordinate-system [52] SceneCoordinateSystem,
aspect-ratio [53] AspectRatio DEFAULT {width 4, height 3},
moving-cursor [54] BOOLEAN DEFAULT FALSE,
next-scenes [55] SEQUENCE SIZE (1..MAX) OF NextScene OPTIONAL
}
SceneCoordinateSystem : : = SEQUENCE {
x-scene INTEGER,
y-scene INTEGER
}
AspectRatio : : = SEQUENCE {
width INTEGER,
height INTEGER
}
NextScene : : = SEQUENCE {
scene-ref OCTET STRING,
scene-weight INTEGER (0..255)
}
-- <A.5> Ingredient Class
IngredientClass : : = SET {
RootClass (WITH COMPONENTS
{..., external-reference (WITH COMPONENTS (..., object-number (1..MAX)})}),
initially-active [56] BOOLEAN DEFAULT TRUE,
content-hook [57] INTEGER OPTIONAL,
original-content [58] ContentBody OPTIONAL,
shared [59] BOOLEAN DEFAULT FALSE
}
ContentBody : : = CHOICE {
included-content OCTET STRING,
referenced-content ReferencedContent
}
ReferencedContent : : = SEQUENCE {
content-reference ContentReference,
27
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
content-size [60] INTEGER OPTIONAL,
content-cache-priority [61] INTEGER (0..255) DEFAULT 127
}
-- <A.6> Link Class
LinkClass : : = SET {
COMPONENTS OF IngredientClass (WITH COMPONENTS
(..., content-hook ABSENT, original-content ABSENT}),
link-condition [62] LinkCondition,
link-effect [63] ActionClass
}
LinkCondition : : = SEQUENCE {
event-source ObjectReference,
event-type EventType,
event-data EventData OPTIONAL
}
EventType : : = ENUMERATED {
is-available (1),
content-available (2),
is-deleted (3)
is-running (4),
is-stopped (5),
user-input (6),
anchor-fired (7),
timer-fired (8),
asynch-stopped (9),
interaction-completed (10),
token-moved-from (11),
token-moved-to (12),
stream-event (13),
stream-playing (14),
stream-stopped (15),
counter-trigger (16),
highlight-on (17),
highlight-off (18),
cursor-enter (19),
cursor-leave (20),
28
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
is-selected (21),
is-deselected (22),
test-event (23),
first-item-presented (24),
last-item-presented (25),
head-items (26),
tail-items (27),
item-selected (28),
item-deselected (29),
entry-field-full (30),
engine-event (31),
}
EventData : : = CHOICE {
octetstring OCTET STRING,
boolean BOOLEAN,
integer INTEGER
}
-- <A.7> Program Class
ProgramClass : : = SET {
COMPONENTS OF IngredientClass (WITH COMPONENTS {..., initially-active (FALSE)
PRESENT}),
name [64] OCTET STRING,
initially-available [65] BOOLEAN DEFAULT TRUE
}
-- <A.8> ResidentProgram Class
ResidentProgramClass : : = ProgramClass
(WITH COMPONENTS (..., content-hook ABSENT, original-content ABSENT})
-- <A.9> RemoteProgram Class
RemoteProgramClass : : = SET {
COMPONENTS OF ProgramClass (WITH COMPONENTS {..., content-hook ABSENT,
original-content ABSENT}),
program-connection-tag [66] INTEGER OPTIONAL
}
29
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
-- <A.10> InterchangedProgram Class
InterchangedProgramClass : : = ProgramClass (WITH COMPONENTS
{..., original-content PRESENT, content-hook (0)})
-- <A.11> Palette Class
PaletteClass : : = IngredientClass (WITH COMPONENTS
(..., content-hook PRESENT, original-content PRESENT, initially-active (TRUE)})
-- <A.12> Font Class
FontClass : : = IngredientClass (WITH COMPONENTS
(..., content-hook PRESENT, original-content PRESENT, initially-active (TRUE)})
-- <A.13> CursorShape Class
CursorShapeClass : : = IngredientClass (WITH COMPONENTS
{..., content-hook PRESENT, original-content PRESENT, initially-active (TRUE)})
-- <A.14> Variable Class
VariableClass : : = SET {
COMPONENTS OF IngredientClass (WITH COMPONENTS
(..., content-hook ABSENT, original-content ABSENT, initially-active (TRUE)}),
original-value [67] OriginalValue
}
OriginalValue : : = CHOICE {
boolean BOOLEAN,
integer INTEGER,
octetstring OCTET STRING,
object-reference [68] ObjectReference,
content-reference [69] ContentReference
}
--<A.15> BooleanVariable Class
BooleanVariableClass : : = VariableClass (WITH COMPONENTS
{..., original-value (WITH COMPONENTS {boolean PRESENT})})
30
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
-- <A.16> IntegerVariable Class
IntegerVariableClass : : = VariableClass (WITH COMPONENTS
{..., original-value (WITH COMPONENTS {integer PRESENT})})
-- <A.17> OctetStringVariable Class
OctetStringVariableClass : : = VariableClass (WITH COMPONENTS
{..., original-value (WITH COMPONENTS {octetstring PRESENT})})
-- <A.18> ObjectReferenceVariable Class
ObjectRefVariableClass : : = VariableClass (WITH COMPONENTS
{..., original-value (WITH COMPONENTS {object-reference PRESENT})})
-- <A.19> ContentReferenceVariable Class
ContentRefVariableClass : : = VariableClass (WITH COMPONENTS
{..., original-value (WITH COMPONENTS {content-reference PRESENT})})
-- <A.20> Presentable Class
PresentableClass : : = IngredientClass
-- <A.21> TokenManager Class
TokenManagerClass : : = SET {
movement-table [70] SEQUENCE SIZE (1..MAX) OF Movement OPTIONAL
}
Movement : : = SEQUENCE SIZE (1..MAX) OF INTEGER
-- <A.22> TokenGroup Class
TokenGroupClass : : = SET {
COMPONENTS OF PresentableClass (WITH COMPONENTS
{..., content-hook ABSENT, original-content ABSENT}),
COMPONENTS OF TokenManagerClass,
token-group-items [71] SEQUENCE SIZE (1..MAX) OF TokenGroupItem,
31
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
no-token-action-slots [72] SEQUENCE SIZE (1..MAX) OF ActionSlot OPTIONAL
}
TokenGroupItem : : = SEQUENCE {
a-visible ObjectReference,
action-slots SEQUENCE SIZE (1..MAX) OF ActionSlot OPTIONAL
}
ActionSlot : : = CHOICE {
action-class ActionClass,
null NULL
}
-- <A.23> ListGroup Class
ListGroupClass : : = SET {
COMPONENTS OF TokenGroupClass,
positions [73] SEQUENCE SIZE (1..MAX) OF XYPosition,
wrap-around [74] BOOLEAN DEFAULT FALSE,
multiple-selection [75] BOOLEAN DEFAULT FALSE
}
-- <A.24> Visible Class
VisibleClass : : = SET {
COMPONENTS OF PresentableClass,
original-box-size [76] OriginalBoxSize,
original-position [77] XYPosition DEFAULT {x-position 0, y-position 0},
original-palette-ref [78] ObjectReference OPTIONAL
}
OriginalBoxSize : : = SEQUENCE {
x-length INTEGER (0..MAX),
y-length INTEGER (0..MAX)
}
-- <A.25> Bitmap Class
BitmapClass : : = SET {
COMPONENTS OF VisibleClass (WITH COMPONENTS {..., original-content PRESENT}),
32
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
tiling [79] BOOLEAN DEFAULT FALSE,
original-transparency [80] INTEGER (0..100) DEFAULT 0
}
-- <A.26> LineArt Class
LineArtClass : : = SET {
COMPONENTS OF VisibleClass (WITH COMPONENTS {..., original-content PRESENT}),
bordered-bounding-box [81] BOOLEAN DEFAULT TRUE,
original-line-width [82] INTEGER DEFAULT 1,
original-line-style [83] INTEGER {solid (1), dashed (2), dotted (3)} DEFAULT
solid,
original-ref-line-colour [84] Colour OPTIONAL,
original-ref-fill-colour [85] Colour OPTIONAL
}
-- <A.27> Rectangle Class
RectangleClass : : = LineArtClass (WITH COMPONENTS
{..., content-hook ABSENT, original-content ABSENT, bordered-bounding-box
ABSENT})
-- <A.28> DynamicLineArt Class
DynamicLineArtClass : : = LineArtClass (WITH COMPONENTS
{..., content-hook ABSENT, original-content ABSENT})
-- <A.29> Text Class
TextClass : : = SET {
COMPONENTS OF VisibleClass (WITH COMPONENTS {..., original-content PRESENT}),
original-font [86] FontBody OPTIONAL,
font-attributes [43] OCTET STRING OPTIONAL,
text-colour [41] Colour OPTIONAL,
background-colour [39] Colour OPTIONAL,
character-set [38] INTEGER OPTIONAL,
horizontal-justification [87] Justification DEFAULT start,
vertical-justification [88] Justification DEFAULT start,
line-orientation [89] LineOrientation DEFAULT horizontal,
start-corner [90] StartCorner DEFAULT upper-left,
33
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
text-wrapping [91] BOOLEAN DEFAULT FALSE
}
Justification : : = ENUMERATED {start (1), end (2), centre (3), justified (4)}
LineOrientation : : = ENUMERATED {vertical (1), horizontal (2)}
StartCorner : : = ENUMERATED {upper-left (1), upper-right (2), lower-left (3),
lower-right (4)}
-- <A.30> Stream Class
StreamClass : : = SET {
COMPONENTS OF PresentableClass (WITH COMPONENTS {..., original-content PRESENT}),
multiplex [92] SEQUENCE SIZE (1..MAX) OF StreamComponent,
storage [93] Storage DEFAULT stream,
looping [94] INTEGER {infinity (0)} DEFAULT 1
}
StreamComponent : : = CHOICE {
audio [95] AudioClass,
video [96] VideoClass,
rtgraphics [97] RTGraphicsClass
}
Storage : : = ENUMERATED {memory (1), stream (2)}
-- <A.31> Audio Class
AudioClass : : = SET {
COMPONENTS OF PresentableClass (WITH COMPONENTS
{...,content-hook ABSENT, original-content ABSENT, shared ABSENT}),
component-tag [98] INTEGER,
original-volume [99] INTEGER DEFAULT 0
}
-- <A.32> Video Class
VideoClass : : = SET {
COMPONENTS OF VisibleClass (WITH COMPONENTS
34
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
{..., content-hook ABSENT, original-content ABSENT, shared
ABSENT,original-palette-ref ABSENT}),
component-tag [98] INTEGER,
termination [100] Termination DEFAULT disappear
}
Termination : : = ENUMERATED {freeze (1), disappear (2)}
-- <A.33> RTGraphics Class
RTGraphicsClass : : = SET {
COMPONENTS OF VisibleClass (WITH COMPONENTS
{..., content-hook ABSENT, original-content ABSENT, shared ABSENT}),
component-tag [98] INTEGER,
termination [100] Termination DEFAULT disappear
}
-- <A.34> Interactible Class
InteractibleClass : : = SET {
engine-resp [101] BOOLEAN DEFAULT TRUE,
highlight-ref-colour [49] Colour OPTIONAL
}
-- <A.35> Slider Class
SliderClass : : = SET {
COMPONENTS OF VisibleClass (WITH COMPONENTS {..., content-hook ABSENT,
original-content ABSENT}),
COMPONENTS OF InteractibleClass,
orientation [102] Orientation,
max-value [103] INTEGER,
min-value [104] INTEGER DEFAULT 1,
initial-value [105] INTEGER OPTIONAL,
initial-portion [106] INTEGER OPTIONAL,
step-size [107] INTEGER DEFAULT 1,
slider-style [108] SliderStyle DEFAULT normal,
slider-ref-colour [50] Colour OPTIONAL
}
35
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
Orientation : : = ENUMERATED {left (1), right (2), up (3), down (4)}
SliderStyle : : = ENUMERATED {normal (1), thermometer (2), proportional (3)}
-- <A.36> EntryField Class
EntryFieldClass : : = SET {
COMPONENTS OF TextClass,
COMPONENTS OF InteractibleClass,
input-type [109] InputType DEFAULT any,
char-list [110] OCTET STRING OPTIONAL,
obscured-input [111] BOOLEAN DEFAULT FALSE,
max-length [112] INTEGER DEFAULT 0
}
InputType : : = ENUMERATED {alpha (1), numeric (2), any (3), listed (4)}
-- <A.37> HyperText Class
HyperTextClass : : = SET {
COMPONENTS OF TextClass,
COMPONENTS OF InteractibleClass
}
-- <A.38> Button Class
ButtonClass : : = SET {
COMPONENTS OF VisibleClass (WITH COMPONENTS {..., content-hook ABSENT,
original-content ABSENT}),
COMPONENTS OF InteractibleClass,
button-ref-colour [48] Colour OPTIONAL
}
--<A.39> Hotspot Class
HotspotClass : : = ButtonClass
-- <A.40> PushButton Class
PushButtonClass : : = SET {
36
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
COMPONENTS OF ButtonClass,
original-label [113] OCTET STRING OPTIONAL,
character-set [38] INTEGER OPTIONAL
}
-- <A.41> SwitchButton Class
SwitchButtonClass : : = SET {
COMPONENTS OF PushButtonClass,
button-style [114] ButtonStyle
}
ButtonStyle : : = ENUMERATED {pushbutton (1), radiobutton (2), checkbox (3)}
-- <A.42> Applet Class
AppletClass : : = SET {
COMPONENTS OF InterchangedProgramClass,
COMPONENTS OF InteractibleClass,
original-box-size [76] OriginalBoxSize,
original-position [77] XYPosition DEFAULT {x-position 0, y-position 0}
}
-- <A.43> Action Class
ActionClass : : = SEQUENCE SIZE (1..MAX) OF ElementaryAction
ElmentaryAction : : = CHOICE {
activate [115] GenericObjectReference,
add [116] Add,
add-item [117] AddItem,
append [118] Append,
bring-to-front [119] GenericObjectReference,
call [120] Call,
call-action-slot [121] CallActionSlot,
clear [122] GenericObjectReference,
clone [123] Clone,
close-connection [124] CloseConnection,
deactivate [125] GenericObjectReference,
del-item [126] DelItem,
37
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
deselect [127] GenericObjectReference,
deselect-item [128] DeselectItem,
divide [129] Divide,
draw-arc [130] DrawArc,
draw-line [131] DrawLine,
draw-oval [132] DrawOval,
draw-polygon [133] DrawPolygon,
draw-polyline [134] DrawPolyline,
draw-rectangle [135] DrawRectangle,
draw-sector [136] DrawSector,
fork [137] Fork,
get-availability-status [138] GetAvailabilityStatus,
get-box-size [139] GetBoxSize,
get-cell-item [140] GetCellItem,
get-cursor-position [141] GetCursorPosition,
get-engine-support [142] GetEngineSupport,
get-entry-point [143] GetEntryPoint,
get-fill-colour [144] GetFillColour,
get-first-item [145] GetFirstItem,
get-highlight-status [146] GetHighlightStatus,
get-interaction-status [147] GetInteractionStatus,
get-item-status [148] GetItemStatus,
get-label [149] GetLabel,
get-last-anchor-fired [150] GetLastAnchorFired,
get-line-colour [151] GetLineColour,
get-line-style [152] GetLineStyle,
get-line-width [153] GetLineWidth,
get-list-item [154] GetListItem,
get-list-size [155] GetListSize,
get-overwrite-mode [156] GetOverwriteMode,
get-portion [157] GetPortion,
get-position [158] GetPosition,
get-running-status [159] GetRunningStatus,
get-selection-status [160] GetSelectionStatus,
get-slider-value [161] GetSlidervalue,
get-text-content [162] GetTextContent,
get-text-data [163] GetTextData,
get-token-position [164] GetTokenPosition,
get-volume [165] GetVolume,
invoke [238] Invoke,
38
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
launch [166] GenericObjectReference,
lock-screen [167] GenericObjectReference,
modulo [168] Modulo,
move [169] Move,
move-to [170] MoveTo,
multiply [171] Multiply,
open-connection [172] OpenConnection,
preload [173] GenericObjectReference,
put-before [174] PutBefore,
put-behind [175] PutBehind,
quit [176] GenericObjectReference,
read-persistent [177] ReadPersistent,
run [178] GenericObjectReference,
scale-bitmap [179] ScaleBitmap,
scale-video [180] ScaleVideo,
scroll-items [181] ScrollItems,
select [182] GenericObjectReference,
select-item [183] SelectItem,
send-event [184] SendEvent,
send-to-back [185] GenericObjectReference,
set-box-size [186] SetBoxSize,
set-cache-priority [187] SetCachePriority,
set-counter-end-position [188] SetCounterEndPosition,
set-counter-position [189] SetCounterPosition,
set-counter-trigger [190] SetCounterTrigger,
set-cursor-position [191] SetCursorPosition,
set-cursor-shape [192] SetCursorShape,
set-data [193] SetData,
set-entry-point [194] SetEntryPoint,
set-fill-colour [195] SetFillColour,
set-first-item [196] SetFirstItem,
set-font-ref [197] SetFontRef,
set-highlight-status [198] SetHighlightStatus,
set-interaction-status [199] SetinteractionStatus,
set-label [200] SetLabel,
set-line-colour [201] SetLineColour,
set-line-style [202] SetLineStyle,
set-line-width [203] SetLineWidth,
set-overwrite-mode [204] SetOverwriteMode,
set-palette-ref [205] SetPaletteRef,
39
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
set-portion [206] SetPortion,
set-position [207] SetPosition,
set-slider-value [208] SetSlidervalue,
set-speed [209] SetSpeed,
set-timer [210] SetTimer,
set-transparency [211] SetTransparency,
set-variable [212] SetVariable,
set-volume [213] SetVolume,
spawn [214] GenericObjectReference,
step [215] Step,
stop [216] GenericObjectReference,
store-persistent [217] StorePersistent,
subtract [218] Subtract,
test-variable [219] TestVariable,
toggle [220] GenericObjectReference,
toggle-item [221] ToggleItem,
transition-to [222] TransitionTo,
unload [223] GenericObjectReference,
unlock-screen [224] GenericObjectReference
}
Add : : = SEQUENCE {
target GenericObjectReference,
value GenericInteger
}
AddItem : : = SEQUENCE {
target GenericObjectReference,
item-index GenericInteger,
visible-reference GenericObjectReference
}
Append : : = SEQUENCE {
target GenericObjectReference,
append-value GenericOctetString
}
Call : : = SEQUENCE {
target GenericObjectReference,
call-succeeded ObjectReference,
40
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
parameters SEQUENCE SIZE (1..MAX) OF Parameter OPTIONAL
}
CallActionSlot : : = SEQUENCE {
target GenericObjectReference,
index GenericInteger
}
Clone : : = SEQUENCE {
target GenericObjectReference,
clone-ref-var ObjectReference
}
CloseConnection : : = SEQUENCE {
target GenericObjectReference,
connection-tag GenericInteger
}
DelItem : : = SEQUENCE {
target GenericObjectReference,
visible-reference GenericObjectReference
}
DeselectItem : : = SEQUENCE {
target GenericObjectReference,
item-index GenericInteger
}
Divide : : = SEQUENCE {
target GenericObjectReference,
value GenericInteger
}
DrawArc : : = SEQUENCE {
target GenericObjectReference,
x GenericInteger,
y GenericInteger,
ellipse-width GenericInteger,
ellipse-height GenericInteger,
start-angle GenericInteger,
41
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
arc-angle GenericInteger
}
DrawLine : : = SEQUENCE {
target GenericObjectReference,
x1 GenericInteger,
y1 GenericInteger,
x2 GenericInteger,
y2 GenericInteger
}
DrawOval : : = SEQUENCE {
target GenericObjectReference,
x GenericInteger,
y GenericInteger,
ellipse-width GenericInteger,
ellipse-height GenericInteger
}
DrawPolygon : : = SEQUENCE {
target GenericObjectReference,
pointlist SEQUENCE SIZE (1..MAX) OF Point
}
DrawPolyline : : = SEQUENCE {
target GenericObjectReference,
pointlist SEQUENCE SIZE (1..MAX) OF Point
}
DrawRectangle : : = SEQUENCE {
target GenericObjectReference,
x1 GenericInteger,
y1 GenericInteger,
x2 GenericInteger,
y2 GenericInteger
}
DrawSector : : = SEQUENCE {
target GenericObjectReference,
x GenericInteger,
42
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
y GenericInteger,
ellipse-width GenericInteger,
ellipse-height GenericInteger,
start-angle GenericInteger,
arc-angle GenericInteger
}
Fork : : = SEQUENCE {
target GenericObjectReference,
fork-succeeded ObjectReference,
parameters SEQUENCE SIZE (1..MAX) OF Parameter OPTIONAL
}
GetAvailabilityStatus : : = SEQUENCE {
target GenericObjectReference,
availability-status-Var ObjectReference
}
GetBoxSize : : = SEQUENCE {
target GenericObjectReference,
x-box-size-var ObjectReference,
y-box-size-var ObjectReference
}
GetCellItem : : = SEQUENCE {
target GenericObjectReference,
cell-index GenericInteger,
item-ref-var ObjectReference
}
GetCursorPosition : : = SEQUENCE {
target GenericObjectReference,
x-out ObjectReference,
y-out ObjectReference
}
GetEngineSupport : : = SEQUENCE {
target GenericObjectReference,
feature GenericOctetString,
answer ObjectReference
}
43
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
GetEntryPoint : : = SEQUENCE {
target GenericObjectReference,
entry-point-var ObjectReference
}
GetFillColour : : = SEQUENCE {
target GenericObjectReference,
fill-colour-var ObjectReference
}
GetFirstItem : : = SEQUENCE {
target GenericObjectReference,
first-item-var ObjectReference
}
GetHighlightStatus : : = SEQUENCE {
target GenericObjectReference,
highlight-status-var ObjectReference
}
GetInteractionStatus : : = SEQUENCE {
target GenericObjectReference,
interaction-status-var ObjectReference
}
GetItemStatus : : = SEQUENCE {
target GenericObjectReference,
item-index GenericInteger,
item-status-var ObjectReference
}
GetLabel : : = SEQUENCE {
target GenericObjectReference,
label-var ObjectReference
}
GetLastAnchorFired : : = SEQUENCE {
target GenericObjectReference,
last-anchor-fired-var ObjectReference
44
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
}
GetLineColour : : = SEQUENCE {
target GenericObjectReference,
line-colour-var ObjectReference
}
GetLineStyle : : = SEQUENCE {
target GenericObjectReference,
line-style-var ObjectReference
}
GetLineWidth : : = SEQUENCE {
target GenericObjectReference,
line-width-var ObjectReference
}
GetListItem : : = SEQUENCE {
target GenericObjectReference,
item-index GenericInteger,
item-ref-var ObjectReference
}
GetListSize : : = SEQUENCE {
target GenericObjectReference,
size-var ObjectReference
}
GetOverwriteMode : : = SEQUENCE {
target GenericObjectReference,
overwrite-mode-var ObjectReference
}
GetPortion : : = SEQUENCE {
target GenericObjectReference,
portion-var ObjectReference
}
GetPosition : : = SEQUENCE {
target GenericObjectReference,
45
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
x-position-var ObjectReference,
y-position-var ObjectReference
}
GetRunningStatus : : = SEQUENCE {
target GenericObjectReference,
running-status-var ObjectReference
}
GetSelectionStatus : : = SEQUENCE {
target GenericObjectReference,
selection-status-var ObjectReference
}
GetSlidervalue : : = SEQUENCE {
target GenericObjectReference,
slider-value-var ObjectReference
}
GetTextContent : : = SEQUENCE {
target GenericObjectReference,
text-content-var ObjectReference
}
GetTextData : : = SEQUENCE {
target GenericObjectReference,
text-data-var ObjectReference
}
GetTokenPosition : : = SEQUENCE {
target GenericObjectReference,
token-position-var ObjectReference
}
GetVolume : : = SEQUENCE {
target GenericObjectReference,
volume-var ObjectReference
}
Invoke : : = SEQUENCE {
46
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
target GenericObjectReference,
invoke-succeeded ObjectReference,
method GenericOctetString,
parameters SEQUENCE SIZE (1..MAX) OF Parameter OPTIONAL
}
Modulo : : = SEQUENCE {
target GenericObjectReference,
value GenericInteger
}
Move : : = SEQUENCE {
target GenericObjectReference,
movement-identifier GenericInteger
}
MoveTo : : = SEQUENCE {
target GenericObjectReference,
index GenericInteger
}
Multiply : : = SEQUENCE {
target GenericObjectReference,
value GenericInteger
}
OpenConnection : : = SEQUENCE {
target GenericObjectReference,
open-succeeded ObjectReference,
protocol GenericOctetString,
address GenericOctetString,
connection-tag GenericInteger
}
PutBefore : : = SEQUENCE {
target GenericObjectReference,
reference-visible GenericObjectReference
}
PutBehind : : = SEQUENCE {
47
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
target GenericObjectReference,
reference-visible GenericObjectReference
}
ReadPersistent : : = SEQUENCE {
target GenericObjectReference,
read-succeeded ObjectReference,
out-variables SEQUENCE SIZE (1..MAX) OF ObjectReference,
in-file-name GenericOctetString
}
ScaleBitmap : : = SEQUENCE {
target GenericObjectReference,
x-scale GenericInteger,
y-scale GenericInteger
}
ScaleVideo : : = SEQUENCE {
target GenericObjectReference,
x-scale GenericInteger,
y-scale GenericInteger
}
ScrollItems : : = SEQUENCE {
target GenericObjectReference,
items-to-scroll GenericInteger
}
SelectItem : : = SEQUENCE {
target GenericObjectReference,
item-index GenericInteger
}
SendEvent : : = SEQUENCE {
target GenericObjectReference,
emulated-event-source GenericObjectReference,
emulated-event-type EventType,
emulated-event-data EmulatedEventData OPTIONAL
}
48
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
SetBoxSize : : = SEQUENCE {
target GenericObjectReference,
x-new-box-size GenericInteger,
y-new-box-size GenericInteger
}
SetCachePriority : : = SEQUENCE {
target GenericObjectReference,
new-cache-priority GenericInteger
}
SetCounterEndPosition : : = SEQUENCE {
target GenericObjectReference,
new-counter-end-position GenericInteger
}
SetCounterPosition : : = SEQUENCE {
target GenericObjectReference,
new-counter-position GenericInteger
}
SetCounterTrigger : : = SEQUENCE {
target GenericObjectReference,
trigger-identifier GenericInteger,
new-counter-value GenericInteger OPTIONAL
}
SetCursorPosition : : = SEQUENCE {
target GenericObjectReference,
x-cursor GenericInteger,
y-cursor GenericInteger
}
SetCursorShape : : = SEQUENCE {
target GenericObjectReference,
new-cursor-shape GenericObjectReference OPTIONAL
}
SetData : : = SEQUENCE {
target GenericObjectReference,
49
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
new-content NewContent
}
SetEntryPoint : : = SEQUENCE {
target GenericObjectReference,
new-entry-point GenericInteger
}
SetFillColour : : = SEQUENCE {
target GenericObjectReference,
new-fill-colour NewColour OPTIONAL
}
SetFirstItem : : = SEQUENCE {
target GenericObjectReference,
new-first-item GenericInteger
}
SetFontRef : : = SEQUENCE {
target GenericObjectReference,
new-font NewFont
}
SetHighlightStatus : : = SEQUENCE {
target GenericObjectReference,
new-highlight-status GenericBoolean
}
SetInteractionStatus : : = SEQUENCE {
target GenericObjectReference,
new-interaction-status GenericBoolean
}
SetLabel : : = SEQUENCE {
target GenericObjectReference,
new-label GenericOctetString
}
SetLineColour : : = SEQUENCE {
target GenericObjectReference,
new-line-colour NewColour
50
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
}
SetLineStyle : : = SEQUENCE {
target GenericObjectReference,
new-line-style GenericInteger
}
SetLineWidth : : = SEQUENCE {
target GenericObjectReference,
new-line-width GenericInteger
}
SetOverwriteMode : : = SEQUENCE {
target GenericObjectReference,
new-overwrite-mode GenericBoolean
}
SetPaletteRef : : = SEQUENCE {
target GenericObjectReference,
new-palette-ref GenericObjectReference
}
SetPortion : : = SEQUENCE {
target GenericObjectReference,
new-portion GenericInteger
}
SetPosition : : = SEQUENCE {
target GenericObjectReference,
new-x-position GenericInteger,
new-y-position GenericInteger
}
SetSliderValue : : = SEQUENCE {
target GenericObjectReference,
new-slider-value GenericInteger
}
SetSpeed : : = SEQUENCE {
target GenericObjectReference,
51
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
new-speed Rational
}
SetTimer : : = SEQUENCE {
target GenericObjectReference,
timer-id GenericInteger,
new-timer NewTimer OPTIONAL
}
NewTimer : : = SEQUENCE {
timer-value GenericInteger,
absolute-time GenericBoolean OPTIONAL
}
SetTransparency : : = SEQUENCE {
target GenericObjectReference,
new-transparency GenericInteger
}
SetVariable : : = SEQUENCE {
target GenericObjectReference,
new-variable-value NewVariableValue
}
SetVolume : : = SEQUENCE {
target GenericObjectReference,
new-volume GenericInteger
}
Step : : = SEQUENCE {
target GenericObjectReference,
nb-of-steps GenericInteger
}
StorePersistent : : = SEQUENCE {
target GenericObjectReference,
store-succeeded ObjectReference,
in-variables SEQUENCE SIZE (1..MAX) OF ObjectReference,
out-file-name GenericOctetString
}
52
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
Subtract : : = SEQUENCE {
target GenericObjectReference,
value GenericInteger
}
TestVariable : : = SEQUENCE {
target GenericObjectReference,
operator GenericInteger,
comparison-value ComparisonValue
}
ToggleItem : : = SEQUENCE {
target GenericObjectReference,
item-index GenericInteger
}
TransitionTo : : = SEQUENCE {
target GenericObjectReference,
connection-tag-or-null ConnectionTagOrNull,
transition-effect GenericInteger OPTIONAL
}
ConnectionTagOrNull : : = CHOICE {
connection-tag GenericInteger,
null NULL
}
ComparisonValue : : = CHOICE {
new-generic-boolean [225] GenericBoolean,
new-generic-integer [226] GenericInteger,
new-generic-octetstring [227] GenericOctetString,
new-generic-object-reference [228] GenericObjectReference,
new-generic-content-reference [229] GenericContentReference
}
EmulatedEventData : : = CHOICE {
new-generic-boolean [225] GenericBoolean,
new-generic-integer [226] GenericInteger,
new-generic-octet-string [227] GenericOctetString
}
53
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
NewColour : : = CHOICE {
new-colour-index [230] GenericInteger,
new-absolute-colour [231] GenericOctetString
}
NewContent : : = CHOICE {
new-included-content GenericOctetString,
new-referenced-content NewReferencedContent
}
NewFont : : = CHOICE {
new-font-name [232] GenericOctetString,
new-font-reference [233] GenericObjectReference
}
NewReferencedContent : : = SEQUENCE
generic-content-reference GenericContentReference,
new-content-size [234] NewContentSize,
new-content-cache-priority [235] GenericInteger OPTIONAL
}
NewContentSize : : = CHOICE {
content-size GenericInteger,
null NULL
}
NewVariableValue : : = CHOICE {
new-generic-boolean [225] GenericBoolean,
new-generic-integer [226] GenericInteger,
new-generic-octetstring [227] GenericOctetString,
new-generic-object-reference [228] GenericObjectReference,
new-generic-content-reference [229] GenericContentReference
}
Parameter : : = CHOICE {
new-generic-boolean [225] GenericBoolean,
new-generic-integer [226] GenericInteger,
new-generic-octetstring [227] GenericOctetString,
new-generic-object-reference [228] GenericObjectReference,
54
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
new-generic-content-reference [229] GenericContentReference
}
Point : : = SEQUENCE {
x GenericInteger,
y GenericInteger
}
Rational : : = SEQUENCE {
numerator GenericInteger,
denominator GenericInteger OPTIONAL
}
-- <A.44> Miscellaneous data types
ObjectReference : : = CHOICE {
external-reference ExternalReference,
internal-reference INTEGER (1..MAX)
}
ExternalReference : : = SEQUENCE {
group-identifier OCTET STRING,
object-number INTEGER (0..MAX)
}
IndirectReference : : = [236] ObjectReference
ContentReference : : = OCTET STRING
GenericObjectReference : : = CHOICE {
direct-reference ObjectReference,
indirect-reference IndirectReference
}
GenericContentReference : : = CHOICE {
content-reference [69] ContentReference,
indirect-reference IndirectReference
}
GenericInteger : : = CHOICE {
integer INTEGER,
55
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
indirect-reference IndirectReference
}
GenericBoolean : : = CHOICE {
boolean BOOLEAN,
indirect-reference IndirectReference
}
GenericOctetString : : = CHOICE {
octetstring OCTET STRING,
indirect-reference IndirectReference
}
Colour : : = CHOICE {
colour-index INTEGER,
absolute-colour OCTET STRING
}
XYPosition : : = SEQUENCE {
x-position INTEGER,
y-position INTEGER
}
END
56
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書B(規定) テキスト表記法
附属書Bでは,MHEG-6オブジェクトの構文のためのテキスト表記法について規定する。これは,附属
書Aで定義するASN.1表記法の代替表記法である。
テキスト表記法は,特にオブジェクトの作成及び試験を目的として導入された。オブジェクトを表記す
る能力に関しては,テキスト表記法はASN.1表記法と等価であるので,一方の表記法から他方の表記法を
導くことは容易である。
次の構文は,JIS X 4345の附属書Bで定義されるものと互換性がある。したがって,JIS X 4345の附属
書Bに従って符号化されたMHEG-5オブジェクトは,すべてこの附属書の構文に適合するMHEG-6オブ
ジェクトでもある。
B.1 一般的な定義
B.1.1 文字符号 テキスト表記法は,JIS X 0201の符号化文字集合の0x20 (SP) から0x7e (〜) までの範囲
にある符号化文字を用い,JIS X 0201の附属書1に示された0x09 (HT),0x0a (LF),0x0c (FF) 及び0x0d (CR)
の制御機能を用いなければならない。それ以外の文字を使用してはならない。
備考1. テキスト表記法は,使用できる文字符号を制限しているという事実にもかかわらず,8ビット
データを,QPRINTABLE(B.3.4参照),BASE64(B.3.5参照)及びContentReferenceによって
外部参照される内容によって符号化することができる。
2. 応用領域は,文法に違反しない限り,使用できる文字符号を拡張してもよい。例えば,0x80
から0xfeまでの文字をSTRING又は注釈として使用してもよい。
B.1.2 区切り子 0x09 (HT),0x0a (LF),0x0c (FF),0x0d (CR) 及び0x20 (SP) は,区切り子と呼ばれる。
テキスト表記法によって記述される文法は,単語に基づく。単語は,括弧[“(“又は”)”],波括弧[“{“又
は”}”],タグ(B.1.4参照)又は終端記号(B.3参照)のいずれかである。任意の二つの隣り合う単語の
間に,任意の数の区切り子が挿入されても,単語の解釈は変わらない。しかし,少なくとも一つの区切り
子が任意の二つの終端記号の間及びタグと終端記号との間に存在しなければならない。そうでないと,そ
れらは単一の終端記号又は単一のタグと解釈されてしまうからである。
B.1.3 注釈 STRING,QPRINTABLE及びBASE64(それぞれ,B.3.3,B.3.4及びB.3.5参照)の内部にな
い// (0x2f0x2f) を注釈の開始を示すために使用する。そのような//(//自身も含む。)から次の0x0a (LF),
0x0c (FF) 又は0x0d (CR) までの,すべての文字を無視しなければならない。
備考 0x09 (HT) 及び0x20 (SP) は,注釈の終了を示すものではない。
B.1.4 タグ (0x3a) で始まるトークンを“タグ”と呼ぶ。タグは,MHEG-5オブジェクトの始まりで使用
されるときは,{(0x7b) で始まる。一般的に,タグは,MHEG-5オブジェクトとそれらに付随する属性値
とを識別するために使用される。タグには,大文字と小文字との区別はない。例えば, ": Root",": root",
": ROOT",": rOOt" などは,すべて同じとみなす。しかし,テキスト表記法では,読みやすさを向上させ,
理解しやすくするために,タグ内で大文字と小文字との組合せを使用する。
B.2 記号の定義 表B.1は,テキスト表記法で使用される記号とその意味とを示している。
57
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
表B.1 テキスト表記における記号の定義
記号
定義
: : =
定義する。
|
代替
<”>
二重引用符 (Ox22)
“text”
二重引用符で囲まれるリテラル
<text>
この位置に記述できる文字符号を説明する文章
*
前にある文法上の単位を0回以上繰り返してもよい。
+
前にある文法上の単位を1回以上繰り返してもよい。
[]
囲まれた文法上の単位は,省略可能である。それを,0回又は1回だけ表記しても
よい。
.
節の終わり
B.3 終端記号 テキスト表記法で使用されるすべての終端記号を,次のように定義する。
B.3.1 INTEGER 10進数又は正の16進数の整数値。
定義:
INTEGER
: : = DECINT | HEXINT | "0".
DECINT
: : = [ "-" ] DIGIT [DIGITO] *.
DIGIT
: : = "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9".
DIGIT0
: : = DIGIT | "0".
HEXINT
: : = HEXPREFIX HEXDIGIT0 [HEXDIGIT0] *.
HEXPREFIX
: : = "0x" | "0X".
HEXDIGIT0
: : = DIGIT "0" | "a" | "b" | "c" | "d" | "e" | "f" | "A" | "B" | "C" | "D" | "E" |
"F".
B.3.2 B00LEAN 真理値は,真 (True) 又は偽 (False) のいずれかとする。B00LEAN終端記号には,大文
字と小文字との区別はない。つまり, "True","TRUE" 及び "true" は等価とし, "False","FALSE" 及び
"false" は,等価とする。
定義:BOOLEAN : : = "true" | "false".
B.3.3 STRING 二重引用符で囲まれる文字列は,任意の数の表示可能な文字(0x20から0x7eまで)を含
んでもよい。STRING内の二重引用符 (0x22) は,¥” (0x5c 0x22) として符号化しなければならない。
STRING内の円記号* (0x5c) は,¥¥ (0x5c 0x5c) として符号化しなければならない。STRING内に改行を含
んではいけない。すなわち,複数行のテキストは,QPRINTABLE又はBASE64を使用して符号化しなけれ
ばならない。
注*
JIS X 0201での円記号は,ISO/IEC 646国際基準版の逆スラッシュに対応している。
定義:STRING : : = <"> STRINGCHAR* <">.
STRINGCHAR : : = <<"> と "¥" とを除く任意の表示可能な文字> | "¥" " | " ¥¥".
B.3.4 QPRINTABLE 一重引用符で囲まれた文字列は,RFC-1521で定義されているQuoted−Printableで
符号化されたデータを含まなければならない。しかしながら,' (0x27) を=27として符号化しなければなら
ない。a,b,c,d,e,fなどの小文字を,RFC-1521の5.1rule#1で定義されている一般的な8ビット表現
として使用してもよい。1行に含まれる文字数は,制限しない。改行は,CR LFに変換する必要はないが,
LF (0x0a),FF (0x0c) 又はCR (0x0d) の中の少なくとも一つを,改行を表すために使用しなければならない。
定義:QPRINTABLE : : = " ' " QPRINTABLECHAR* " ' ".
QPRINTABLECHAR : : = <上のように定義される文字> |
58
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<上のように定義される文字符号化列>.
B.3.5 BASE64 逆引用符で囲まれた文字列は,RFC-1521で定義されているBASE64で符号化されたデー
タを含まなければならない。しかし,この規格では,1行に含まれる文字数を制限しない。BASE64で符
号化されたデータを,LF (0x0a),FF (0x0c) 又はCR (0x0d) の中の少なくとも一つの文字符号によって,幾
つかの区分に分割してもよい。しかし,これらの文字符号を無視しなければならない。入力されたBASE64
で符号化された区分を,あたかも1行であるかのように扱わなければならない。
定義:BASE64: : = "`" BASE64CHR* "`".
BASE64CHAR : : = <上のように定義される文字符号化列>.
B.3.6 :Null Nullは特別な終端を表し,その意味は,MHEG-5オブジェクト定義に依存する。Null終端
記号には,大文字と小文字との区別はなく, "NULL" と "null" とは,等価である。
定義:Null : : = "NULL".
B.3.7 列挙値 ラテン文字で始まる終端記号を“列挙値”と呼ぶ(すべての列挙値は,次の文法において
二つの二重引用符で囲まれる。)。列挙値は,その用法に依存した特定の意味を表す終端記号の一つとして
使用される。すべての列挙値には,大文字と小文字との区別はない。すなわち, "IsAvailable" と "isavailable"
とは等価である。
B.4 MHEG-5オブジェクト定義 MHEG-5オブジェクトのテキスト表記法は,次のとおり定義される。
表B.2は,タグ内で使用される短縮形の要約である。
表B.2 タグ内の短縮形
Bordered Bounding Box BBBox
Content Cache Priority
CCPriority
Content Hook
Chook
Coordinate System
CS
Generic
G
Group Cache Priority
GCPriority
Horizontal Justification
Hjustification
Identifier
ID
Information
Info
Interchanged
Interchg
OctetString
OString
Original
Orig
Program
Prg
Reference
Ref
Register
Reg
Standard
Std
Variable
Var(基本操作タグを除く。)
Vertical Justification
Vjustification
--Copyright statement:
-- International Organisation for Standardisation 1998
--Permission to copy in any form is granted for use with conforming MHEG-6 engines and applications
--provided this notice is included in all copies
B.4.1 Root Class
Root
: : = ObjectIdentifier.
59
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ObjectIdentifier
: : = ObjectReference.
B.4.2 Group Class
Group
: : = Root [StandardIdentifier]
[StandardVersion] [ObjectInformation]
[OnStartUp] [OnCloseDown]
[OriginalGroupCachePriority] [Items].
StandardIdentifier :
: : = " : StdID" JointIsoItuIdentifier
MHEGStandardIdentifier.
JointIsoItuIdentifier
: : = INTEGER.
MHEGStandardIdentifier
: : = INTEGER.
StandardVersion : : = ": StdVersion" INTEGER.
ObjectInformation
: : = " : ObjectInfo" OctetString.
OnStartUp
: : = " : OnStartUp" ActionClass.
OnCloseDown
: : = " : OnCloseDown" ActionClass.
OriginalGroupCachePriority : : = " : OrigGCPriority" INTEGER.
Items
: : = " : Items" "(" GroupItem+ ")".
GroupItem
: : = ResidentProgramClass |
RemoteProgramClass |
InterchangedProgramClass |
PaletteClass |
FontClass |
CursorShapeClass |
BooleanVariableClass |
IntegerVariableClass |
OctetStringVariableClass |
ObjectRefVariableClass |
ContentRefVariableClass |
LinkClass |
StreamClass |
BitmapClass |
LineArtClass |
DynamicLineArtClass |
RectangleClass |
HotspotClass |
SwitchButtonClass |
PushButtonClass |
TextClass |
EntryFieldClass |
HyperTextClass |
SliderClass |
60
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
TokenGroupClass |
ListGroupClass.
B.4.3 Application Class
ApplicationClass
: : = "{ : Application" Group
[OnSpawnCloseDown] [OnRestart]
[DefaultAttributes] ")".
OnSpawnCloseDown
: : = " : OnSpawnCloseDown" ActionClass.
OnRestart
: : = " : OnRestart" ActionClass.
DefaultAttributes
: : = DefaultAttribute+.
DefaultAttribute
: : = CharacterSet | BackgroundColour
| TextContentHook
| TextColour | Font
| FontAttributes
| TnterchangedProgramContentHook
| StreamContentHook
| BitmapContentHook
| LineArtContentHook | ButtonRefColour
| HighlightRefColour | SliderRefColour.
CharacterSet
: : = " : CharacterSet" INTEGER.
BackgroundColour
: : = " : BackgroundColour" Colour.
TextContentHook : : = ": TextCHook" INTEGER.
TextColour
: : = " : TextColour" Colour.
Font
: : = " : Font" FontBody.
FontBody
: : = DirectFont | IndirectFont.
DirectFont
: : = OctetString.
IndirectFont
: : = ObjectReference.
FontAttributes
: : = " : FontAttributes" OctetString.
InterchangedProgramContentHook : : = " : InterchgPrgCHook" INTEGER.
StreamContentHook
: : = " : StreamCHook" INTEGER.
BitmapContentHook
: : = " : BitmapCHook" INTEGER.
LineArtContentHook
: : = " : LineArtCHook" INTEGER.
ButtonRefColour : : = " : ButtonRefColour" Colour.
HighlightRefColour
: : = " : HighlightRefColour" Colour.
SliderRefColour : : = " : SliderRefColour" Colour.
B.4.4 Scene Class
SceneClass
: : = "{ : Scene" Group InputEventRegister
SceneCoordinateSystem [AspectRatio]
[MovingCursor] [NextScenes] "}".
InputEventRegister
: : = " : InputEventReg" INTEGER.
SceneCoordinateSystem
: : = " : SceneCS" XScene YScene.
61
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
XScene
: : = INTEGER.
YScene
: : = INTEGER.
AspectRatio
: : = " : AspectRatio" Width Height.
Width
: : = INTEGER.
Height
: : = INTEGER.
MovingCursor
: : = " : MovingCursor" BOOLEAN.
NextScenes
: : = " : NextScenes" "(" NextScene+ ")".
NextScene
: : = "(" SceneRef SceneWeight ")".
SceneRef
: : = OctetString.
SceneWeight
: : = INTEGER.
B.4.5 Ingredient Class
Ingredient
: : = Root [InitiallyActive] [ContentHook]
[OriginalContent] [Shared]
InitiallyActive : : = ": InitiallyActive" BOOLEAN.
ContentHook
: : = " : CHook" INTEGER.
OriginalContent : : = ": OrigContent" ContentBody.
ContentBody
: : = IncludedContent | ReferencedContent.
IncludedContent : : = OctetString.
ReferencedContent
: : = " : ContentRef" "(" ContentReference
[ContentSize] [ContentCachePriority]
")".
ContentSize
: : = " : ContentSize" INTEGER.
ContentCachepriority
: : = " : CCPriority" INTEGER.
Shared
: : = " : Shared" BOOLEAN.
B.4.6 Link Class
LinkClass
: : = "{ : Link' Ingredient LinkCondition
LinkEffect "}".
LinkCondition
: : = EventSource EventType [EventData].
EventSource
: : = " : EventSource " ObjectReference.
EventType
: : = " : EventType " EventTypeEnum.
EventTypeEnum
: : = " IsAvailable " | " ContentAvailable "
| " IsDeleted " | " IsRunning "
| " IsStopped " | " UserInput "
| " AnchorFired " | " TimerFired "
| " AsynchStopped " | " InteractionCompleted "
| " TokenMovedFrom " | " TokenMovedTo "
| " StreamEvent " | " StreamPlaying "
| " Streamstopped " | " CounterTrigger "
| " HighlightOn " | " HighlightOff "
| " CursorEnter " | " CursorLeave "
62
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
| " IsSelected " | " IsDeselected "
| " TestEvent " | " FirstItemPresented "
| " LastItemPresented " | " HeadItems "
| " TailItems " | " ItemSelected "
| " ItemDeselected " | " EntryFieldFull " | "
EngineEvent ".
EventData
: : = " : EventData " EventDataBody.
EventDataBody
: : = OctetString | BOOLEAN | INTEGER.
LinkEffect
: : = " : LinkEffect " ActionClass.
B.4.7 Program Class
Program
: : = Ingredient Name [InitiallyAvailable].
Name
: : = " : Name " OctetString.
InitiallyAvailable
: : = " : InitiallyAvailable " BOOLEAN.
B.4.8 ResidentProgram Class
ResidentProgramClass
: : = "{ : ResidentPrg " Program "}".
B.4.9 RemoteProgram Class
RemoteProgramClass
: : = "{ : RemotePrg " Program
[ProgramConnectionTag] "}".
ProgramConnectionTag
: : = " : ConnectionTag " INTEGER.
B.4.10 InterchangedProgram Class
InterchangedProgramClass : : = "{ : InterchgPrg " Program "}".
B.4.11 Palette Class
PaletteClass
: : = "{ : Palette " Ingredient "}".
B.4.12 Font Class
FontClass
: : = "{ : Font " Ingredient "}".
B.4.13 CursorShape Class
CursorShapeClass
: : = "{ : CursorShape " Ingredient "}".
B.4.14 Variable Class
Variable
: : = Ingredient Originalvalue.
OriginalValue
: : = " : OrigValue " OriginalValueBody.
OriginalValueBody
: : = BOOLEAN | INTEGER | OctetString
| ObjectReferenceValue
| ContentReferenceValue.
ObjectReferenceValue
: : = " : ObjectRef " ObjectReference.
ContentReferenceValue
: : = " : ContentRef " ContentReference.
B.4.15 BooleanVariable Class
BooleanVariableClass
: : = "{ : BooleanVar " Variable "}"
B.4.16 IntegerVariable Class
IntegerVariableClass
: : = "{ : IntegerVar " Variable "}".
B.4.17 OctetStringVariable Class
63
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
OctetStringVariableClass : : = "{ : OStringVar " Variable "}".
B.4.18 ObjectRefVariable Class
ObjectRefVariableClass
: : = "{ : ObjectRefVar " Variable "}".
B.4.19 ContentRefVariable Class
ContentRefVariableClass
: : = "{ : ContentRefVar " Variable "}"
B.4.20 Presentable Class
Presentable
: : = Ingredient.
B.4.21 TokenManager Class
TokenManager
: : = [MovementTable].
MovementTable
: : = " : MovementTable " "(" Movement+ ")".
Movement
: : = "(" TargetElement+ ")".
TargetElement
: : = INTEGER.
B.4.22 TokenGroup Class
TokenGroupClass : : = "{ : TokenGroup " TokenGroupBody "}".
TokenGroupBody
: : = Presentable TokenManager TokenGroupItems
[NoTokenActionSlots].
TokenGroupItems : : = " : TokenGroupItems " "(" TokenGroupItem+ ")".
TokenGroupItem
: : = "(" AVisible [ActionSlots] ")".
AVisible
: : = ObjectReference.
ActionSlots
: : = " : ActionSlots " "(" ActionSlot+ ")".
ActionSlot
: : = ActionClass | Null.
NoTokenActionSlots
: : = " : NoTokenActionSlots " "(" ActionSlot+ ")".
B.4.23 ListGroup Class
ListGroupClass
: : = "{ : ListGroup " TokenGroupBody
Positions [WrapAround]
[MultipleSelection] "}".
Positions
: : = " : Positions " "(" Position+ ")".
Position
: : = "(" XYPosition ")".
WrapAround
: : = " : WrapAround " BOOLEAN.
MultipleSelection
: : = " : MultipleSelection " BOOLEAN.
B.4.24 Visible Class
Visible
: : = Presentable OriginalBoxSize
[OriginalPosition] [OriginalPaletteRef].
OriginalBoxSize : : = " : OrigBoxSize " BoxSize.
BoxSize
: : = XLength YLength.
XLength
: : = INTEGER.
YLength
: : = INTEGER.
OriginalPosition
: : = " : OrigPosition " XYPosition.
OriginalPaletteRef
: : = " : OrigPaletteRef " ObjectReference.
B.4.25 Bitmap Class
64
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
BitmapClass
: : = "{ : Bitmap " Visible [Tiling]
[OriginalTransparency] "}".
Tiling
: : = " : Tiling " BOOLEAN.
OriginalTransparency
: : = " : OrigTransparency " INTEGER.
B.4.26 LineArt Class
LineArtClass
: : = "{ : LineArt " LineArtBody "}".
LineArtBody
: : = Visible [BorderedBoundingBox]
[OriginalLinewidth]
[OriginalLineStyle]
[OriginalRefLineColour]
[OriginalRefFillColour].
BorderedBoundingBoX
: : = " : BBBox " BOOLEAN.
OriginalLineWidth
: : = " : OrigLineWidth " INTEGER.
OriginalLineStyle
: : = " : OrigLinestyle " INTEGER.
OriginalRefLineColour
: : = " : OrigRefLineColour " Colour.
OriginalRefFillColour
: : = " : OrigRefFillColour " Colour.
B.4.27 Rectangle Class
RectangleClass
: : = "{ : Rectangle " LineArtBody "}".
B.4.28 DynamicLineArt Class
DynamicLineArtClass
: : = "{ : DynamicLineArt " LineArtBody "}".
B.4.29 Text Class
TextClass
: : = "{ : Text " TextBody "}".
TextBody
: : = Visible [OriginalFont] [FontAttributes]
[TextColour] [BackgroundColour]
[CharacterSet]
[HorizontalJustification]
[VerticalJustification]
[LineOrientation] [StartCorner]
[TextWrapping].
OriginalFont : : = " : OrigFont " FontBody.
HorizontalJustification
: : = " : HJustification " JustificationEnum.
JustificationEnum
: : = " start " | " end " | " center " | " justified ".
VerticalJustification
: : = " : VJustification " JustificationEnum.
LineOrientation : : = " : LineOrientation " LineOrientationEnum.
LineOrientationEnum
: : = " vertical " | " horizontal ".
StartCorner
: : = " : StartCorner " StartCornerEnum.
StartCornerEnum : : = " upper-left " | " upper-right "
| " lower-left " | " lower-right ".
TextWrapping
: : = " : TextWrapping " BOOLEAN.
B.4.30 Stream Class
65
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
StreamClass
: : = "{ : Stream " Presentable Multiplex
[Storage] [Looping] "}".
Multiplex
: : = " : Multiplex " "(" StreamComponent+ ")".
StreamComponent : : = AudioClass | VideoClass | RTGraphicsClass.
Storage
: : = " : Storage " StorageEnum.
StorageEnum
: : = " memory " | stream".
Looping
: : = " : Looping" INTEGER.
B.4.31 Audio Class
AudioClass
: : = "{ : Audio" Presentable ComponentTag
[Originalvolume] "}".
ComponentTag
: : = " : ComponentTag" INTEGER.
Originalvolume
: : = " : OrigVolume" INTEGER.
B.4.32 Video Class
VideoClass
: : = "{ : Video" Visible ComponentTag
[Termination] "}".
Termination
: : = " : Termination" TerminationEnum.
TerminationEnum : : = "freeze" | "disappear".
B.4.33 RTGraphics Class
RTGraphicsClass
: : = "{ : RTGraphics" Visible ComponentTag
[Termination] "}".
B.4.34 Interactible Class
Interactible
: : = [EngineResp] [HighlightRefColour].
EngineResp
: : = " : EngineResp" BOOLEAN.
B.4.35 Slider Class
SliderClass
: : = "{ : Slider" Visible Interactible
Orientation MaxValue [MinValue]
[InitialValue] [InitialPortion]
[StepSize] [SliderStyle]
[SliderRefColour] "}".
Orientation
: : = " : Orientation" OrientationEnum.
OrientationEnum : : = "left" | "right" | "up" | "down".
MaxValue
: : = " : MaxValue" INTEGER.
MinValue
: : = " : MinValue" INTEGER.
InitialValue
: : = " : InitialValue" INTEGER.
InitialPortion
: : = " : InitialPortion" INTEGER.
StepSize
: : = " : StepSize" INTEGER.
SliderStyle
: : = " : SliderStyle" SliderStyleEnum.
SliderStyleEnum : : = "normal" | "thermometer" | "proportional ".
B.4.36 EntryField Class
EntryFieldClass
: : = "{ : EntryField " TextBody Interactible
66
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
[InputType] [CharList]
[ObscuredInput] [MaxLength] "}".
InputType
: : = " : InputType " InputTypeEnum.
InputTypeEnum
: : = " alpha " | " numeric " | " any " | " listed ".
CharList
: : = " : CharList " OctetString.
ObscuredInput
: : = " : ObscuredInput " BOOLEAN.
MaxLength
: : = " : MaxLength " INTEGER.
B.4.37 HyperText Class
HyperTextClass
: : = "{ : HyperText " TextBody Interactible "}".
B.4.38 Button Class
Button
: : = Visible Interactible [ButtonRefColour].
B.4.39 Hotspot Class
HotspotClass
: : = "{ : Hotspot " Button "}".
B.4.40 PushButton Class
PushButtonClass : : = " { : PushButton " PushButtonBody "}".
PushButtonBody
: : = Button [OriginalLabel] [CharacterSet].
OriginalLabel
: : = " : OrigLabel " OctetString.
B.4.41 SwitchButton Class
SwitchButtonClass
: : = "{ : SwitchButton " PushButtonBody
ButtonStyle "}".
ButtonStyle
: : = " : ButtonStyle " ButtonStyleEnum.
ButtonStyleEnum : : = " pushutton " | " radiobutton " | " checkbox ".
B.4.42 Applet Class
AppletClass
: : = "{ " " : Applet " Program Interactible
OriginalBoxSize [OriginalPosition] "}".
B.4.43 Action Class
ActionClass
: : = "( " ElementaryAction+ ")".
ElementaryAction
: : = Activate
| Add
| AddItem
| Append
| BringToFront
| Call
| CallActionSlot
| Clear
| Clone
| CloseConnection
| Deactivate
| DelItem
| Deselect
67
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
| DeselectItem
| Divide
| DrawArc
| DrawLine
| DrawOval
| DrawPolygon
| DrawPolyline
| DrawRectangle
| DrawSector
| Fork
| GetAvailabilitystatus
| GetBoxSize
| GetCellItem
| GetCursorPosition
| GetEngineSupport
| GetEntryPoint
| GetFillColour
| GetFirstItem
| GetHighlightStatus
| GetInteractionStatus
| GetItemStatus
| GetLabel
| GetLastAnchorFired
| GetLineColour
| GetLineStyle
| GetLineWidth
| GetListItem
| GetListSize
| GetOverwriteMode
| GetPortion
| GetPosition
| GetRunningStatus
| GetSelectionStatus
| GetSliderValue
| GetTextContent
| GetTextData
| GetTokenPosition
| GetVolume
| Invoke
| Launch
68
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
| LockScreen
| Modulo
| Move
| MoveTo
| Multiply
| OpenConnection
| Preload
| PutBefore
| PutBehind
| Quit
| ReadPersistent
| Run
| ScaleBitmap
| ScaleVideo
| ScrollItems
| Select
| SelectItem
| SendEvent
| SendToBack
| SetBoxSize
| SetCachePriority
| SetCounterEndPosition
| SetCounterPosition
| SetCounterTrigger
| SetCursorPosition
| SetCursorShape
| SetData
| SetEntryPoint
| SetFillColour
| SetFirstItem
| SetFontRef
| SetHighlightStatus
| SetInteractionStatus
| SetLabel
| SetLineColour
| SetLineStyle
| SetLineWidth
| SetOverwriteMode
| SetPaletteRef
| SetPortion
69
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
| SetPosition
| SetSlidervalue
| SetSpeed
| SetTimer
| SetTransparency
| SetVariable
| SetVolume
| Spawn
| Step
| Stop
| StorePersistent
| Subtract
| TestVariable
| Toggle
| ToggleItem
| TransitionTo
| Unload
| UnlockScreen.
Activate
: : = " : Activate " "(" Target ")".
Add
: : = " : Add " "(" Target Value ")".
AddItem
: : = " : AddItem " "(" Target ItemIndex
VisibleReference ")".
Append
: : = " : Append " "(" Target AppendValue ")".
BringToFront
: : = " : BringToFront " "(" Target ")".
Call
: : = " : Call " "(" Target CallSucceeded
[Parameters] ")".
CallActionSlot
: : = " : CallActionSlot " "(" Target Index ")".
Clear
: : = " : Clear " "(" Target ")".
Clone
: : = " : Clone " "(" Target CloneRefVar ")".
CloseConnection : : = " : CloseConnection " "(" Target
ConnectionTag ")".
Deactivate
: : = " : Deactivate " "(" Target ")".
DelItem
: : = " : DelItem " "(" Target VisibleReference
")".
Deselect
: : = " : Deselect " "(" Target ")".
DeselectItern
: : = " : DeselectItem " "(" Target ItemIndex ")"
Divide
: : = " : Divide " "(" Target Value ")".
DrawArc
: : = " : DrawArc " "(" Target X Y EllipseWidth
EllipseHeight StartAngle ArcAngle ")".
DrawLine
: : = " : DrawLine " "(" Target X1 Y1 X2 Y2 ")".
70
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
DrawOval
: : = " : DrawOval " "(" Target X Y EllipseWidth
EllipseHeight ")".
DrawPolygon
: : = " : DrawPolygon " "(" Target PointList ")".
DrawPolyline
: : = " : DrawPolyline " "(" Target PointList ")".
DrawRectangle
: : = " : DrawRectangle " "(" Target X1 Y1 X2 Y2
")".
DrawSector
: : = " : DrawSector " "(" Target X Y EllipseWidth
EllipseHeight StartAngle ArcAngle ")"
Fork
: : = " : Fork " "(" Target ForkSucceeded
[Parameters] ")".
GetAvailabilityStatus
: : = " : GetAvailabilityStatus " "(" Target
AvailabilityStatusVar ")".
GetBoxSize
: : = " : GetBoxSize " "(" Target XBoxSizeVar
YBoxSizeVar ")".
GetCellItem
: : = " : GetCellItem "(" Target CellIndex
IternRefVar ")".
GetCursorPosition
: : = "GetCursorPosition" "(" Target XOut YOut
")".
GetEngineSupport
: : = " : GetEngineSuppOrt" "(" Target Feature
Answer ")".
GetEntryPoint
: : = " : GetEntryPoint" "(" Target EntryPointVar
")".
GetFillColour
: : = " : GetFillColour" "(" Target FiliColourVar
")".
GetFirstItem
: : = " : GetFirstItem" "(" Target FirstItemVar
")".
GetHighlightStatus
: : = " : GetHighlightStatus" "(" Target
HighlightStatusVar ")".
GetInteractionStatus
: : = " : GetInteractionStatus" "(" Target
InteractionStatusVar ")".
GetItemStatus
: : = " : GetItemStatus" "(" Target
ItemIndex ItemStatusVar ")".
GetLabel
: : = " : GetLabel" "(" Target LabelVar ")".
GetLastAnchorFired
: : = " : GetLastAnchorFired" "(" Target
LastAnchorFiredVar ")".
GetLineColour
: : = " : GetLineColour" "(" Target LineColourVar
")".
GetLineStyle
: : = " : GetLineStyle" "(" Target LineStyleVar
")".
GetLineWidth
: : = " : GetLineWidth" "(" Target LineWidthVar
71
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
")".
GetListItem
: : = " : GetListItem" "(" Target ItemIndex
ItemRefVar ")".
GetListSize
: : = " : GetListSize" "(" Target SizeVar ")".
GetOverwriteMode
: : = " : GetOverwriteMode" "(" Target
OverwriteModeVar ")".
GetPortion
: : = " : GetPortion" "(" Target PortionVar ")".
GetPosition
: : = " : GetPosition" "(" Target XPositionVar
YPositionVar ")".
GetRunningStatus
: : = " : GetRunningStatus" "(" Target
RunningStatusVar ")".
GetSelectionStatus
: : = " : GetSelectionStatus" "(" Target
SelectionStatusVar ")".
GetSliderValue
: : = " : GetSliderValue" "(" Target
SliderValueVar ")".
GetTextContent
: : = " : GetTextContent" "(" Target
TextContentVar ")".
GetTextData
: : = " : GetTextData" " (" Target TextDataVar ")".
GetTokenPosition
: : = " : GetTokenPosition" "(" Target
TokenPositionVar ")".
GetVolume
: : = " : GetVolume" "(" Target VolumeVar ")".
Invoke
: : = " : Invoke" "(" Target InvokeSucceedeed Method
[Parameters] ")".
Launch
: : = " : Launch" "(" Target ")".
LockScreen
: : = " : LockScreen" "(" Target ")".
Modulo
: : = " : Modulo" "(" Target Value ")".
Move
: : = " : Moves" "(" Target MovementIdentifier ")".
MoveTo
: : = " : MoveTo" "(" Target Index ")".
Multiply
: : = " : Multiply" "(" Target Value ")".
OpenConnection
: : = " : OpenConnection" "(" Target OpenSucceeded
Protocol Address ConnectionTag ")".
Preload
: : = " : Preload" "(" Target ")".
PutBefore
: : = " : PutBefore" "(" Target ReferenceVisible
")".
PutBehind
: : = " : PutBehind" "(" Target ReferenceVisible
")".
Quit
: : = " : Quit" "(" Target ")".
ReadPersistent
: : = " : ReadPersistent" "(" Target ReadSucceeded
OutVariables InFileName ")".
Run
: : = " : Run" "(" Target ")".
72
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ScaleBitmap
: : = " : ScaleBitmap" "(" Target XScale YScale
")".
ScaleVideo
: : = " : ScaleVideo" "(" Target XScale YScale ")".
ScrollItems
: : = " : ScrollItems" "(" Target ItemsToScroll ")".
Select
: : = " : Select" "(" Target ")".
SelectItem
: : = " : SelectItem" "(" Target ItemIndex ")".
SendEvent
: : = " : SendEvent" "(" Target EmulatedEventSource
ErnulatedEventType [EmulatedEventData]
")".
SendToBack
: : = " : SendToBack" "(" Target ")".
SetBoxSize
: : = " : SetBoxSize" "(" Target XNewBoxSize
YNewBoxSize ")".
SetCachePriority
: : = " : SetCachePriority" "(" Target
NewCachePriority ")".
SetCounterEndPosition
: : = " : SetCounterEndPosition" "(" Target
NewCounterEndPosition ")".
SetCounterPosition
: : = " : SetCounterPosition" "(" Target
NewCounterPosition ")".
SetCounterTrigger
: : = " : SetCounterTrigger" "(" Target
TriggerIdentifier [NewCounterValue]
")".
SetCursorPosition
: : = " : SetCursorPosition" "(" Target XCursor
YCursor ")".
SetCursorShape
: : = " : SetCursorShape" "(" Target
[NewCursorShape] ")".
SetData
: : = " : SetData" "(" Target NewContent ")".
SetEntryPoint
: : = " : SetEntryPoint" "(" Target NewEntryPoint
")".
SetFillColour
: : = " : SetFillColour" "(" Target [NewColour]
")".
SetFirstItem
: : = " : SetFirstItern" "(" Target NewFirstItem
")".
SetFontRef
: : = " : SetFontRef" "(" Target NewFont ")".
SetHighlightStatus
: : = " : SetHighlightStatus" "(" Target
NewHighlightStatus ")".
SetInteractionStatus
: : = " : SetInteractionStatus" "(" Target
NewInteractionStatus ")".
SetLabel
: : = " : SetLabel" "(" Target NewLabel ")".
SetLineColour
: : = " : SetLineColour" "(" Target NewColour ")".
SetLineStyle
: : = " : SetLineStyle" "(" Target NewLineStyle
73
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
")".
SetLineWidth
: : = " : SetLineWidth" "(" Target NewLineWidth
")".
SetOverwriteMode
: : = " : SetOverwriteMode" "(" Target
NewOverwriteMode ")".
SetPaletteRef
: : = " : SetPaletteRef" "(" Target NewPaletteRef
")".
SetPortion
: : = " : SetPortion" "(" Target NewPortion ")".
SetPosition
: : = " : SetPosition" "(" Target NewXPosition
NewYPosition ")".
SetSliderValue
: : = " : SetSliderValue" "(" Target
NewSliderValue ")".
SetSpeed
: : = " : SetSpeed" "(" Target NewSpeed ")".
SetTimer
: : = " : SetTimer" "(" Target TimerID
[TimerValue] [AbsoluteTime] ")".
SetTransparency : : = ": SetTransparency" "(" Target NewTransparency ")".
SetVariable
: : = " : SetVariable" "(" Target
NewVariableValue ")".
SetVolume
: : = " : SetVolume" "(" Target NewVolume ")".
Spawn
: : = " : Spawn" "(" Target ")".
Stop
: : = " : Stop" "(" Target ")".
Step
: : = " : Step" "(" Target NbOfSteps ")".
StorePersistent : : = ": StorePersistent" "(" Target
StoreSucceeded InVariables OutFileName
")".
Subtract
: : = " : Subtract" "(" Target Value ")".
TestVariable
: : = " : TestVariable" "(" Target Operator
ComparisonValue ")".
Toggle
: : = " : Toggle" "(" Target ")".
ToggleItem
: : = " : ToggleItem" "(" Target ItemIndex ")".
TransitionTo
: : = " : TransitionTo" "(" Target [ConnectionTag]
[TransitionEffect] ")".
Unload
: : = " : Unload" "(" Target ")".
UnlockScreen
: : = " : UnlockScreen" "(" Target ")".
AbsoluteTime
: : = " : AbsoluteTime" GenericBoolean.
Address
: : = GenericOctetString.
Answer
: : = ObjectReference.
AppendValue
: : = GenericOctetString.
ArcAngle
: : = GenericInteger.
AvailabilityStatusVar
: : = ObjectReference.
74
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
CallSucceeded
: : = ObjectReference.
CellIndex
: : = GenericInteger.
CloneRefVar
: : = ObjectReference.
ComparisonValue : : = NewGenericBoolean | NewGenericInteger
| NewGenericOctetString
| NewGenericObjectReference
| NewGenericContentReference.
ConnectionTag
: : = " : ConnectionTag" GenericInteger.
Denominator
: : = GenericInteger.
EllipseHeight
: : = GenericInteger.
EllipseWidth
: : = GenericInteger.
EmulatedEventData
: : = NewGenericBoolean | NewGenericInteger
| NewGenericOctetString.
EmulatedEventSource
: : = GenericObjectReference.
EmulatedEventType
: : = EventTypeEnum.
EntryPointVar
: : = ObjectReference.
ForkSucceeded
: : = ObjectReference.
Feature
: : = GenericOctetString.
FillColourVar
: : = ObjectReference.
FirstItemVar
: : = ObjectReference.
HighlightStatusVar
: : = ObjectReference.
Index
: : = GenericInteger.
InFileName
: : = GenericOctetString.
InteractionStatusVar
: : = ObjectReference.
InVariables
: : = "(" ObjectReference+ ")".
InvokeSucceeded
: : = ObjectReference.
ItemIndex
: : = GenericInteger.
ItemRefVar
: : = ObjectReference.
ItemStatusVar
: : = ObjectReference.
ItemsToScroll
: : = GenericInteger.
LabelVar
: : = ObjectReference.
LastAnchorFiredVar
: : = ObjectReference.
LineColourVar
: : = ObjectReference.
LineStyleVar
: : = ObjectReference.
LineWidthVar
: : = ObjectReference.
Method
: : = GenericOctetString.
MovementIdentifier
: : = GenericInteger.
NbOfSteps
: : = GenericInteger.
NewAbsoluteColour
: : = " : NewAbsoluteColour" GenericOctetString.
NewCachePriority
: : = GenericInteger.
75
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
NewColour
: : = NewColourIndex | NewAbsoluteColour.
NewColourIndex
: : = " : NewColourIndex" GenericInteger.
NewContent
: : = NewIncludedContent | NewReferencedContent.
NewContentCachePriority
: : = " : NewCCPriority" GenericInteger.
NewCounterEndPosition
: : = GenericInteger.
NewCounterPosition
: : = GenericInteger.
NewContentSize
: : = " : NewContentSize" GenericInteger.
NewCounterValue : : = GenericInteger.
NewCursorShape
: : = GenericObjectReference.
NewEntryPoint
: : = GenericInteger.
NewFirstItem
: : = GenericInteger.
NewFont
: : = NewFontName | NewFontReference.
NewFontName
: : = NewGenericOctetString.
NewFontReference
: : = NewGenericObjectReference.
NewGenericBoolean
: : = " : GBoolean" GenericBoolean.
NewGenericInteger
: : = " : GInteger" GenericInteger.
NewGenericOctetString
: : = " : GOctetString" GenericOctetString.
NewGenericObjectReference : : = " : GObjectRef" GenericObjectReference.
NewGenericContentReference : : = " : GContentRef" GenericContentReference.
NewHighlightStatus
: : = GenericBoolean.
NewIncludedContent
: : = GenericOctetString.
NewInteractionStatus
: : = GenericBoolean.
NewLabel
: : = GenericOctetString.
NewLineStyle
: : = GenericInteger.
NewLineWidth
: : = GenericInteger.
NewOverwriteMode
: : = GenericBoolean.
NewPaletteRef
: : = GenericObjectReference.
NewPortion
: : = GenericInteger.
NewReferencedContent
: : = " : NewRefContent" "(" GenericContentReference
[NewContentSize]
[NewContentCachePriority] ")".
NewSliderValue
: : = GenericInteger.
NewSpeed
: : = Rational.
NewTransparency
: : = GenericInteger.
NewVariablevalue
: : = NewGenericInteger | NewGenericBoolean
| NewGenericOctetString
| NewGenericObjectReference
| NewGenericContentReference.
NewVolume
: : = GenericInteger.
NewXPosition
: : = GenericInteger.
76
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
NewYPosition
: : = GenericInteger.
Numerator
: : = GenericInteger.
OpenSucceeded
: : = ObjectReference.
Operator
: : = GenericInteger.
OutFileName
: : = GenericOctetString.
OutVariables
: : = "(" ObjectReference+ ")".
OverwriteModeVar
: : = ObjectReference.
Parameter
: : = NewGenericBoolean | NewGenericInteger
| NewGenericOctetString
| NewGenericObjectReference
| NewGenericContentReference.
Parameters
: : = Parameter+.
Point
: : = "(" X Y ")".
PointList
: : = "(" Point+ ")".
PortionVar
: : = ObjectReference.
Protocol
: : = GenericOctetString.
Rational
: : = Numerator [Denominator].
ReadSucceeded
: : = ObjectReference.
ReferenceVisible
: : = GenericObjectReference.
RunningStatusVar
: : = ObjectReference.
SelectionStatusVar
: : = ObjectReference.
SizeVar
: : = ObjectReference.
SliderValueVar
: : = ObjectReference.
StartAngle
: : = GenericInteger.
StoreSucceeded
: : = ObjectReference.
Target
: : = GenericObjectReference.
TextContentVar
: : = ObjectReference.
TextDataVar
: : = ObjectReference.
TimerID
: : = GenericInteger.
TimerValue
: : = GenericInteger.
TokenPositionVar
: : = ObjectReference.
TransitionEffect
: : = GenericInteger.
TriggerIdentifier
: : = GenericInteger.
Value
: : = GenericInteger.
VisibleReference
: : = GenericObjectReference.
VolumeVar
: : = ObjectReference.
x
: : = GenericInteger.
x1
: : = GenericInteger.
X2
: : = Generic Integer.
XBoxSizeVar
: : = ObjectReference.
77
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
XCursor
: : = GenericInteger.
XNewBoxSize
: : = GenericInteger.
XOut
: : = ObjectReference.
XPositionVar
: : = ObjectReference.
XScale
: : = GenericInteger.
Y
: : = GenericInteger.
Y1
: : = GenericInteger.
Y2
: : = GenericInteger.
YBoxSizeVar
: : = ObjectReference.
YCursor
: : = GenericInteger.
YNewBoxSize
: : = GenericInteger.
YOut
: : = ObjectReference.
YPositionVar
: : = ObjectReference.
YScale
: : = GenericInteger.
B.4.44 Miscellaneous data types
ObjectReference : : = ExternalReference | InternalReference.
ExternalReference
: : = "(" GroupIdentifier ObjectNumber ")".
InternalReference
: : = ObjectNumber.
GroupIdentifier : : = OctetString.
ObjectNumber
: : = INTEGER.
ContentReference
: : = OctetString.
GenericObjectReference
: : = DirectReference | IndirectReference.
DirectReference : : = ObjectReference.
IndirectReference
: : = " : IndirectRef" ObjectReference.
GenericContentReference
: : = ContentReference | IndirectReference.
GenericInteger
: : = INTEGER | IndirectReference.
GenericBoolean
: : = BOOLEAN | IndirectReference.
GenericOctetString
: : = OctetString | IndirectReference.
OctetString
: : = STRING | QPRINTABLE | BASE64.
Colour
: : = ColourIndex | AbsoluteColour.
ColourIndex
: : = INTEGER.
AbsoluteColour
: : = OctetString.
XYPosition
: : = XPosition YPosition.
XPosition
: : = INTEGER.
YPosition
: : = INTEGER
78
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書C(規定) MHEG-5 API
MHEG-5 APIは,Javaの仕様として定義され,iso. mheg5と呼ばれる一つのJavaパッケージから構成さ
れる。
備考 次の仕様は,ETSIとの協力によって決められたもので,技術的にはETS 300 777-1に従う。iso.
mheg5パッケージにおいては,次のとおりとする。
− MHEG-5オブジェクトを表すすべての公開クラスは,引数なしの保護コンストラクタをもたなければ
ならない。
− MHEG-5オブジェクトを表す公開クラスのすべての公開メソッドは,MhegException例外を発生する
ように宣言しなければならない。
備考 これらの保護コンストラクタ及び例外は,ここでは示していない。これらに相当するJavaのコ
ードは,以降の宣言をクラスごとのファイルに分割し,保護コンストラクタを追加し,上に定
めたとおりに例外を宣言して,更に,クラスのメソッド宣言にその本体部を付け加え,その他
の宣言にセミコロンを付け加えることによって得られる。
完全版の仕様は,この附属書に規定するすべてのクラスから構成する。簡易版の仕様は,C.1〜C.3,C.5
〜C.10及びC.19〜C.24に規定するクラスから構成する。
C.1 ObjeotReference
public class ObjectReference
フィールド
public OctetString groupIdentifier
public int objectNumber
コンストラクタ
public ObjectReference ( )
public ObjectReference (int objectNumber)
public ObjectReference (OcetetString groupIdentifier,
int objectNumber)
最初の二つのコンストラクタは,グループIDの属性(提供されない)を,長さ0のオクテット列に構
成する。
備考 ObjectReferenceは,公開フィールドをもっているため,修正が可能である。これによって,
ObjectReferenceオブジェクトを一時的に別に保存することができる。これは,多くの場合,後
で再利用するために,あるオブジェクトにアクセスするための一時的な変数として用いられる。
プログラマは,ObjectReferenceオブジェクトの値は,オブジェクトが渡されるJVMによって変
更される可能性があることに注意する必要がある。
C.2 ContentReference
public class ContentReference
コンストラクタ
public ContentReference ( )
79
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
public ContentReference (OctetString reference)
C.3 OctetString
public class OctetString
コンストラクタ
public OctetString (String value)
public OctetString (byte[ ] value)
メソッド
byte byteAt (int index)
オクテット列中のindexで示される位置にあるバイト型の値を取得する。
int length ( )
オクテット列のバイト数を取得する。返される値は正の数でなければならない。
byte[ ] toByteArray ( )
オクテット列をバイト配列として取得する。
String toString ( )
適切なMHEG-5テキスト形式を用いて,オクテット列に対応する文字列を取得する。
C.4 Colour
public class Colour
コンストラクタ
public Colour (int colourIndex)
public Colour (OctetString absoluteColour)
メソッド
boolean isAbsolute ( )
Colourオブジェクトが絶対値指定色として作成された場合にTRUEを返し,色インデックスとして作
成された場合にFALSEを返す。
int getIndexColour ( )
色インデックスを取得する。オブジェクトが絶対値指定色として作成された場合は,例外を発生しな
ければならない。
OctetString getAbsoluteColour ( )
色名を取得する。オブジェクトが色インデックスとして作成された場合は,例外を発生しなければな
らない。
C.5 MhegException
public class MhegException extends java. lang. Exception
フィールド
public short parameterRank
public short exceptionCode
exceptionCodeに対する有効な値は,次のとおりとする。
TARGET̲NOT̲AVAILABLE, INVALID̲TARGET, ILLEGAL̲PARAMETER,
80
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
OPTION̲NOT̲SUPPORTED.
定数
exceptionCodeに対する有効な値は,次のとおりとする。
public static final short TARGET̲NOT̲AVAILABLE = 1
この例外は,使用できないMHEG-5オブジェクトに対してメソッドが与えられたときに発生しなけれ
ばならない。
public static final short INVALID̲TARGET = 2
この例外は,参照が無効なMHEG-5オブジェクトに対してメソッドが与えられたときに発生しなけれ
ばならない。
public static final short ILLEGAL̲PARAMETER = 3
この例外は,メソッドが正しくないパラメタ値で起動されたときに発生しなければならない。
public static final short OPTION̲NOT̲SUPPORTED = 4
この例外は,メソッドが,エンジン又は,応用領域でサポートされていない付加機能を必要としたと
きに発生しなければならない。
コンストラクタ
public MhegException (short reason)
MhegExceptionを,パラメタreasonで示されるexceptionCodeによって初期化する。
public MhegException (short reason,
short position)
MhegExceptionを,パラメタreasonで示されるexceptionCode,及びパラメタpositionで示される
parameterRankによって初期化する。
備考 ObjectReferenceと同様に,MHEGExceptionは,しばしば一時的な用途に用いられる変更可能な
オブジェクトである。プログラマは,MHEGExceptionオブジェクトのフィールドが,オブジェ
クトを渡されたJVMによって変更される可能性があることに注意する必要がある。
C.6 Root
abstract public class Root
メソッド
public static ObjectReference getOwnId ( )
呼び出したInterchangedProgram又はAppletのMHEG-5識別子を取得する。
public static Root getObject (ObjectReference mheg5ObjectReference)
識別子がmheg5ObjectReferenceであるMHEG-5オブジェクトに対応したJavaオブジェクトへの参照を
取得する。
Javaの代理オブジェクトが存在しない場合,最初にそれを作成する。
public ObjectReference getReference ( )
オブジェクトへの参照を作成し,その参照を取得する。
public boolean getAvailabilityStatus ( )
内部属性AvailabilityStatusの値を取得する。
public boolean getRunningStatus ( )
内部属性RunningStatusの値を取得する。
81
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
C.7 Group
abstract public class Group extends Root
メソッド
public void setCachePriority (short cachePriority)
基本操作SetCachePriorityの実行を引き起こす。cachePriorityの値は,0〜255の範囲でなければならな
い。
public short getCachePriority ( )
内部属性GroupCachePriorityの値を取得する。
C.8 Application
public class Application extends Group
メソッド
public void lockScreen ( )
基本操作LockScreenの実行を引き起こす。
public void unlockscreen ( )
基本操作UnLockScreenの実行を引き起こす。
public int getLockCount ( )
内部属性LockCountの値を取得する。返却値は,正でなければならない。
public boolean getEngineSupport (OctetString feature)
基本操作GetEngineSupportの実行を引き起こす。
C.9 Scene
public class Scene extends Group
定数
有効なeventTypeの値は,次のとおりとする。
public static final byte IS̲AVAILABLE = 1
public static final byte CONTENT̲AVAILABLE = 2
public static final byte IS̲DELETED = 3
public static final byte IS̲RUNNING = 4
public static final byte IS̲STOPPED = 5
public static final byte USER̲INPUT = 6
public static final byte ANCHOR̲FIRED = 7
public static final byte TIMER̲FIRED = 8
public static final byte ASYNCH̲STOPPED = 9
public static final byte INTERACTION̲COMPLETED = 10
public static final byte TOKEN̲MOVED̲FROM = 11
public static final byte TOKEN̲MOVED̲TO = 12
public static final byte STREAM̲EVENT = 13
public static final byte STREAM̲PLAYING = 14
public static final byte STREAM̲STOPPED = 15
82
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
public static final byte COUNTER̲TRIGGER = 16
public static final byte HIGHLIGHT̲ON = 17
public static final byte HIGHLIGHT̲OFF = 18
public static final byte CURSOR̲ENTER = 19
public static final byte CURSOR̲LEAVE = 20
public static final byte IS̲SELECTED = 21
public static final byte IS̲DESELECTED = 22
public static final byte TEST̲EVENT = 23
public static final byte FIRST̲ITEM̲PRESENTED = 24
public static final byte LAST̲ITEM̲PRESENTED = 25
public static final byte HEAD̲ITEMS = 26
public static final byte TAIL̲ITEMS = 27
public static final byte ITEM̲SELECTED = 28
public static final byte ITEM̲DESELECTED = 29
public static final byte ENTRY̲FIELD̲FULL = 30
public static final byte ENGINE̲EVENT = 31
メソッド
public void setTimer (int timerId)
public void setTimer (int timerId,
int timerValue)
public void setTimer (int timerId,
int timerValue,
boolean absoluteTime)
基本操作SetTimerの実行を引き起こす。
public int getTimerPosition (int timerId)
内部属性Timersにおいて,引数timerIdで指定されるタイマのTimerPositionフィールドの値を取得す
る。
timerIdが有効なタイマを指定していない場合は,例外を発生しなければならない。
public boolean getAbsoluteTime (int timerId)
内部属性Timersにおいて,引数timerIdで指定されるタイマのAbsoluteTimeフィールドの値を取得す
る。
timerIdが有効なタイマを指定していない場合は,例外を発生しなければならない。
public void sendEvent (ObjectReference eventSource,
byte eventType)
public void sendEvent (ObjectReference eventSource,
byte eventType,
boolean eventData)
public void sendEvent (ObjectReference eventSource,
byte eventType,
int eventData)
83
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
public void sendEvent (ObjectReference eventSource,
byte eventType,
OctetString eventData)
基本操作SendEventの実行を引き起こす。
public void setCursorShape ( )
public void setCursorShape (ObjectReference cursorShape)
基本操作SetCursorShapeの実行を引き起こす。
public ObjectReference getCursorShape ( )
現在シーンに属するCursorShapeオブジェクトへのオブジェクト参照を取得する。空オブジェクト参
照が返された場合は,そのシーンには現在移動カーソルがないことを示す。
public void setCursorPosition (short xCursor,
short yCursor)
基本操作SetCursorPositionの実行を引き起こす。
public short [ ] getCursorPosition ( )
内部属性CursorPositionの値を取得する。返される配列は二つの要素をもたなければならず,最初の要
素はXCursor,もう一つはYCursorとする。
C.10 Ingredient
abstract public class Ingredient extends Root
メソッド
public void setContentData (OctetString includedContent)
包含された内容に対して,基本操作SetDataの実行を引き起こす。
getContentDataの意味と整合性をもたせるため,SetDataを包含された内容に適応させるメソッドは
SetContentDataと呼ばれる。
内容の属性が参照の場合の効果は,ここでは定義せず,応用領域で定義される。
public void setContentReference (ContentReference referencedContent)
public void setContentReference (ContentReference referencedContent,
int contentSize)
public void setContentReference (ContentReference referencedContent,
short contentCachePriority)
public void setContentReference (ContentReference referencedContent,
int contentSize,
short contentCachePriority)
参照された内容について,基本操作SetDataの実行を引き起こす。パラメタcontentCachePriorityが指
定された場合,その値は,0〜255の範囲でなければならない。
内容が“包含されている”の場合,例外を発生しなければならない。
public OctetString getContentData ( )
Ingredientの実際の内容を取得する。
内容が“包含されている”の場合,返却値は,内部属性Contentの値でなければならない。
内容が参照の場合,返却値は,内部属性Contentが参照する外部データの値のバイト列表現でなけれ
84
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ばならない。
IngredientがTextオブジェクトの場合,このメソッドは,内部属性TextDataの値を取得することに注
意する。
public ContentReference getContentReference ( )
内部属性ContentのContentReferenceフィールドの値を取得する。
内容が“包含されている”の場合,空オブジェクト参照が返されなければならない。
public int getContentSize ( )
内部属性ContentのContentSizeフィールドの値を取得する。
内容が“含まれている”の場合,例外を発生しなければならない。
フィールドが指定されていない場合,返却値は,負の値でなければならない。
public short getContentCachePriority ( )
内部属性ContentのContentCachePriorityフィールドの値を取得する。内容が“包含されている”の場
合,例外を発生しなければならない。
フィールドが指定されていない場合,返却値は,負の値でなければならない。
それ以外の場合,返却値は,0〜255の範囲でなければならない。
public ObjectReference mhegClone ( )
基本操作Cloneの実行を引き起こす。
public void preload ( )
基本操作Preloadの実行を引き起こす。
public void unload ( )
基本操作Unloadの実行を引き起こす。
C.11 Link
public class Link extends Ingredient
メソッド
public void activate ( )
基本操作Activateの実行を引き起こす。
public void deactivate ( )
基本操作Deactivateの実行を引き起こす。
C.12 Program
abstract public class Program extends Ingredient
メソッド
public boolean call (Object [ ] parameters)
基本操作のCallの実行を引き起こす。
引数parameters配列のすべての要素は,次のいずれかのデータ型を想定する。
Boolean,Integer,OctetString,ObjectReference又はContentReference
それ以外の場合は,例外を発生しなければならない。
public boolean fork (Object [ ] parameters)
基本操作Forkの実行を引き起こす。
85
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
引数parameters配列のすべての要素は,次のいずれかのデータを想定する。
Boolean, Integer, OctetString, ObjectReference 又はContentReference
それ以外の場合,例外を発生しなければならない。
返却値は,プログラムが正しく起動されたかどうかを示す。
public void stop ( )
基本操作Stopの実行を引き起こす。
C.13 ResidentProgram
public class ResidentProgram extends Program
C.14 RemoteProgram
public class RemoteProgram extends Program
C.15 InterchangedProgram
public class InterchangedProgram extends Program
C.16 Palette
public class Palette extends Ingredient
C.17 Font
public class Font extends Ingredient
C.18 CursorShape
public class CursorShape extends Ingredient
C.19 Variable
abstract public class Variable extends Ingredient
C.20 BooleanVariable
public class BooleanVariable extends Variable
メソッド
public void setVariable (boolean value)
内部属性Valueの値を引数valueに設定する。
属性を取得するメソッドと同様,このメソッドは,対応する基本操作を起動するのでなく,値に直接
アクセスする。
public boolean getVariable ( )
内部属性Valueの値を取得する。
C.21 IntegerVariable
public class IntegerVariable extends Variable
86
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
メソッド
public void setVariable (int value)
内部属性Valueの値をパラメタvalueに設定する。
属性を取得するメソッドと同様,このメソッドは,対応する基本操作を起動するのでなく,値に直接
アクセスする。
public int getVariable ( )
内部属性Valueの値を取得する。
C.22 OctetStringVariable
public class OctetStringVariable extends Variable
メソッド
public void setVariable (OctetString value)
内部属性Valueの値を引数valueに設定する。
属性を取得するメソッドと同様,このメソッドは,対応する基本操作を起動するのでなく,値に直接
アクセスする。
public OctetString getVariable ( )
内部属性Valueの値を取得する。
C.23 ObjectReferenceVariable
public class ObjectRefVariable extends Variable
メソッド
public void setVariable (ObjectReference value)
内部属性Valueの値を引数valueに設定する。
属性を取得するメソッドと同様,このメソッドは,対応する基本操作を起動するのでなく,値に直接
アクセスする。
public ObjectReference getVariable ( )
内部属性Valueの値を取得する。
C.24 ContentReferenceVariable
public class ContentRefVariable extends Variable
メソッド
public void setVariable (ContentReference value)
内部属性Valueの値を引数valueに設定する。
属性を取得するメソッドと同様,このメソッドは,対応する基本操作を起動するのでなく,値に直接
アクセスする。
public ContentReference getVariable ( )
内部属性Valueの値を取得する。
C.25 Presentable
abstract public class Presentable extends Ingredient
87
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
メソッド
public void run ( )
基本操作Runの実行を引き起こす。
public void stop ( )
基本操作Stopの実行を引き起こす。
C.26 TokenGroup
public class TokenGroup extends Presentable
メソッド
public void move (short movementId)
基本操作Moveの実行を引き起こす。
public void moveTo (short index)
基本操作MoveToの実行を引き起こす。
引数indexの値は,0からグループ内の要素数までの範囲でなければならない。
public short getTokenPosition ( )
内部属性TokenPositionの値を取得する。
public void callActionSlot (short index)
基本操作CallActionSlotの実行を引き起こす。
引数indexの値は,0からグループ内の要素数までの範囲でなければならない。
C.27 ListGroup
public class ListGroup extends TokenGroup
メソッド
public void addItem (short itemIndex,
ObjectReference visibleReference)
基本操作AddItemの実行を引き起こす。
public void delItem (ObjectReference visibleReference)
基本操作DelItemの実行を引き起こす。
public ObjectReference getListItem (short itemIndex)
内部属性ItemListにおいて,itemIndexをランクとしてもつ項目の値を取得する。
public ObjectReference getCellItem (short cellIndex)
基本操作GetCellItemの実行を引き起こす。
public boolean getItemStatus (short itemIndex)
基本操作GetItemStatusの実行を引き起こす。
public void selectItem (short itemIndex)
基本操作SelectItemの実行を引き起こす。
public void deselectItem (short itemIndex)
基本操作DeselectItemの実行を引き起こす。
public void toggleItem (short itemIndex)
基本操作ToggleItemの実行を引き起こす。
88
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
public void scrollItems (short itemsToScroll)
基本操作ScrollItemの実行を引き起こす。
public void setFirstItem (short iternIndex)
基本操作SetFirstItemの実行を引き起こす。
public short getFirstItem ( )
内部属性FirstItemの値を取得する。返却値は,正でなければならない。
public short getListSize ( )
内部属性ItemListにおける現在の項目数を取得する。返却値は,正でなければならない。
C.28 Visible
abstract public class Visible extends Presentable
メソッド
public void setPosition(short xPosition,
short yPosition)
基本操作SetPositionの実行を引き起こす。
public short [ ] getPosition ( )
内部属性Positionの値を取得する。返される配列は二つの要素をもたなければならず,最初の要素は
XPosition,もう一つの要素はYPositionとする。
public void setBoxSize (short xBoxSize,
short yBoxSize)
基本操作SetBoxSizeの実行を引き起こす。
引数xBoxSize及びyBoxSizeの値は,正とし,0以外の値でなければならない。
public short[] getBoxSize ( )
内部属性BoxSizeの値を取得する。
返される配列は二つの要素をもたなければならず,最初の要素はXBoxSize,もう一つの要素は
YBoxSizeとする。
public void bringToFront ( )
基本操作BringToFrontの実行を引き起こす。
public void sendToBack ( )
基本操作SendToBackの実行を引き起こす。
public void putBefore (ObjectReference visibleReference)
基本操作PutBeforeの実行を引き起こす。
public void putBehind (ObjectReference visibleReference)
基本操作PutBehindの実行を引き起こす。
public void setPaletteRef (ObjectReference paletteReference)
基本操作SetPaletteRefの実行を引き起こす。
public ObjectReference getPaletteRef ( )
内部属性PaletteRefの値を取得する。
C.29 Bitmap
89
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
public class Bitmap extends Visible
メソッド
public void scaleBitmap (short xScale,
short yScale)
基本操作ScaleBitmapの実行を引き起こす。
引数xScale及びyScaleの値は,正でなければならない。
public void setTransparency (byte transparency)
基本操作SetTransparencyの実行を引き起こす。
引数transparencyの値は,0〜100の範囲でなければならない。
public byte getTransparency ( )
内部属性Transparencyの値を取得する。
C.30 LineArt
public class LineArt extends Visible
定数
LineStyleに対して有効な値は,次のとおりとする。
public static final byte SOLID = 1
public static final byte DASHED = 2
public static final byte DOTTED = 3
メソッド
public void setLineWidth (byte lineWidth)
基本操作SetLineWidthの実行を引き起こす。
引数lineWidthの値は,正でなければならない。
public void setLineStyle (byte lineStyle)
基本操作SetLineStyleの実行を引き起こす。
引数lineStyleの値は,SOLID,DASHED又はDOTTEDのいずれかでなければならない。
public void setFillColour ( )
public void setFillColour (Colour fillColour)
基本操作SetFillColourの実行を引き起こす。
メソッドが引数なしで呼ばれた場合,塗りつぶしの色は,透明色に設定しなければならない。
public void setLineColour (Colour lineColour)
基本操作SetLineColourの実行を引き起こす。
C.31 Rectangle
public class Rectangle extends LineArt
C.32 DynamicLineArt
public class DynamicLineArt extends LineArt
メソッド
public byte getLineWidth ( )
90
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
内部属性LineWidthの値を取得する。
public byte getLineStyle ( )
内部属性LineStyleの値を取得する。
public Colour getLineColour ( )
内部属性RefLineColourの値を取得する。
public Colour getFillColour ( )
内部属性RefFillColourの値を取得する。空オブジェクトが返された場合,塗りつぶしの色がないこと
を示す(透明色)。
public void drawArc(short x,
short y,
short ellipseWidth,
short ellipseHeight,
short startAngle,
short arcAngle)
基本操作DrawArcの実行を引き起こす。
public void drawSector (short x,
short y,
short ellipseWidth,
short ellipseHeight,
short startAngle,
short arcAngle)
基本操作DrawSectorの実行を引き起こす。
public void drawLine (short x1,
short y1,
short x2,
short y2)
基本操作DrawLineの実行を引き起こす。
public void drawOval (short x,
short y,
short ellipseWidth,
short ellipseHeight)
基本操作DrawOvalの実行を引き起こす。
public void drawPolygon (short [ ] [ ] pointList)
基本操作DrawPolygonの実行を引き起こす。
引数pointListは,shortデータの配列 [n] [2] の形式,すなわち,各点が二つのshort integerで表される
点の配列とする。
public void drawPolyline (short [ ] [ ] pointList)
基本操作DrawPolylineの実行を引き起こす。
引数pointListは,shortデータの配列 [n] [2] の形式,すなわち,各点が二つのshort integerで表される
点の配列とする。
91
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
public void drawRectangle(short x1,
short y1,
short x2,
short y2)
基本操作DrawRectangleの実行を引き起こす。
public void clear ( )
基本操作Clearの実行を引き起こす。
C.33 Text
public class Text extends Visible
メソッド
public void setFontRef (OctetString fontName)
public void setFontRef (ObjectReference fontReference)
基本操作SetFontRefの実行を引き起こす。
public Object getFontRef ( )
内部属性Fontの値を取得する。
返却値は,ObjectReference(この場合,MHEG-5 Fontオブジェクトヘの参照を表す。)又はOctetString
(この場合,内蔵するフォント名を表す。)のいずれかの形とする。
空オブジェクト参照が返された場合は,省略時のフォントを意味する。
C.34 Stream
public class Stream extends Presentable
メソッド
public void setCounterTrigger (short triggerIdentifier)
public void setCounterTrigger (short triggerIdentifier,
int counterValue)
基本操作SetCounterTriggerの実行を引き起こす。引数counterValueが指定されていない場合,対象の
トリガを消去しなければならない。
public int getCounterTrigger (short triggerIdentifier)
内部属性CounterTriggerにおいて,IDがtriggerIdentifierであるトリガのCounterPositionフィールドの
値を取得する。対象トリガが存在しない場合,例外を発生しなければならない。
public void setSpeed (byte numerator)
public void setSpeed (byte numerator,
byte denominator)
基本操作SetSpeedの実行を引き起こす。
public byte [ ] getSpeed ( )
内部属性Speedの値を取得する。
返される配列は二つの要素をもたなければならず,最初の要素はnumerator,もう一つはdenominator
とする。
public void setCounterPosition (int counterPosition)
92
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
基本操作SetCounterPositionの実行を引き起こす。
public int getCounterPosition ( )
CounterPosition属性の値を取得する。
public void setCounterEndPosition (int counterEndPosition)
基本操作SetCounterEndPositionの実行を引き起こす。
public int getCounterEndPosition ( )
CounterEndPosition属性の値を取得する。
C.35 Audio
public class Audio extends Presentable
メソッド
public void setVolume (byte volume)
基本操作SetVolumeの実行を引き起こす。
public byte getVolume ( )
内部属性Volumeの値を取得する。
C.36 Video
public class Video extends Visible
メソッド
public void scaleVideo (short xScale,
short yScale)
基本操作ScaleVideoの実行を引き起こす。
引数xScale及びyScaleは,正でなければならない。
C.37 RTGraphics
public class RTGraphics extends Visible
C.38 Slider
public class Slider extends Visible
メソッド
public void setInteractionStatus (boolean interactionStatus)
基本操作SetInteractionStatusの実行を引き起こす。
public boolean getInteractionStatus ( )
内部属性InteractionStatusの値を取得する。
public void setHighlightStatus (boolean highlightStatus)
基本操作SetHighlightStatusの実行を引き起こす。
public boolean getHighlightStatus ( )
内部属性HighlightStatusの値を取得する。
public void step (short nbOfSteps)
基本操作Stepの実行を引き起こす。
93
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
public void setSliderValue (short sliderValue)
基本操作SetSliderValueの実行を引き起こす。
public short getSliderValue ( )
内部属性SliderValueの値を取得する。
public void setPortion (short portion)
基本操作SetPortionの実行を引き起こす。
public short getPortion ( )
内部属性Portionの値を取得する。
C.39 EntryField
public class EntryField extends Text
メソッド
public void setInteractionStatus (boolean interactionStatus)
基本操作SetInteractionStatusの実行を引き起こす。
public boolean getInteractionStatus ( )
内部属性InteractionStatusの値を取得する。
public void setHighlightStatus (boolean highlightStatus)
基本操作SetHighlightStatusの実行を引き起こす。
public boolean getHighlightStatus ( )
内部属性HighlightStatusの値を取得する。
public void setOverwriteMode (boolean overwriteMode)
基本操作SetOverWriteModeの実行を引き起こす。
public boolean getOverwriteMode ( )
内部属性OverwriteModeの値を取得する。
public void setEntryPoint (byte entryPoint)
基本操作SetEntryPointの実行を引き起こす。
引数entryPointの値は,正でなければならない。
public byte getEntryPoint ( )
内部属性EntryPointの値を取得する。
C.40 HyperText
public class HyperText extends Text
メソッド
public void setInteractionStatus (boolean interactionStatus)
基本操作SetInteractionStatusの実行を引き起こす。
public boolean getInteractionStatus ( )
内部属性InteractionStatusの値を取得する。
public void setHighlightStatus (boolean highlightStatus)
基本操作SetHighlightStatusの実行を引き起こす。
public boolean getHighlightStatus ( )
94
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
内部属性HighlightStatusの値を取得する。
public OctetString getLastAnchorFired ( )
内部属性LastAnchorFiredの値を取得する。
C.41 Button
abstract public class Button extends Visible
メソッド
public void setInteractionStatus (boolean interactionStatus)
基本操作SetInteractionStatusの実行を引き起こす。
public boolean getInteractionStatus ( )
内部属性InteractionStatusの値を取得する。
public void setHighlightStatus (boolean highlightStatus)
基本操作SetHighlightStatusの実行を引き起こす。
public boolean getHighlightStatus ( )
内部属性HighlightStatusの値を取得する。
public boolean getSelectionStatus ( )
内部属性SelectionStatusの値を取得する。
public void select ( )
基本操作Selectの実行を引き起こす。
Public void deselect ( )
基本操作DeSelectの実行を引き起こす。
C.42 Hotspot
public class Hotspot extends Button
C.43 PushButton
public class PushButton extends Button
メソッド
public void setLabel (OctetString label)
基本操作SetLabelの実行を引き起こす。
public OctetString getLabel ( )
内部属性Labelの値を取得する。
C.44 SwitchButton
public class SwitchButton extends PushButton
メソッド
public void toggle ( )
基本操作Toggleの実行を引き起こす。
C.45 Applet
95
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
public class Applet extends InterchangedProgram
メソッド
public boolean invoke (OctetString method,
Object [ ] methodParameters)
基本操作Invokeの実行を引き起こす。
配列methodParametersのすべての要素は,Boolean,Integer,OctetString,ObjectReference又は
ContentReferenceのいずれかのデータ型を想定する。
それ以外の場合は,例外を発生しなければならない。
public void setPosition (short xPosition,
short yPosition)
基本操作SetPositionの実行を引き起こす。
public short [ ] getPosition ( )
内部属性Positionの値を取得する。
返された配列は,二つの要素をもたなければならず,最初の要素はXPosition,もう一つの要素は
YPositionとする。
public void setBoxSize (short xBoxSize,
short yBoxSize)
基本操作SetBoxSizeの実行を引き起こす。
引数xBoxSize及びyBoxSizeは正で,0以外の値でなければならない。
public short [ ] getBoxSize ( )
内部属性BoxSizeの値を取得する。
返された配列は二つの要素をもたなければならず,最初の要素はXBoxSize,もう一つの要素は
YBoxSizeとする。
public void bringToFront ( )
基本操作BringToFrontの実行を引き起こす。
public void sendToBack ( )
基本操作SendToBackの実行を引き起こす。
public void putBefore (ObjectReference visibleReference)
基本操作PutBeforeの実行を引き起こす。
public void putBehind (ObjectReference visibleReference)
基本操作PutBehindの実行を引き起こす。
public void setInteractionStatus (boolean interactionStatus)
基本操作SetInteractionStatusの実行を引き起こす。
public boolean getInteractionStatus ( )
内部属性InteractionStatusの値を取得する。
public void setHighlightStatus (boolean highlightStatus)
基本操作SetHighlightStatusの実行を引き起こす。
public boolean getHighlightstatus ( )
内部属性HighlightStatusの値を取得する。
96
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書D(参考) 基本操作とMHEG-5 API演算との対応付け
表D.1は,どのようにしてMHEG-5 APIがMHEG-5のクラスを,Javaのクラスとそのインタフェースに
対応付け,MHEG-5の基本操作をJavaのメソッドに対応付けるかを示す。
括弧の中の数値は,Javaメソッドとして設定可能な異なるシグネチャの数を示している。太字は,同期
して動作するプログラムが利用可能なメソッドを示している。すなわち,これらはCall基本操作を使って
起動されるプログラム群である。*印は簡易版に属さないクラスを示している。クラスの順番は,JIS X 4345
と同じである。
表D.1 基本操作とMHEG-5 API演算との対応付け
MHEG-5クラス
MHEG-5基本操作
API演算
APIインタフェース又はクラス
ルート
getObject
ルート(抽象クラス)
getOwnId
getReference
GetAvailabilityStatus
getAvailabilityStatus
GetRunningStatus
getRunningStatus
グループ
SetCachePriority
setCachePriority
グループ(抽象クラス)
getCaohePriority
アプリケーション
StorePersistent
アプリケーション(具象クラス)
ReadPersistent
Launch
Spawn
Quit
OpenConnection
CloseConnection
LockScreen
lockScreen
UnlockScreen
unlockScreen
getLockCount
GetEngineSupport
getEngineSupport
シーン
TransitionTo
シーン(具象クラス)
SetTimer
setTimer (3)
getTimerPosition
getAbsoluteTime
SendEvent
sendEvent (4)
SetCursorShape
setCursorShape (2)
getCursorShape
SetCursorPosition
setCursorPosition
GetCursorPosition
getCursorPosition
要素
SetData
setContentData
要素(抽象クラス)
setContentReference (4)
getContentData
getContentReference
getContentSize
getContentCachePriority
Clone
mhegClone
Preload
preload
Unload
unload
97
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
MHEG-5クラス
MHEG-5基本操作
API演算
APIインタフェース又はクラス
リンク*
Activate
activate
リンク(具象クラス)
Deactivate
deactivate
プログラム*
Call
call
プログラム(抽象クラス)
Fork
fork
Stop
stop
遠隔プログラム*
遠隔(具象クラス)
内蔵プログラム*
内蔵(具象クラス)
交換プログラム*
交換(具象クラス)
パレット*
パレット(具象クラス)
フォント*
フォント(具象クラス)
カーソル形状*
カーソル(具象クラス)
変数
SetVariable
(サブクラスを参照)
変数(抽象クラス)
TestVariable
(サブクラスを参照)
論理型変数
(変数クラスを参照) setVariable
論理型変数(具象クラス)
(変数クラスを参照) getVariable
整数型変数
(変数クラスを参照) setVariable
整数型変数(具象クラス)
(変数クラスを参照) getVariable
Add
Subtract
Multiply
Divide
Modulo
オクテット型変数
(変数クラスを参照) setVariable
オクテット型変数(具象クラス)
(変数クラスを参照) getVariable
Append
コンテント参照型変数
(変数クラスを参照) setVariable
コンテント参照型変数(具象クラス)
(変数クラスを参照) getVariable
オブジェクト参照型変数
(変数クラスを参照) setVariable
オブジェクト参照型変数(具象クラス)
(変数クラスを参照) getVariable
出力*
Run
run
出力(抽象クラス)
Stop
stop
トークングループ*
CallActionSlot
callActionSlot
トークングループ(具象クラス)
トークン管理*
Move
move
MoveTo
moveTo
GetTokenPosition
getTokenPosition
リストグループ*
AddItem
addItem
リストグループ(具象クラス)
DelItem
delItem
GetListItem
getListItem
GetCellItem
getCellItem
GetItemStatus
getItemStatus
SelectItem
selectItem
DeselectItem
deselectItem
ToggleItem
toggleItem
ScrollItems
scrollItems
SetFirstItem
setFirstItem
GetFirstItem
getFirstItem
GetListSize
getListSize
可視*
SetPosition
setPosition
可視(抽象クラス)
98
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
MHEG-5クラス
MHEG-5基本操作
API演算
APIインタフェース又はクラス
GetPosition
getPosition
SetBoxSize
setBoxSize
GetBoxSize
getBoxSize
BringToFront
bringToFront
SendToBack
sendToBack
PutBefore
putBefore
PutBehind
putBehind
SetPaletteRef
setPaletteRef
getPaletteRef
ビットマップ*
ScaleBitmap
scaleBitmap
ビットマップ(具象クラス)
SetTransparency
setTransparency
getTransparency
ラインアート*
SetLineWidth
setLineWidth
ラインアート(具象クラス)
SetLineColour
setLineColour
SetFillColour
setFillColour (2)
SetLineStyle
setLineStyle
長方形*
長方形(具象クラス)
動的ラインアート*
GetLineWidth
getLineWidth
動的ラインアート(具象クラス)
GetLineColour
getLineColour
GetFillColour
getFillColour
GetLineStyle
getLineStyle
DrawArc
drawArc
DrawSector
drawSector
DrawLine
drawLine
DrawOval
drawOval
DrawPolygon
drawPolygon
DrawPolyline
drawPolyline
DrawRectangle
drawRectangle
Clear
clear
テキスト*
SetFontRef
setFontRef (2)
テキスト(具象クラス)
getFontRef
GetTextContent
(要素クラスを参照)
GetTextData
(要素クラスを参照)
ストリーム*
SetCounterTrigger
setCounterTrigger (2)
ストリーム(具象クラス)
getCounterTrigger
SetSpeed
setSpeed (2)
getSpeed
SetCounterPosition
setCounterPosition
getCounterPosition
SetCounterEndPosition
setCounterEndPosition
getCounterEndPosition
音響*
SetVolume
setVolume
音響(具象クラス)
GetVolume
getVolume
動画*
ScaleVideo
scaleVideo
動画(具象クラス)
実時間グラフィックス
実時間グラフィックス
*
(具象クラス)
対話
SetInteractionStatus
(サブクラスを参照)
GetInteractionStatus
(サブクラスを参照)
99
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
MHEG-5クラス
MHEG-5基本操作
API演算
APIインタフェース又はクラス
SetHighlightStatus
(サブクラスを参照)
GetHighlightStatus
(サブクラスを参照)
スライダ*
Step
step
スライダ(具象クラス)
SetSliderValue
setSliderValue
GetSliderValue
getSliderValue
SetPortion
setPortion
GetPortion
getPortion
(対話クラスを参照) setInteractionStatus
(対話クラスを参照) getInteractionStatus
(対話クラスを参照) setHighlightStatus
(対話クラスを参照) getHighlightStatus
入力フィールド*
SetOverwriteMode
setOverwriteMode
入力フィールド(具象クラス)
GetOverwriteMode
getOverwriteMode
SetEntryPoint
setEntryPoint
GetEntryPoint
getEntryPoint
(対話クラスを参照) setInteractionStatus
(対話クラスを参照) getInteractionStatus
(対話クラスを参照) setHighlightStatus
(対話クラスを参照) getHighlightStatus
ハイパテキスト*
GetLastAnchorFired
getLastAnchorFired
ハイパテキスト(具象クラス)
(対話クラスを参照) setInteractionStatus
(対話クラスを参照) getInteractionStatus
(対話クラスを参照) setHighlightStatus
̀
(対話クラスを参照) getHighlightStaus
ボタン*
getSelectionStatus
ボタン(抽象クラス)
Select
select
Deselect
deselect
(対話クラスを参照) setInteractionStatus
(対話クラスを参照) getInteractionStatus
(対話クラスを参照) setHighlightStatus
(対話クラスを参照) getHighlightStatus
ホットスポット*
ホットスポット(具象クラス)
押しボタン*
SetLabel
setLabel
プッシュボタン(具象クラス)
GetLabel
getLabel
スイッチボタン*
GetSelectionStatus
(ボタンクラスを参照)
スイッチボタン(具象クラス)
Toggle
toggle
アプレット*
Invoke
invoke
アップレット(具象クラス)
(可視クラスを参照) setPosition
(可視クラスを参照) getPosition
(可視クラスを参照) setBoxSize
(可視クラスを参照) getBoxSize
(可視クラスを参照) bringToFront
(可視クラスを参照) sendToBack
(可視クラスを参照) putBefore
(可視クラスを参照) putBehind
(対話クラスを参照) setInteractionStatus
(対話クラスを参照) getInteractionStatus
(対話クラスを参照) setHighlightStatus
100
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
MHEG-5クラス
MHEG-5基本操作
API演算
APIインタフェース又はクラス
(対話クラスを参照) getHighlightStatus
101
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書E(参考) MHEG-6アプレットとWorld Wide Webアプレットと
の関係
MHEG-6アプレットクラスの仕様は,複数のMHEG-6応用領域のWorld Wide Web (WWW) から,Java
アプレットを,ある範囲内で再利用するために使われる。この附属書は,二つのタイプのアプレット間の
関係を説明する。
E.1 アプレットオブジェクトヘのアクセス HTMLページは受動的なので,いったんアプレットが開始さ
れてしまえば,HTMLページとJavaアプレット間との通信は通常行われない。しかし,MHEG-5は能動的
環境であるため,MHEG-6アプレットは,アプレットコードが実行されている間,MHEG-5環境と通信す
る。この規格は,アプレットの開始後の任意の時間に,アプレットオブジェクトでJavaメソッドが起動さ
れるための基本操作Invokeを規定する。MHEG-6仕様によれば,Invoke基本操作の引数によって,異なっ
たシグネチャをもったJavaメソッドが起動される。
E.2 アプレット実行モデル WWW上のJavaアプレットとして,java. applet. Appletは,init,start,stop及
びdestroyと呼ばれる四つの標準メソッドを規定している。これらは,WWWブラウザによって自動的に
起動され,ライフサイクル上の臨界点をアプレットオブジェクトに通知するために利用される。これらの
四つのメソッドはMHEG-6アプレットとしては標準化されておらず,なおかつ,MHEG-6エンジンによっ
て自動的に呼び出されるメソッドも存在しない。しかし,Invoke基本操作を利用すれば,MHEG-6アプリ
ケーションは,これらのメソッドを適切な回数呼び出すことができる。これによって,WWWからのJava
アプレットは,期待している通知を受けることができる。
WWW上のJavaアプレットにとって,これらの四つの標準メソッドは,いつも同じJavaスレッドから
起動されているはずである。これらの一つを実行するのにかなりの時間がかかる場合,他のメソッドの呼
出しは,実行が終了するまで必要に応じて待ち行列に入れられる。同じモデルは,MHEG-6のアプレット
としても使われる。すなわち,このことは,Invoke基本操作を使って呼び出される,すべてのJavaメソッ
ドに適用できるように一般化される。MHEG-6仕様において,基本的Javaスレッドは,MHEGオブジェク
トの活性化によって生成され,MHEGオブジェクトの非活性化によって消去される。Invoke基本操作を経
由して呼び出されたすべてのメソッドは,このとき,このスレッドから起動される。
E.3 グラフィックス環境との統合 本体8.3で示したようにMHEG-6アプレットは,関連したグラフィッ
クスAPIなしに,実体化可能な交換プログラムとして単純に利用することができる。
この規格は,グラフィックス環境又はグラフィックスAPIを規定しない。しかし,応用領域は,アプレ
ットによって利用できる付加的なJava APIを定義してもよい。さらに,アプレットが活性化されていると
きには,Fork基本操作でJavaクラスを規定しても何の制限もされない。応用領域は,MHEG-6のJavaコ
ードとグラフィックス領域との間のリンクを確立するために,そのような制限を規定してもよい。特に,
インタネットとの互換性を望む応用領域は,Fork基本操作の引数として規定されるクラスがjava. applet.
Appletから継承される,という制限を規定するほうがよい。
102
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書F(参考) 主な特徴
この附属書は,多数の要求及び次に関する制約に応じる目的で開発されている。
− 応用
− 機能性
− 使用場面
− 性能
F.1 特徴 この規格は,次を特徴とする応用からの要求に適合させるように,JIS X 4345を拡張する。
1) MHEG-5実体の取扱い
2) 計算,変数の取扱い及び構造体の制御
3) 外部装置の制御
4) データの取得
5) 外部データへのアクセス
6) 任意の外部実行時サービスへのアクセス
F.1.1 MHEG-5実体の取扱い 応用は,通常,マルチメディアの提示を目的としてMHEG-5実体を取り扱
う。
F.1.2 計算,変数の取扱い及び構造体の制御 応用は,高度で動的な振る舞いを実装するために,これら
のデータ処理機能を必要とする。
F.1.3 外部装置の制御 装置は,しばしば,プラットホーム固有のインタフェースを提供する。JIS X 4345
及びそれにカプセル化されたモノメディア規格を実装した実行プラットホームの構成要素は,通常,多数
の装置を利用可能とする。加えて,幾つかの応用は,これらの装置又は利用対象となっていないその他の
装置を直接制御する必要がある。
F.1.4 データの取得 JIS X 4345及びそれにカプセル化されたモノメディア規格を実装した実行プラット
ホームの構成要素は,通常,多数のデータの取得機構を利用可能とする。加えて,幾つかの応用は,これ
らの機構又は利用対象となっていないその他の機構から(例えば,よりよく同調するために)データの取
得を直接制御する必要がある。
F.1.5 外部データへのアクセス 幾つかの応用は,非MHEG-5データへのアクセスが必要。この非MHEG-5
データは,局所記憶装置ストリーム,又は実行時環境の通信装置を使用して遠隔データリポジトリから,
取得しなければならないことがある。
F.1.6 任意の外部実行時サービスへのアクセス 実行時サービスは,どのようなサービスを参照してもよ
い。この場合,サービスのインタフェースが,応用プログラムの交換後に初めて分かるようなサービスを
も含む。
F.2 機能の特徴 この規格は,次のものを表現可能なVMコードを定める。
1) データ処理演算(F.2.1参照)
2) 外部データ及び外部機能へのアクセス(F.2.2参照)
F2.1 データ処理演算 交換されたVMコードで扱うことができるデータ処理演算には,次のものがある。
− 構成された数値データ型の取扱い
103
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
− 変数及びこれらの型の値
− データへのアクセス又は変数の割当てを実行する命令
− 実行制御フローに影響を及ぼす命令
− 算術,論理及び比較演算を実行する命令
F.2.2 外部データ及び外部機能へのアクセス 外部データ及び外部機能へのアクセスには,協調作業が必
要となる。すなわち,次のものとの間で,機能の呼出し,メッセージの受取り,及びデータの交換を行う
必要がある。
− MHEG-5エンジン
− 実行時環境内の他のモジュール
MHEG-5エンジン及び実行環境内の他のモジュールとの協調作業は,交換されたVMコードが実行環境
固有のインタフェースを呼び出すのに使う,機構と同一の機構によって実現される。
MHEG-5エンジンとの協調に関して,この機構は,次を行うために使用される。
− 基本操作の起動
− MHEG-5の動的な属性値の取得
− 変数及びMHEG-5データ型の値の表示
実行環境内の他のモジュールとの協調に関して,この機構は,次を行うために使用される。
− 実行環境によって提供されるサービスインタフェースの宣言
− 実行環境によって提供されるサービスの起動
− これらのサービスによって発生する例外への反応
− 構成された数値データ型及び高度な数値データ型の宣言
− 変数及びこれらの型の値の表示
加えて,VMコードは,VMパッケージ宣言の実際の実行環境構成要素への対応付けを定める。
F.3 技術的な特徴 VMコードは,次の技術的な要求を満たすように定められている。
− ハードウェア,プラットホーム及びオペレーティングシステムからの独立性
− 安全なプログラム処理
− 最終形式表現
− 実時間交換のための規定
− 意味の検証
− 構文の検査可能性(汚染の危険に関して)
− MHEG-5との双方向性の相互作用
− MHEG-5機能との直交性
F.3.1 ハードウェアからの独立性 ハードウェアからの独立性,及びそれによる応用プログラムの可搬性
は,交換されるプログラムを表現するVMコードの定義及びこのコードを解釈する仮想機械の定義によっ
て達成される。
コード化された表現は,ハードウェアに依存しない符号化規則に基づいている。
インタフェースは,Javaパッケージとして定義されている。これらのインタフェースの呼出しは,ハー
ドウェアに依存しない方法でVMコードに対応付けられる。
104
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
F.3.2 安全なプログラム処理 システム設計者は,故意又は偶然によって生じる欠陥のあるプログラムの
実行が,配達システムに最小限の影響しかもたらさない保証,及びすべての外部サービスヘのアクセスが
注意深く監視できる保証を望んでもよい。VMは,この目標を援助する次のような特徴をもつ。
− すべての外部サービスは,強い型付けが行われた,明示的なインタフェースをもつ。
− すべての命令は,強い型付けをもつ。したがって,演算及びオペランドは,その処理前又は実行時の
いずれかに検査を行うだけでよい。
− 意図しない副作用の可能性を防ぐために,記憶装置への直接参照はしない(すなわち,ポインタの計
算はない。)。
− ハンドル,識別子又はポインタの直接の取扱いはしない。
F.3.3 最終形式表現 交換されたプログラムの最終形式表現は,次によって達成される。
− 交換されたプログラムの適正な符号化の使用
− 一般的な目的の計算機の主要なクラスに意味的に近い仮想機械符号化
− 能率のよい命令の符号化
F.3.4 実時間交換のための規定 この規格は,その一般的な構造が実時間交換の要求を満たすために設計
されている,ISO/IEC 13522によって課せられた枠組みに適合する。
交換プログラムに対する構文及び構造から,交換されたプログラムは,直接に実行してもよいし,固有
のコードに即時にコンパイルしてもよい。
F.3.5 意味の検証 商用サービスの内容を実際に使用する前に,性能を検証する目的で,交換プログラム
の振る舞いを試験することが可能である。適合VM実装が交換プログラムの試験において,どのように振
る舞うかを示す,基準となるVMの実装を作成することも可能である。
F.3.6 構文の検査可能性(汚染の危険に関して) VM構文の形式定義を用いることで,交換プログラム
の正当性を検査ができるので,何らかの方法でシステムに損害を与えようとするウイルスのようなコード
の交換を制限するのにも役立つ。構文及び意味の検査が,実行時又はロード時のいずれに行うかは,実装
の選択である。
備考 計算機に独立なインタプリタ表現の使用は,汚染の危険性を減らす。残りの危険は,認証され
ていない実装又は正しくない実装によって生じる。伝送の場合の暗号化,認証,その他のセキ
ュリティ機構の規定は,この規格の範囲外である。
F.3.7 MHEG-5との双方向性の相互作用 この規格は,MHEG-5オブジェクトを取り扱うためにVMコー
ドによって使用される,標準APIであるMHEG-5 APIを定める。
この規格は,特段の規定を設けて,MHEG-5オブジェクトからVMコードがアクセスすることができる
ようにしてある。特に,MHEG-5の交換プログラムクラスヘの意味の拡張を行った。
F.3.8 MHEG-5の機能性と重複しないこと この規格によって明記された環境は,重複した新しい手段を
定めることなしに,ISO/IEC 13522によって定められたマルチメディア表現機能を完全に活用する。
F.4 技術的基準 この規格によって明記された環境は,十分に次の基準のすべてに答える。
− 開放性及び拡張性
− 多数の高水準言語からの効率のよいコンパイル
− 簡潔さ
− 解釈の効率
− 改変性がない
105
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
− 開放的及び完全な仕様
F.4.1 開放性及び拡張性 “開放性及び拡張性”の基準は,次によって満足される。
− VMコードからのアクセスを可能とするインタフェースの一般的な定義
− VMコード表現の構造を変更することのない新しいAPIの追加の可能性
F.4.2 多数の高水準言語からの効率のよいコンパイル 高水準言語からのコンパイルは可能であり,多く
の場合効率がよい。
命令集合は,コンパイル速度,及びセキュリティ要件を満足している限り生成したコードの品質に関し
てどのような制限もない。
F.4.3 簡潔さ 交換プログラムに関するコード表現の簡潔さは,次を含む最適化によって達成される。
− VMコードの定義がスタック方式の計算機に基づいているので,命令が幾つかのオペランドをもって
もよいし,もたなくてもよい。
− 交換形式としてバイトコードを使用することによって,型−長さ−値 (TLV) コードに含まれるオーバ
ヘッドを回避する。
F.4.4 解釈の効率 “解釈の効率”の基準は,次によって満足される。
− スタックに基づいたVMコードの使用
− 低水準な命令の使用
− 最終形式表現の使用
F.4.5 非改変性 非改変性は,最終形態及び/又は低水準な表現の使用によって達成される。この表現は,
特殊な計算機ツールによって制作されるためのもので,スクリプト言語及び/又は編集作成環境を用いて,
人によって設計された元のソースコードへの復元を容易に許さない。したがって,プログラムの意味の不
当な改変が少なくなる。
F.4.6 公開及び完全な仕様 国際規格として,この仕様は,国際標準化団体の知的財産権の方針による。
仕様の改定は,これらの団体の管理下におかれ,また公知で,厳密に適用された規則によって管理される。
106
X 4346 : 1999 (ISO/IEC 13522-6 : 1998)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書G(参考) 知的財産権
ISO/IEC JTC1/SC29/WG12は,この規格に関連する知的財産権又は特許についての権利を主張する場合
にはその旨を宣言するようにという,公開要求を発行した。
この規格の最終版が承認された時点では,この規格に関連する特許又は知的財産権を主張するいかなる
貢献者や組織もなかった。
財団法人日本規格協会・情報技術標準化センター
画像処理技術調査研究委員会MHEG JIS化分科会 (WG6) 構成表
氏名
所属
(主査)
滝 川 啓
NTTソフトウェア株式会社
内 山 光 一
株式会社東芝
大 森 淳 夫
パイオニア株式会社
加 井 謙二郎
日本放送協会
亀 山 渉
株式会社メディアグルー
楠 見 雄 規
松下電器産業株式会社
斎 藤 伸 雄
凸版印刷株式会社
出 羽 義 治
ソニー株式会社
羽 田 知 史
株式会社KDD研究所
濱 川 礼
日本電気株式会社
半 田 晶 彦
日本ビクター株式会社
矢 田 健 一
NTTソフトウェア株式会社
山 田 勝 彦
沖電気工業株式会社
中 島 知 行
通商産業省工業技術院
(事務局)
川中子 肇
財団法人日本規格協会