5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ZOZOAdvent Calendar 2024

Day 5

ESONについて

Last updated at Posted at 2024-12-04

ESONはEMF Simple Object Notationの略です。
ここで登場しているEMFはEclipse Modeling Frameworkのことで、EMFでモデルを作成するとそれに応じたコードが自動生成されるものです。
ESONはこのEMFモデルをテキストで表現する構文です。

EMFモデルのテキスト表現にはXMI(XML Metadata Interchange)もありますが、ESONはJSONのように人間が読みやすいようです。

例えば、以下のようなxcoreファイルによるモデルがあるときに、

package example

class Library {
    String name
    contains Book[] books
    contains Writer writers
}

class Book {
    String name
    int pages
    BookCategory category
    refers Writer author
}

class Writer {
    String name
}

enum BookCategory {
    None, Mystery, SciFi, Biography
}

それに対応するESONは以下のようになります。

import example.*

Library {
    books: [
        Book {
            name: "Perry Phodan"
            pages: 123
            author: Scheer
            category: :SciFi
        }
    ]
    writers: [
      Writer Scheer {
      }
      Writer ClarkDarlton {
      }
    ]
}

構文

ESONファイルは使用するEPackageを指定するuse文で始まります。
その後はEClassの名前と中括弧が続き、その中に属性が列挙されています。
JSONを読み慣れている人ならば雰囲気である程度読むこともできる程度にJSONに似た構文です。
文字列型はダブルクォートで囲まれており、他のEClassを参照する時にはEClass名のみを記述します。
また列挙型(enum)をの要素を表すためには要素名の前に : が必要がです。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?