To jest stara wersja strony!
Opis
Maciej Dudek (4AR) md5@o2.pl
ARD
GEF and Eclipse based editor for ARD and XTT. Evaluation, feasibility, prototype.
XTTv2 Editor requirements
input
Eclipse:
EMF, Eclipse → EMF → GMF → GEF
-
output
Feasibility study, a description how to create such editors with GEF, a prototype editor
MS Thesis regarding GEF: Interfejs graficzny do budowy aplikacji komponentowych zapewniający weryfikację semantyczną, ARD+ Editor requirements
Spotkania
080304
Wykonano:
Zapoznanie się z częścią pracy magisterską Macieja Kwietnia i Jana Rachwalika dotyczącą GEF.
Zainstalowanie plug-inu GEF na platformie Eclipse
Uruchomienie przykładowego edytora, stworzenie przykładowego grafu w tym edytorze, przeglądnięcie kodu przykładowego edytora.
-
-
-
Powstałe wątpliwości:
Finalizacja.
Zbiór wszystkich możliwych operacji wykonywanych przez użytkownika.
-
Przestrzeń nazw.
Czy również implementacja drzewa TPH? Na ile bezpieczne w sytuacji cykli, split/merge, manual refactoring.
Liczba korzeni w drzewie, czy istnieje coś takiego jak korzeń?
XSD z opisem ARD+.
Co jak na końcu „liścia” jest Conceptual Attribute? Jaki wpływ na system?
Physical Attribute a XTT.
Attribute a Property. W prologu deklarowane oba.
080318
080415
080429
Planowano:
Zrealizowano:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="hml">
<xs:complexType>
<xs:sequence>
<xs:element ref="type_set"/>
<xs:element ref="attribute_set"/>
<xs:element minOccurs="0" ref="property_set"/>
<xs:element minOccurs="0" ref="tph"/>
<xs:element minOccurs="0" ref="ard"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="type_set">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="type"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="type">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" ref="desc"/>
<xs:element ref="domain"/>
</xs:sequence>
<xs:attribute name="id" use="required" type="xs:ID"/>
<xs:attribute name="name" use="required"/>
<xs:attribute name="base" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="integer"/>
<xs:enumeration value="numeric"/>
<xs:enumeration value="string"/>
<xs:enumeration value="bool"/>
<xs:enumeration value="date"/>
<xs:enumeration value="time"/>
<xs:enumeration value="timestamp"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="length"/>
<xs:attribute name="scale"/>
</xs:complexType>
</xs:element>
<!-- id should begin with 'tpe_...' -->
<xs:element name="desc" type="xs:string"/>
<xs:element name="domain">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="range"/>
<xs:element ref="value"/>
</xs:choice>
<xs:attribute name="type">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="ordered"/>
<xs:enumeration value="unordered"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="range">
<xs:complexType>
<xs:attribute name="from" use="required"/>
<xs:attribute name="to" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="value" type="xs:string"/>
<xs:element name="attribute_set">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="att"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="group"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="att">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" ref="desc"/>
</xs:sequence>
<xs:attribute name="id" use="required" type="xs:ID"/>
<xs:attribute name="type" type="xs:IDREF"/>
<xs:attribute name="name" use="required"/>
<xs:attribute name="abbrev"/>
<xs:attribute name="value" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="single"/>
<xs:enumeration value="multiple"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="class" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="ro"/>
<xs:enumeration value="rw"/>
<xs:enumeration value="wo"/>
<xs:enumeration value="state"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<!-- id should begin with 'att_...' -->
<xs:element name="group">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" ref="desc"/>
<xs:element maxOccurs="unbounded" ref="attref"/>
</xs:sequence>
<xs:attribute name="id" use="required" type="xs:ID"/>
<xs:attribute name="name" use="required"/>
<xs:attribute name="abbrev"/>
</xs:complexType>
</xs:element>
<!-- id should begin with 'grp_...' -->
<xs:element name="attref">
<xs:complexType>
<xs:attribute name="ref" use="required" type="xs:IDREF"/>
</xs:complexType>
</xs:element>
<xs:element name="property_set">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="property"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="property">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="attref"/>
</xs:sequence>
<xs:attribute name="id" use="required" type="xs:ID"/>
</xs:complexType>
</xs:element>
<!-- id should begin with 'prp_...' -->
<xs:element name="tph">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="trans"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="trans">
<xs:complexType>
<xs:attribute name="src" use="required" type="xs:IDREF"/>
<xs:attribute name="dst" use="required" type="xs:IDREF"/>
</xs:complexType>
</xs:element>
<xs:element name="ard">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="dep"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="dep">
<xs:complexType>
<xs:attribute name="independent" use="required" type="xs:IDREF"/>
<xs:attribute name="dependent" use="required" type="xs:IDREF"/>
</xs:complexType>
</xs:element>
</xs:schema>
Dokument hml-test.xml poprawnie przechodzi walidację przy użyciu powyższej definicji. Konwersji dokonano przy użyciu programu Trang.
080527
Projekt
Sprawozdanie
Materiały