基本的文法
MMLL では、マシーンや通信、人間に対し軽くするため、 XML ではなく Javascript などで利用される JSON の書式を採用している。
key(属性名) と、それに対する value(値)との組み合わせからなる
key : value
Key は原則として MML のものを使用する
配列は、オブジェクトを [ ] でくくることにより表現される
"色" : ["赤", "黄", "緑"]
" " でくくられた範囲外の空白や改行は、無視される
MML オリジナル以外に MMLL で独自に規定した key もある
MMLL で拡張した部分は 紫色 で示す
(ex) "mmlCm:value"
value は以下のように、オブジェクトの「入れ子構造」として扱える
key には空白で区切ってパラメータをつけることができる
入れ子にした場合 親と同じ nameSpace は省力可
"mmlPsi:PersonalizedInfo" : {
"mmlAd:Address home" : {
"zip" : "142-0012",
"full" : "東京都品川区荏原1-1-1"
}
"mmlPh:Phone" : {
"office" : [ "03-1111-2222", "03-1111-2223" ],
"home" : "03-3333-4444",
"cellPhone" : "090-5555-6666",
}
};
構造化せず次のように羅列することもできるが推奨しない
"mmlPsi:PersonalizedInfo" : {
"mmlAd:zip home" : "142-0012",
"mmlAd:full home" : "東京都品川区荏原1-1-1"
"mmlPh:office" : [ "03-1111-2222", "03-1111-2223" ],
"mmlPh:home" : "03-3333-4444",
"mmlPh:fcellPhone" : "090-5555-6666",
};
送信相手の了解があれば MML のタグを使わず以下のような簡略形をとることも可能
"連絡先":{
"自宅":{
"郵便番号" : "142-0012",
"自宅住所" : "東京都品川区荏原1-1-1"
}
"電話" : {
"職場" : [ "03-1111-2222", "03-1111-2223" ],
"自宅" : "03-3333-4444",
"携帯" : "090-5555-6666",
}
};
MMLL で独自に拡張したもの
key へパラメータの付加
key に "mmlPh:phonel home" のように空白で区切ってパラメータを付加することができる。MML オリジナルのように mmPh:telEquipType で指定するより、記述がコンパクトで視認性も高い。
MMLL で独自に規定した key
"mmlCm:value" のように MMLL で独自に規定した key もある。
カスタマイズした key の使用
"氏名":"大橋 克洋" のように 通常の表現文字 を " " でくくる形もとれる。 ただし、これは送付先の相手との合意のもとに相手に間違いなく理解される必要がある(施設内などローカルな環境で使うのであれば何の支障もない)。
入れ子にした場合、親と同じ nameSpace は省略
"mmlAd:Address home" : {
"zip" : "142-0012",
"full" : "東京都品川区荏原1-1-1"
}
内容が空のオブジェクトの省略
value が null の場合、そのオブジェクトの記述は省略できる。
もちろん、省略不可のオブジェクトを除く。
MmlHeader の省略
MmlHeader は冗長度をかなり増し、必然性が少ないので省略。
その中に含まれる mmlCi:CreatorInfo は独立させて使う。
Update: 2011-03-29