multi level modeling with xml
play

Multi-Level Modeling with XML Dr. Jens Gulden Information Systems - PowerPoint PPT Presentation

5 th International Workshop on Multi-Level Modeling MULTI 2018 Copenhagen, October 16, 2018 Multi-Level Modeling with XML Dr. Jens Gulden Information Systems and Enterprise Modeling, ICB Institute for Computer Science and Business


  1. 5 th International Workshop on Multi-Level Modeling MULTI 2018 – Copenhagen, October 16, 2018 Multi-Level Modeling with XML Dr. Jens Gulden Information Systems and Enterprise Modeling, ICB Institute for Computer Science and Business Information Systems University of Duisburg-Essen, Germany Institut für Informatik und Wirtschaftsinformatik (ICB)

  2. Agenda  State of MLM Tooling Support  Benefits of a Multi-Level XML Format  Research Questions  Requirements and Approach  Prototype Implementation  Related Work  Limitations & Conclusion 2 Jens Gulden | Multi-Level Modeling with XML | 2018-10-16 | Copenhagen

  3. State of MML Tooling Support  Variety of (prototypical) tools  Mixed concepts / homonyms, synonyms  Lack of a standardized representation of multi- level models  Could serve as a means of communication among modeling experts  Collections of multi-level models in central places  Integration of different multi-level modeling tools 3 Jens Gulden | Multi-Level Modeling with XML | 2018-10-16 | Copenhagen

  4. Benefits of a Multi-Level XML Format  XML offers existing language infrastructure  standard syntax  XML Schema Definition (XSD)  query and transformation languages XPath, XSLT  Extension mechanisms are language- inherent  Existing schema validation mechanism  Readable by human experts + suitable as technical exchange format 4 Jens Gulden | Multi-Level Modeling with XML | 2018-10-16 | Copenhagen

  5. Research Questions  Q1: How can XML be extended in a way that both instance and type characteristics can be represented by XML entity elements?  Q2: How can schema validation be adapted to multi-level XML? 5 Jens Gulden | Multi-Level Modeling with XML | 2018-10-16 | Copenhagen

  6. Requirements and Approach Language Design: core idea is to re-use the existing XML type definition technology by lightweight extensions  Req. 1: Combine type definitions and instance entity definitions  Req. 2: Provide multi-level features : abstraction levels, intrinsic features  Req. 3: Design with minimal invasive changes to existing standards  Req. 4: Implement with recursion to existing schema validation 6 Jens Gulden | Multi-Level Modeling with XML | 2018-10-16 | Copenhagen

  7. Syntax Proposal <element { attr N ="..." } [ ml:level="level" ] <element { attr N ="..." } [ ml:level="level" ] [ ml:of="parent" ] [ ml:of="parent" ] [ ml:abstract=" [ true ] " ] > [ ml:abstract=" [ true ] " ] > [ <xsd:complexType> [ <xsd:complexType> ... schema declarations ... ... schema declarations ... </xsd:complexType> ] </xsd:complexType> ] { <child N {attr N ="..."} > ... </child N > } { <child N {attr N ="..."} > ... </child N > } [ text content ] [ text content ] </element> </element> <xsd:complexType> <xsd:complexType> <xsd:sequence> <xsd:sequence> { <xsd:element { attr N ="..." } { <xsd:element { attr N ="..." } [ ml:intrinsic="level" | ml:potency="levels" ] > ... [ ml:intrinsic="level" | ml:potency="levels" ] > ... </xsd:element> } </xsd:element> } </xsd:sequence> </xsd:sequence> { <xsd:attribute { attr N ="..." } { <xsd:attribute { attr N ="..." } [ ml:intrinsic="level" | ml:potency="levels" ] > ... [ ml:intrinsic="level" | ml:potency="levels" ] > ... </xsd:attribute> } </xsd:attribute> } </xsd:complexType> </xsd:complexType> 7 Jens Gulden | Multi-Level Modeling with XML | 2018-10-16 | Copenhagen

  8. <ingredients xmlns:ml= "urn:ml" xmlns:xs= "http://www.w3.org/2001/XMLSchema" > Example <ingredient ml:abstract= "yes" > <xs:complexType> <xs:sequence> <!-- <xs:element ref="name"/> (implicit by language) --> <xs:element name= "tasteDescription" type= "xs:string" ml:potency= "2" /> </xs:sequence> <xs:attribute name= "healthy" type= "xs:boolean" ml:potency= "1" /> </xs:complexType> </ingredient> <vegetarianIngredient ml:of= "ingredient" healthy= "true" > <xs:complexType> <xs:sequence> <xs:attribute name= "healthy" type= "xs:boolean" /> </xs:sequence> </xs:complexType> </vegetarianIngredient> <spice ml:of= "ingredient" > <xs:complexType> <xs:attribute name= "appetizing" type= "xs:boolean" /> <xs:attribute name= "sudatory" type= "xs:boolean" /> <!-- makes you sweat --> <xs:attribute name= "digestive" type= "xs:boolean" /> </xs:complexType> <aMistake>a mistake</aMistake> </spice> <pepper ml:of= "spice" color= "red" > <xs:complexType> <xs:attribute name= "color" type= "pepperColor" /> </xs:complexType> <tasteDescription>very tasty!</tasteDescription> </pepper> <!-- this is a regular level-agnostic auxiliary XML Schema definition --> <xs:simpleType name= "pepperColor" final= "restriction" > <xs:restriction base= "xs:string" > <xs:enumeration value= "green" /> <xs:enumeration value= "black" /> <xs:enumeration value= "white" /> <xs:enumeration value= "red" /> </xs:restriction> </xs:simpleType> <salt ml:of= "spice" > <xs:complexType> <xs:attribute name= "avgLifetime" type= "xs:double" /> </xs:complexType> <tasteDescription>very tasty!</tasteDescription> </salt> 8 <pepper color= "green" /> Jens Gulden | Multi-Level Modeling with XML | 2018-10-16 | Copenhagen </ingredients>

  9. Example (zoomed) <ingredients xmlns:ml= "urn:ml" xmlns:xs= "http://www.w3.org/2001/XMLSchema" > <ingredient ml:abstract= "yes" > <xs:complexType> <xs:sequence> <!-- <xs:element ref="name"/> (implicit by language) --> <xs:element name= "tasteDescription" type= "xs:string" ml:potency= "2" /> </xs:sequence> <xs:attribute name= "healthy" type= "xs:boolean" ml:potency= "1" /> </xs:complexType> </ingredient> <vegetarianIngredient ml:of= "ingredient" healthy= "true" > <xs:complexType> <xs:sequence> <xs:attribute name= "healthy" type= "xs:boolean" /> </xs:sequence> </xs:complexType> </vegetarianIngredient> <spice ml:of= "ingredient" > <xs:complexType> <xs:attribute name= "appetizing" type= "xs:boolean" /> <xs:attribute name= "sudatory" type= "xs:boolean" /> <!-- makes you sweat --> <xs:attribute name= "digestive" type= "xs:boolean" /> </xs:complexType> <aMistake>a mistake</aMistake> </spice> <pepper ml:of= "spice" color= "red" > <xs:complexType> <xs:attribute name= "color" type= "pepperColor" /> </xs:complexType> <tasteDescription>very tasty!</tasteDescription> 9 </pepper> Jens Gulden | Multi-Level Modeling with XML | 2018-10-16 | Copenhagen

  10. Schema Validation  Idea: multi-level document transformed to 2-level XML schema , then run regular validator  → Req. 4 (lightweight, backward-compatible)  Theoretic proof for backward-compatibility  Documents architecture: 10 Jens Gulden | Multi-Level Modeling with XML | 2018-10-16 | Copenhagen

  11. Prototype Implementation .xml .xsl .xsd 1 2 11 Jens Gulden | Multi-Level Modeling with XML | 2018-10-16 | Copenhagen

  12. Prototype Implementation .xml .xsl .xsd 1 ☞ ☞ Source code download: Source code download: 2 https://www.wi-inf.uni-due.de/FGFrank/download/mxml-0.1.0.zip https://www.wi-inf.uni-due.de/FGFrank/download/mxml-0.1.0.zip 12 Jens Gulden | Multi-Level Modeling with XML | 2018-10-16 | Copenhagen

  13. Related Work  MultEcore: .xmi + .ecore  each abstraction level in one Ecore model  extension of Ecore to a multi-level architecture achieved by organizing multiple single-level models  M-Objects’s XML storage format  according to author  MetaDepth: other textual representation  Attention: “multi-level XML document”  sometimes meaning XML document with a nesting depth of children elements greater than one 13 Jens Gulden | Multi-Level Modeling with XML | 2018-10-16 | Copenhagen

  14. Limitations & Conclusion  Only first step, language still is incomplete  Chance for systematic unification of existing approaches  Proof-of-concept for XML-based multi-level exchange format, fulfills requirements.  Future Work:  create meta-model to unify concepts of existing different approaches  write exporters / importers for existing tools as proof-of-concept, e. g., for XModeler 14 Jens Gulden | Multi-Level Modeling with XML | 2018-10-16 | Copenhagen

  15. Thank you Thank you Jens Gulden jens.gulden@uni-due.de 15 Jens Gulden | Multi-Level Modeling with XML | 2018-10-16 | Copenhagen

Recommend


More recommend