6. Syslog Message Format (Syslog メッセージフォーマット)
syslog メッセージは以下の ABNF [RFC5234] 定義を持ちます:
SYSLOG-MSG = HEADER SP STRUCTURED-DATA [SP MSG]
HEADER = PRI VERSION SP TIMESTAMP SP HOSTNAME
SP APP-NAME SP PROCID SP MSGID
PRI = "<" PRIVAL ">"
PRIVAL = 1*3DIGIT ; range 0 .. 191
VERSION = NONZERO-DIGIT 0*2DIGIT
HOSTNAME = NILVALUE / 1*255PRINTUSASCII
APP-NAME = NILVALUE / 1*48PRINTUSASCII
PROCID = NILVALUE / 1*128PRINTUSASCII
MSGID = NILVALUE / 1*32PRINTUSASCII
TIMESTAMP = NILVALUE / FULL-DATE "T" FULL-TIME
FULL-DATE = DATE-FULLYEAR "-" DATE-MONTH "-" DATE-MDAY
DATE-FULLYEAR = 4DIGIT
DATE-MONTH = 2DIGIT ; 01-12
DATE-MDAY = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on
; month/year
FULL-TIME = PARTIAL-TIME TIME-OFFSET
PARTIAL-TIME = TIME-HOUR ":" TIME-MINUTE ":" TIME-SECOND
[TIME-SECFRAC]
TIME-HOUR = 2DIGIT ; 00-23
TIME-MINUTE = 2DIGIT ; 00-59
TIME-SECOND = 2DIGIT ; 00-59
TIME-SECFRAC = "." 1*6DIGIT
TIME-OFFSET = "Z" / TIME-NUMOFFSET
TIME-NUMOFFSET = ("+" / "-") TIME-HOUR ":" TIME-MINUTE
STRUCTURED-DATA = NILVALUE / 1*SD-ELEMENT
SD-ELEMENT = "[" SD-ID *(SP SD-PARAM) "]"
SD-PARAM = PARAM-NAME "=" %d34 PARAM-VALUE %d34
SD-ID = SD-NAME
PARAM-NAME = SD-NAME
PARAM-VALUE = UTF-8-STRING ; characters '"', '\' and
; ']' MUST be escaped.
SD-NAME = 1*32PRINTUSASCII
; except '=', SP, ']', %d34 (")
MSG = MSG-ANY / MSG-UTF8
MSG-ANY = *OCTET ; not starting with BOM
MSG-UTF8 = BOM UTF-8-STRING
BOM = %xEF.BB.BF
UTF-8-STRING = *OCTET ; UTF-8 string as specified
; in RFC 3629
OCTET = %d00-255
SP = %d32
PRINTUSASCII = %d33-126
NONZERO-DIGIT = %d49-57
DIGIT = %d48 / NONZERO-DIGIT
NILVALUE = "-"
6.1. Message Length (メッセージ長)
Syslog メッセージのサイズ制限は使用中の syslog トランスポートマッピングによって決定されます。上限は本質的にありません。各トランスポートマッピングは最小限の最大必要メッセージ長サポートを定義し, 最小限の最大は少なくとも 480 オクテットの長さでなければなりません (MUST)。
どのトランスポート受信者も 480 オクテットまでの長さのメッセージを受け入れることができなければなりません (MUST)。すべてのトランスポート受信者実装は 2048 オクテットまでの長さのメッセージを受け入れることができるべきです (SHOULD)。トランスポート受信者は 2048 オクテットより長いメッセージを受信してもかまいません (MAY)。トランスポート受信者がサポートする長さより大きい長さのメッセージを受信した場合, トランスポート受信者はペイロードを切り詰めるべきです (SHOULD)。あるいは, メッセージを破棄してもかまいません (MAY)。
トランスポート受信者がメッセージを切り詰める場合, 切り詰めはメッセージの最後で発生しなければなりません (MUST)。切り詰め後, メッセージは無効な UTF-8 エンコーディングまたは無効な STRUCTURED-DATA を含む可能性があります (MAY)。トランスポート受信者はメッセージを破棄するか, この場合可能な限り処理を試みてもかまいません (MAY)。
6.2. HEADER (ヘッダー)
HEADER で使用される文字セットは [RFC5234] で説明されているように, 8 ビットフィールドの 7 ビット ASCII でなければなりません (MUST)。これらは "USA Standard Code for Information Interchange" [ANSI.X3-4.1968] で定義されている ASCII コードです。
ヘッダーフォーマットは古い BSD ベースの syslog とのある程度の相互運用性を提供するように設計されています。これの詳細については, Appendix A.1 を参照してください。
6.2.1. PRI
PRI 部分は 3, 4, または 5 文字を持たなければならず (MUST), 最初と最後の文字として山括弧で囲まれます。PRI 部分は先頭の "<" ('less-than' 文字, %d60) で始まり, その後に数字が続き, その後に ">" ('greater-than' 文字, %d62) が続きます。これらの山括弧内に含まれる数字は Priority 値 (PRIVAL) として知られ, Facility と Severity の両方を表します。Priority 値は %d48 (「0」の場合) から %d57 (「9」の場合) の値を使用する 1, 2, または 3 つの 10 進整数 (ABNF DIGITS) で構成されます。
Facility と Severity の値は規範的ではありませんが, よく使用されます。これらは純粋に情報提供の目的で以下の表に記載されています。Facility 値は 0 から 23 の範囲でなければなりません (MUST)。
| 数値コード | Facility |
|---|---|
| 0 | kernel messages (カーネルメッセージ) |
| 1 | user-level messages (ユーザーレベルメッセージ) |
| 2 | mail system (メールシステム) |
| 3 | system daemons (システムデーモン) |
| 4 | security/authorization messages (セキュリティ/認証メッセージ) |
| 5 | messages generated internally by syslogd (syslogd が内部で生成したメッセージ) |
| 6 | line printer subsystem (ラインプリンタサブシステム) |
| 7 | network news subsystem (ネットワークニュースサブシステム) |
| 8 | UUCP subsystem (UUCP サブシステム) |
| 9 | clock daemon (クロックデーモン) |
| 10 | security/authorization messages (セキュリティ/認証メッセージ) |
| 11 | FTP daemon (FTP デーモン) |
| 12 | NTP subsystem (NTP サブシステム) |
| 13 | log audit (ログ監査) |
| 14 | log alert (ログアラート) |
| 15 | clock daemon (note 2) (クロックデーモン (注記 2)) |
| 16 | local use 0 (local0) (ローカル使用 0) |
| 17 | local use 1 (local1) (ローカル使用 1) |
| 18 | local use 2 (local2) (ローカル使用 2) |
| 19 | local use 3 (local3) (ローカル使用 3) |
| 20 | local use 4 (local4) (ローカル使用 4) |
| 21 | local use 5 (local5) (ローカル使用 5) |
| 22 | local use 6 (local6) (ローカル使用 6) |
| 23 | local use 7 (local7) (ローカル使用 7) |
表 1. Syslog メッセージの Facility
各メッセージの Priority は 10 進数の Severity レベルインジケーターも持ちます。これらはその数値とともに以下の表に記載されています。Severity 値は 0 から 7 の範囲でなければなりません (MUST)。
| 数値コード | Severity |
|---|---|
| 0 | Emergency: system is unusable (緊急: システムが使用不可) |
| 1 | Alert: action must be taken immediately (警報: 直ちに対処が必要) |
| 2 | Critical: critical conditions (重大: 重大な状態) |
| 3 | Error: error conditions (エラー: エラー状態) |
| 4 | Warning: warning conditions (警告: 警告状態) |
| 5 | Notice: normal but significant condition (通知: 正常だが重要な状態) |
| 6 | Informational: informational messages (情報: 情報メッセージ) |
| 7 | Debug: debug-level messages (デバッグ: デバッグレベルメッセージ) |
表 2. Syslog メッセージの Severity
Priority 値は最初に Facility 番号に 8 を掛け, 次に Severity の数値を加えることによって計算されます。たとえば, Emergency の Severity (Severity=0) を持つカーネルメッセージ (Facility=0) は Priority 値 0 を持ちます。また, Notice の Severity (Severity=5) を持つ "local use 4" メッセージ (Facility=20) は Priority 値 165 を持ちます。syslog メッセージの PRI では, これらの値はそれぞれ <0> と <165> として山括弧の間に配置されます。"<" の後に値 "0" が続くのは Priority 値が "0" の場合のみです。それ以外の場合, 先頭の "0" を使用してはなりません (MUST NOT)。
6.2.2. VERSION (バージョン)
VERSION フィールドは syslog プロトコル仕様のバージョンを示します。バージョン番号は HEADER フォーマットのいずれかの部分を変更する新しい syslog プロトコル仕様に対してインクリメントされなければなりません (MUST)。変更にはフィールドの追加または削除, または既存フィールドの構文または意味の変更が含まれます。この文書は VERSION 値 "1" を使用します。VERSION 値は [RFC5226] で説明されている Standards Action メソッドを介して IANA によって割り当てられます (セクション 9.1)。
6.2.3. TIMESTAMP (タイムスタンプ)
TIMESTAMP フィールドは [RFC3339] から派生した形式化されたタイムスタンプです。[RFC3339] は複数の構文を許容しますが, この文書はさらなる制限を課します。TIMESTAMP 値は以下の制限に従わなければなりません (MUST):
- この構文の "T" と "Z" 文字は大文字でなければなりません (MUST)。
- "T" 文字の使用は必須です (REQUIRED)。
- うるう秒を使用してはなりません (MUST NOT)。
オリジネーターはそのクロックの精度と性能が許す場合, TIME-SECFRAC を含めるべきです (SHOULD)。セクション 7.1 で説明されている "timeQuality" SD-ID により, オリジネーターはタイムスタンプの精度と信頼性を指定できます。
syslog アプリケーションがシステム時刻を取得できない場合, syslog アプリケーションは TIMESTAMP として NILVALUE を使用しなければなりません (MUST)。
6.2.3.1. Examples (例)
例 1
1985-04-12T23:20:50.52Z
これは UTC の 1985 年 4 月 12 日の 23 時から 20 分 50.52 秒後を表します。
例 2
1985-04-12T19:20:50.52-04:00
これは例 1 と同じ時刻を表しますが, 米国東部標準時 (夏時間を観測) で表現されています。
例 3
2003-10-11T22:14:15.003Z
これは 2003 年 10 月 11 日の午後 10 時 14 分 15 秒, 次の秒に 3 ミリ秒入った時点を表します。タイムスタンプは UTC です。タイムスタンプはミリ秒の解像度を提供します。作成者は実際にはより良い解像度を持っていた可能性がありますが, 秒の小数部分に 3 桁だけを提供することは教えてくれません。
例 4
2003-08-24T05:14:15.000003-07:00
これは 2003 年 8 月 24 日の午前 5 時 14 分 15 秒, 次の秒に 3 マイクロ秒入った時点を表します。マイクロ秒の解像度は TIME-SECFRAC の追加の桁によって示されます。タイムスタンプはそのローカル時刻が UTC から -7 時間であることを示しています。このタイムスタンプは夏時間中の米国太平洋タイムゾーンで作成された可能性があります。
例 5 - 無効な TIMESTAMP
2003-08-24T05:14:15.000000003-07:00
この例は例 4 とほぼ同じですが, TIME-SECFRAC をナノ秒で指定しています。これにより TIME-SECFRAC が許可される 6 桁より長くなり, 無効になります。
6.2.4. HOSTNAME (ホスト名)
HOSTNAME フィールドは syslog メッセージを最初に送信したマシンを識別します。
HOSTNAME フィールドは STD 13 [RFC1034] で指定された形式でオリジネーターのホスト名とドメイン名を含むべきです (SHOULD)。この形式はこの文書では Fully Qualified Domain Name (FQDN, 完全修飾ドメイン名) と呼ばれます。
実際には, すべての syslog アプリケーションが FQDN を提供できるわけではありません。そのため, HOSTNAME には他の値も存在してもかまいません (MAY)。この文書はそのような状況で他の値を使用するための規定を行います。syslog アプリケーションは最も具体的な利用可能な値を最初に提供すべきです (SHOULD)。HOSTNAME フィールドの内容の優先順位は次のとおりです:
- FQDN
- 静的 IP アドレス
- ホスト名
- 動的 IP アドレス
- NILVALUE
IPv4 アドレスが使用される場合, STD 13 [RFC1035] で使用されるドット付き 10 進表記の形式でなければなりません (MUST)。IPv6 アドレスが使用される場合, [RFC4291] のセクション 2.2 で説明されている有効なテキスト表現を使用しなければなりません (MUST)。
Syslog アプリケーションは可能な限り長い間 HOSTNAME フィールドに同じ値を一貫して使用すべきです (SHOULD)。
NILVALUE は syslog アプリケーションが実際のホスト名を取得する方法がない場合にのみ使用すべきです (SHOULD)。この状況は非常にまれと考えられます。
6.2.5. APP-NAME (アプリケーション名)
APP-NAME フィールドはメッセージを生成したデバイスまたはアプリケーションを識別すべきです (SHOULD)。これはさらなる意味を持たない文字列です。リレーまたはコレクターでメッセージをフィルタリングすることを目的としています。
syslog アプリケーションがその APP-NAME がわからない場合, またはその情報を提供できない場合, NILVALUE を使用してもかまいません (MAY)。デバイスがローカルポリシーの決定により, または情報が利用できない, またはデバイスに適用できないために, その情報を提供できない場合があります。
このフィールドはオペレーターによって割り当てられてもかまいません (MAY)。
6.2.6. PROCID (プロセス ID)
PROCID はメッセージに含まれる値であり, 相互運用可能な意味を持ちませんが, 値の変更は syslog レポートに不連続性があったことを示します。このフィールドは特定の構文または意味を持ちません。値は実装依存および/またはオペレーターによって割り当てられます。値が提供されない場合, NILVALUE を使用してもかまいません (MAY)。
PROCID フィールドは syslog システムに関連付けられたプロセス名またはプロセス ID を提供するためによく使用されます。プロセス ID が利用できない場合, NILVALUE が使用される可能性があります。オペレーティングシステムのプロセス ID がない組み込みシステムでは, PROCID はリブート ID である可能性があります。
PROCID により, ログアナライザーは syslog プロセス ID の変更を検出することにより, syslog レポートの不連続性を検出できます。ただし, PROCID は再起動されたプロセスの信頼できる識別ではありません。なぜなら, 再起動された syslog プロセスは前の syslog プロセスと同じプロセス ID が割り当てられる可能性があるからです。
PROCID はメッセージのグループに属するメッセージを識別するためにも使用できます。たとえば, SMTP メール転送エージェントはその SMTP トランザクション ID を PROCID に入れることができ, これによりコレクターまたはリレーは SMTP トランザクションに基づいてメッセージをグループ化できます。
6.2.7. MSGID (メッセージ ID)
MSGID はメッセージのタイプを識別すべきです (SHOULD)。たとえば, ファイアウォールは着信 TCP トラフィックに MSGID "TCPIN" を使用し, 発信 TCP トラフィックに MSGID "TCPOUT" を使用する可能性があります。同じ MSGID を持つメッセージは同じ意味のイベントを反映すべきです。MSGID 自体はさらなる意味を持たない文字列です。リレーまたはコレクターでメッセージをフィルタリングすることを目的としています。
syslog アプリケーションが値を提供しない, または提供できない場合, NILVALUE を使用すべきです (SHOULD)。
このフィールドはオペレーターによって割り当てられてもかまいません (MAY)。
6.3. STRUCTURED-DATA (構造化データ)
STRUCTURED-DATA は明確に定義された, 容易に解析可能で解釈可能なデータフォーマットで情報を表現するメカニズムを提供します。複数の使用シナリオがあります。たとえば, syslog メッセージに関するメタ情報またはトラフィックカウンターや IP アドレスなどのアプリケーション固有の情報を表現できます。
STRUCTURED-DATA はゼロ, 1 つ, または複数の構造化データ要素を含むことができ, この文書では "SD-ELEMENT" と呼ばれます。
ゼロの構造化データ要素の場合, STRUCTURED-DATA フィールドは NILVALUE を含まなければなりません (MUST)。
STRUCTURED-DATA で使用される文字セットは [RFC5234] で説明されているように, 8 ビットフィールドの 7 ビット ASCII でなければなりません (MUST)。これらは "USA Standard Code for Information Interchange" [ANSI.X3-4.1968] で定義されている ASCII コードです。例外は PARAM-VALUE フィールド (セクション 6.3.3 を参照) で, UTF-8 エンコーディングを使用しなければなりません (MUST)。
コレクターは不正な形式の STRUCTURED-DATA 要素を無視してもかまいません (MAY)。リレーは不正な形式の STRUCTURED-DATA を変更せずに転送しなければなりません (MUST)。
6.3.1. SD-ELEMENT
SD-ELEMENT は名前とパラメーター名-値ペアで構成されます。名前は SD-ID と呼ばれます。名前-値ペアは "SD-PARAM" と呼ばれます。
6.3.2. SD-ID
SD-ID は大文字と小文字を区別し, SD-ELEMENT のタイプと目的を一意に識別します。同じ SD-ID はメッセージ内に 2 回以上存在してはなりません (MUST NOT)。
SD-ID 名には 2 つの形式があります:
-
アットマーク ("@", ABNF %d64) を含まない名前は BCP26 [RFC5226] で説明されている IETF Review によって割り当てられることが予約されています。現在, これらはセクション 7 で定義された名前です。この形式の名前は最初に IANA に登録された場合にのみ有効です。登録された名前はアットマーク ('@', ABNF %d64), 等号 ('=', ABNF %d61), 閉じ括弧 (']', ABNF %d93), 引用符文字 ('"', ABNF %d34), 空白, または制御文字 (ASCII コード 127 および 32 以下のコード) を含んではなりません (MUST NOT)。
-
誰でも
name@<private enterprise number>の形式の名前を使用して追加の SD-ID を定義できます。例:"ourSDID@32473"。アットマークの前の部分の形式は指定されていませんが, これらの名前は印刷可能な US-ASCII 文字列でなければならず (MUST), アットマーク ('@', ABNF %d64), 等号 ('=', ABNF %d61), 閉じ括弧 (']', ABNF %d93), 引用符文字 ('"', ABNF %d34), 空白, または制御文字を含んではなりません (MUST NOT)。アットマークの後の部分はセクション 7.2.2 で指定されているプライベートエンタープライズ番号でなければなりません (MUST)。この文書全体を通して, すべてのプライベートエンタープライズ番号に値 32473 が使用されていることに注意してください。この値は文書内で例の番号として使用されるために IANA によって予約されています。実装者は enterpriseId パラメーターに独自のプライベートエンタープライズ番号を使用し, ローカルで拡張可能な SD-ID 名を作成する際に使用する必要があります。
6.3.3. SD-PARAM (構造化データパラメーター)
各 SD-PARAM は PARAM-NAME と呼ばれる名前と PARAM-VALUE と呼ばれる値で構成されます。
PARAM-NAME は大文字と小文字を区別します。IANA は名前にアットマークを含む SD-ID 内のものを除き, すべての PARAM-NAME を管理します。PARAM-NAME スコープは特定の SD-ID 内にあります。したがって, 2 つの異なる SD-ID に含まれる同じ名前の PARAM-NAME 値は同じではありません。
国際文字をサポートするために, PARAM-VALUE フィールドは UTF-8 を使用してエンコードされなければなりません (MUST)。syslog アプリケーションは任意の有効な UTF-8 シーケンスを発行してもかまいません (MAY)。syslog アプリケーションは "shortest form" (最短形式) の任意の有効な UTF-8 シーケンスを受け入れなければなりません (MUST)。PARAM-VALUE に制御文字が存在する場合, 失敗してはなりません (MUST NOT)。syslog アプリケーションは制御文字を含むメッセージを変更してもかまいません (MAY) (たとえば, 値 0 (USASCII NUL) のオクテットを 4 文字 "#000" に変更するなど)。UNICODE TR36 [UNICODE-TR36] のセクション 3.1 で概説されている理由により, オリジネーターは "shortest form" でメッセージをエンコードしなければならず (MUST), コレクターまたはリレーは "non-shortest form" (非最短形式) でメッセージを解釈してはなりません (MUST NOT)。
PARAM-VALUE 内では, 文字 '"' (ABNF %d34), '\' (ABNF %d92), および ']' (ABNF %d93) をエスケープしなければなりません (MUST)。これは解析エラーを回避するために必要です。']' のエスケープは厳密には必要ありませんが, syslog アプリケーション実装エラーを回避するためにこの仕様で必須です (REQUIRED)。これらの 3 つの文字のそれぞれは \\", \\\\, および \\] としてエスケープされなければなりません (MUST)。バックスラッシュは, syslog メッセージの他の部分でのエスケープでの使用および従来の syslog での使用との一貫性のために, 制御文字エスケープに使用されます。
説明された 3 つの文字のいずれでもない後に続くバックスラッシュ ('\') は無効なエスケープシーケンスと見なされます。この場合, バックスラッシュは通常のバックスラッシュとして扱われ, 後続の文字は通常の文字として扱われなければなりません (MUST)。したがって, 無効なシーケンスは変更されてはなりません (MUST NOT)。
SD-PARAM は SD-ELEMENT 内で複数回繰り返されてもかまいません (MAY)。
6.3.4. Change Control (変更管理)
SD-ID と PARAM-NAME が定義されると, これらのオブジェクトの構文と意味を変更してはなりません (MUST NOT)。既存の SD-ID または PARAM-NAME への変更が望まれる場合, すでに定義された SD-ID と PARAM-NAME は変更されずに残されなければならず (MUST), 新しいものが作成されなければなりません (MUST)。
6.3.5. Examples (例)
例 1 - 有効な STRUCTURED-DATA
[exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"]
この例では, "exampleSDID@32473" が SD-ID です。"iut", "eventSource", および "eventID" が SD-PARAM 名です。
例 2 - 2 つの構造化データ要素
[exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"][examplePriority@32473 class="high"]
6.4. MSG (メッセージ)
MSG 部分にはイベントに関する情報を提供する自由形式のメッセージが含まれます。MSG で使用される文字セットは [RFC3629] で指定されているように UTF-8 を使用してエンコードされた UNICODE であるべきです (SHOULD)。syslog アプリケーションが MSG を Unicode でエンコードできない場合, 他のエンコーディングを使用してもかまいません (MAY)。
Syslog アプリケーションは MSG で制御文字 (USASCII コード 127 および 32 以下のコード) の使用を避けるべきです (SHOULD)。syslog アプリケーションが制御文字を使用する場合, コレクターまたはリレーでメッセージを解釈できない可能性があります。
MSG 部分のエンコーディングは最初のオクテットによって決定されます。最初のオクテットが ABNF %xEF.BB.BF 値の場合, これは UTF-8 の Unicode バイトオーダーマーク (BOM) です。この場合, MSG は UTF-8 でエンコードされなければならず (MUST), 他の場所に BOM を含んではなりません (MUST NOT)。最初のオクテットが BOM でない場合, エンコーディングは指定されません。
従来の syslog アプリケーションは MSG で印刷可能な USASCII 文字のみを使用しました。この仕様では MSG で制御文字や他のコード値の使用を許可します。ただし, これは表示や一般的なメッセージ処理で問題を引き起こす可能性があるため, syslog アプリケーションは従来の syslog アプリケーションと同じエンコーディング戦略を使用することが推奨されます (RECOMMENDED)。
6.5. Examples (例)
例 1 - BOM, マルチバイト UTF-8, および STRUCTURED-DATA を含む
<165>1 2003-10-11T22:14:15.003Z mymachine.example.com evntslog - ID47 [exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"] BOMAn application event log entry...
この例では, マルチバイト UTF-8 文字は MSG にのみ存在し, ここでの "BOM" は MSG 部分の始まりをマークします。この syslog メッセージのエンコーディングは MSG 部分が ISO 8859-1 として解釈される場合に読み取り可能になるようになっています。ただし, このメッセージは BOM で始まるため, この場合それは適切ではありません。これを考慮すると, 受信者は MSG を UTF-8 エンコードされたテキストとして解釈すべきです (SHOULD)。
例 2 - BOM なし, STRUCTURED-DATA あり
<165>1 2003-08-24T05:14:15.000003-07:00 192.0.2.1 myproc 8710 - - %% It's time to make the do-nuts.
この例は STRUCTURED-DATA がないメッセージを示しています。MSGID と STRUCTURED-DATA フィールドの両方で "-" NILVALUE が使用されています。MSG 自体は自由形式のテキストです。
例 3 - STRUCTURED-DATA を含む
<165>1 2003-10-11T22:14:15.003Z mymachine.example.com evntslog - ID47 [exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"][examplePriority@32473 class="high"]
この例は 2 つの SD-ELEMENT を持ち MSG 部分がないメッセージを示しています。