プロジェクト

全般

プロフィール

Serialisation formとしてのXMLとADL、2段階モデリング

Technical documentation
2012/04/02

元ネタは,"RugsOn":http://www.rugson.org/ から。
Starbacksのオーダーはいろんな飲み物メニューに様々なオプションを追加することができる。
価格やサイズ、そしてオプションについての情報を含めると、構造化したデータでやりとりをする必要がある。

Starbacksでカフェフラペチーノをオーダーしたとすると,オーダー情報は以下のようなXMLデータとして表記されるようなものになる。

<?xml version="1.0" encoding="UTF-8"?>

Grande
Coffee Frapecino
Sep 12, 2011
460

Shot
Extra whip
Hazelnut
Caramel sauce
Chocolate sauce
Chocolate chip

対応するW3Cスキーマはこうなるんじゃないかな。

<?xml version="1.0" encoding="UTF-8"?>


xs:complexType
xs:sequence





/xs:sequence
/xs:complexType
/xs:element





xs:complexType
xs:sequence

/xs:sequence
/xs:complexType
/xs:element



/xs:complexType
/xs:element
/xs:schema

このXMLスキーマをADLでarchetypeとして表現するとこうなる。

archetype
STARBUCKS-ORDER-CLUSTER.starbucks_order.v1
concept
[at0000] -- Starbucks coffee order
language
original_language = <[ISO_639-1::en]>
description
original_author = <
["name"] = <"Starbucks Coffee, ltd">
>
details = <
["en"] = <
language = <[ISO_639-1::en]>
purpose = <"To operate Starbucks orders">
use = <"Record Starbucks order">
misuse = <"Record McDonald order">
copyright = <"">
>
>
lifecycle_state = <"Draft">
other_contributors = <"">
definition
CLUSTER[at0000] matches {
items cardinality matches {1..*; unordered} matches {
ELEMENT[at0001]

ファイル