The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

XF (eXchange Format) за 15 минут


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова:  (найти похожие документы)
From: Максим Волков (Floyd_Rose) <xfsoft@mail.ru.> Newsgroups: email Date: Mon, 14 Mar 2007 14:31:37 +0000 (UTC) Subject: XF (eXchange Format) за 15 минут XF (eXchange Format) - это новый универсальный, легкий и переносимый формат представления данных в текстовом виде, который легко воспринимается человеком и обрабатывается программами. XF может использоваться для: - разработки форматов и протоколов обмена и хранения данных; - представления данных в виде, понятном для человека; - представления сложных структур данных с возможностью простого расширения. Пример 1: Maxim: person { tel = "444 55 100"; email = "[email protected]"; address = "ул. Березовая, 3"; } Документ XF имеет древовидную структуру, в фигурные скобки { и } заключаются потомки элемента (в данном случае элемента Maxim). Отдельные элементы-потомки разделяются точкой с запятой (;). Потомки одного и того же элемента Знаком равенства отделяются значения элементов (телефон, email, адрес). В кавычки (") с двух сторон заключаются имена и значения элементов, содержащие какие либо символы кроме латинских букв, цифр, подчеркивания (_) и тире (-). Пример 2: "Фигура 1": "квадрат" { x = 100; y = 150; "сторона" = 300; } "Фигура 2": "круг" { x = 200; y = 300; "радиус" = 200; "цвета" { "закрашен" = "да"; "цвет-окружности" = "красный"; "цвет-фона" = "зеленый"; } } В примере описываются два объекта, "Фигура 1" и "Фигура 2". Двоеточием от названия или значения элемента отделяется класс элемента, показывающий, что по сути описывает элемент (в примере, квадрат и круг). Любой элемент может иметь значение и/или класс. Как видно, в названиях элементов, их классах и значениях можно использовать любые интернациональные символы (XF полностью поддерживает Unicode UTF-8 и UTF-16). Пример 3: Parent; Parent { Child; Child; } В этом примере Parent - это один и тот же элемент (имя любого элемента можно использовать неоднократно, но класс и значение одного элемента повторно определять запрещено). То же касается и элементов Child - это один и тот же элемент (поскольку они потомки одного и того же элемента и имеют одинаковое имя), мы просто два раза ссылаемся на элемент. Пример 4: xf version = "1.0"; Из примера видно, что если у элемента всего один потомок, его можно не заключать в фигурные скобки (для лаконичности). Так что вместо записи A { B { C { D } } }; можно написать всего лишь A B C D; Пример 5 My name = "Max"; My surname = "Volkov"; My { address street = "Какая-то улица"; address house = "5"; name = "Ivan"; } В примере мы несколько раз ссылаемся на элемент My, а также на элемент address, что допустимо. Недопустима лишь последняя строка примера - там мы повторно пытаемся определить значение элемента, что недопустимо. Правила использования XF 1. Строковые данные (названия элементов, классы и значения) могут содержать любые символы. Если они содержат что-либо кроме латинских букв, цифр, символов "-" и "_", их необходимо заключить в двойные кавычки (лишние кавычки там где не надо не мешают). В строках вместо кавычки используется знак последовательность \* , а перевод строки (необязательно) можно заменить на \n. XF чувствителен к регистру (cat и Cat - не одно и то же). 2. Элемент может иметь значение и/или класс. Класс отделяется от элемента двоеточием, значение - точкой с запятой. Вот возможные варианты записи элементов: element element = value element : class element = value : class element : class = value 3. Отдельные элементы отделяются друг от друга знаками точкой с запятой. 4. Элемент может иметь потомки, потомки одного элемента не могут иметь совпадающие имена. Потомки заключаются в фигурные скобки. Если мы описываем всего один потомок элемента, фигурные скобки можно не ставить. 5. В XF можно использовать комментарии, игнорируемые программами, обрабатывающими этот формат. Комментарии могут начинаться со звездочки (тогда они длятся до конца текущей строки) либо с сочетания /* (тогда они длятся до первого появления сочетания */ ). Чем полезен XF XF это не язык разметки (в отличие от XML). XF значительно более прост как с точки зрения синтаксиса, так и модели данных. XF может применяться для разработки новых форматов и протоколов, значительно более компактных чем те, что основаны на XML. XF более удобен для ручного редактирования человеком, и достаточно удобен даже без специальных редакторов (например, не требуется каждый раз закрывать тэги как в XML). Модель данных XF значительно проще в реализации и понимании. В отличие от XML DOM, где есть тэги, атрибуты, текст (сложная трехуровневая организация), модель данных XF (XF Data Model, XFDM) представляет собой простое дерево элементов одинаковых по своим свойствам. Так, для представления XFDM в виде реляционной таблицы требуется всего 5 полей (уникальный номер элемента, номер родителя, имя, класс, значение). Модель XFDM более близка к классическому представления данных в программировании - имя, тип (класс), значение. В XFDM легко идентифицировать любой элемент - путь до него в дереве XF всегда однозначно указывает на элемент. XF только начинает свое развитие, только появляется программное обеспечение, его поддерживающее и использующее. XF не стремится быть конкурентом XML, но позволяет решать задачи, для которых он создан - простой и прозрачный обмен данными между программами в виде, понятном для человека.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1.1, LeMen (?), 12:16, 11/05/2007 [ответить]  
  • +/
    ооочень напоминет json )) гг и нах такое нужно если есть xml )
     
  • 1.2, naquad (??), 20:15, 04/06/2007 [ответить]  
  • +/
    где хоть одна линка на парсер или пример реализации? кстати, согласен с LeMen нафиг это надо? да и парсер тут более серьёзный чем у xml будет.
     
  • 1.3, Floyd_Rose (?), 09:14, 02/07/2007 [ответить]  
  • +/
    http://xfsoft.ho.com.ua/?link=xflib

    там парсер, скоро будет более новая версия

     
  • 1.4, Floyd_Rose (?), 01:13, 03/07/2007 [ответить]  
  • +/
    На самом деле XF гораздо проще JSon. Он вообще абстрактен от типов данных, и там нет разделения на массивы и ассоциативные массивы.
     
  • 1.5, Xcoder (?), 16:11, 13/08/2007 [ответить]  
  • +/
    синтаксис кстати удобный, очень даже=) для конфигов Unix имхо в самый раз...
     
  • 1.6, naquad (??), 17:11, 02/10/2007 [ответить]  
  • +/
    откровенно говоря при учёте кол-ва существующих форматов ИМХО надо бы не создавать новые,
    а хотя бы дорабатывать существующие. Изобретение очередного "мега-гига-супер-пупер" формата
    жизнь никому не облегчит, скорее даже усложнит.
     
  • 1.7, naquad (??), 17:15, 02/10/2007 [ответить]  
  • +/
    откровенно говоря при учёте кол-ва существующих форматов ИМХО надо бы не создавать новые,
    а хотя бы дорабатывать существующие. Изобретение очередного "мега-гига-супер-пупер" формата
    жизнь никому не облегчит, скорее даже усложнит.
     
  • 1.8, Artmedio (?), 12:48, 11/11/2007 [ответить]  
  • +/
    Идея классная, хоть и напоминает JSON (правда JSON не умеет например работать с классами). Если будет  хорошая реализация, будет интересно посмотреть.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру