| Home » Modeling » GMF (Graphical Modeling Framework) » mindmap XSD commented
 Goto Forum:| 
| mindmap XSD commented [message #57267] | Thu, 28 September 2006 14:39  |  | 
| Eclipse User  |  |  |  |  | Hi all, 
 I've been wrestling with building my own model in XSD for a while now and
 haven't made much progress. I've come to the realization that my big
 problem is that I dont really know whats going on in XSD (Ive actually
 discussed it with a colleague and hes having the same problem) as it
 related to modeling for GMF.
 
 So Ive gone back to the mindmap tutorial (which works fine) and I want to
 try and understand it. Im hoping that once Ive grasped that Ill be able
 to build my own model. To do this Ive gotten a copy of the diagram of
 mindmap and tried to comment XSD file on what is going on.
 
 What I hope is that people will correct/fill in the rest of the comments
 for the file and eventually the good people at Eclipse will pick it up and
 make it available for all newbies.
 
 As I havent seen many posts up about this kind of stuff Im guessing
 loads of people understand whats going on and could contribute. Please
 refrain from jargon (EReference, EAnnotation, etc), just say in English
 what is happening in the model.  Also a short intro would be good saying
 what midmap does etc.
 
 Yes, I have looked at the mindmap description (most of it anyway), 136
 pages  ftp://www6.software.ibm.com/software/developer/library/ws-bp el.pdf
 Not once is the word topic, an integral part of mindmap, get mentioned
 in the text.
 
 Yes, also looked at XMS Schema to Ecore Mapping, it spells out the syntax
 but doesnt really help with building a model:
 http://www.eclipse.org/emf/docs/overviews/XMLSchemaToEcoreMa pping.pdf
 
 Eclipse guys: a tutorial on how to build a model in XSD would be great.
 Mindmap is just the end product, me (and Im guessing a lot of other
 people) need to know the steps involved in getting there. Explained at
 each step with an XSD file that works with GMF.
 
 Anywho, heres my mindmap.xsd with comments, copy/paste into eclipse for
 editing and then post new text up. I dont expect anyone to do it all, but
 if you add even a small bit itll get done really fast and hopefully help
 people in the future.
 
 Hope this works....
 
 ??? means I dont know whats going on:
 
 <?xml version="1.0" encoding="UTF-8"?>
 <xsd:schema
 targetNamespace="http://www.example.org/mindmap"
 xmlns:mindmap="http://www.example.org/mindmap"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore">
 
 
 <!-- Document root which is map-->
 <xsd:element name="map" type="mindmap:Map"/>
 
 
 <!-- This part is the abstract root of the model, it basically defines all
 elements that can appear in the model, a topic
 , a relatoinship and a resource, there can be as many occurences of these
 as possible, it has an attribute of a title
 The way I look at it all diagrams start off as a blank Map and any of
 these elements can be added to it, the map represents
 the canvas ??? Why is Topic set as root? What if there are more than one
 element that could be identified as root?-->
 <xsd:complexType name="Map">
 <xsd:sequence>
 <xsd:element maxOccurs="unbounded" minOccurs="0" name="rootTopics"
 type="mindmap:Topic"/>
 <xsd:element maxOccurs="unbounded" minOccurs="0" name="relations"
 type="mindmap:Relationship"/>
 <xsd:element maxOccurs="unbounded" minOccurs="0" name="resources"
 type="mindmap:Resource"/>
 </xsd:sequence>
 <xsd:attribute name="title" type="xsd:string"/>
 </xsd:complexType>
 
 
 
 
 
 <!--  ************************************************************ *******
 -->
 <!-- Topic is an element that can be added to the canvas -->
 <xsd:complexType name="Topic">
 
 <!--  Topic contains an element called comments, of type thread (wihtin
 the mindmap schema) ??? What is the purpose of
 comments? What is the purpose of Thread? -->
 <xsd:sequence>
 <xsd:element maxOccurs="unbounded" minOccurs="0" name="comments"
 type="mindmap:Thread"/>
 </xsd:sequence>
 
 <!--  every topic has an attribute of name ??? why is this attribute
 put here and not down with all the
 other attributes, my guesss is that the pointers below relate
 speifically to this attribute?-->
 <xsd:attribute name="name" type="xsd:string"/>
 
 <!--  ecore:reference says topic points to elements of type topic,
 i.e. topics can point to othr topics in a subutoopic
 relation, so you'd put a topic up and can then attach another topic
 to it as a subtopic-->
 <xsd:attribute ecore:reference="mindmap:Topic" name="subtopics">
 <xsd:simpleType>
 <xsd:list itemType="xsd:anyURI"/>
 </xsd:simpleType>
 </xsd:attribute>
 
 <!-- ecore:opposite says topic  points to resource
 ecore:reference:Resource ??? -->
 <xsd:attribute ecore:opposite="topics"
 ecore:reference="mindmap:Resource" name="resources">
 <xsd:simpleType>
 <xsd:list itemType="xsd:anyURI"/>
 </xsd:simpleType>
 </xsd:attribute>
 
 
 <!-- rest of the attributes -->
 <xsd:attribute name="percentComplete" type="xsd:float"/>
 <!-- this attribute is of type priority whaich is defined below -->
 <xsd:attribute name="priority" type="mindmap:Priority"/>
 <xsd:attribute name="startDate" type="xsd:date"/>
 <xsd:attribute name="endDate" type="xsd:date"/>
 <xsd:attribute default="0" name="duration" type="xsd:float"/>
 </xsd:complexType>
 <!--  ************************************************************ *******
 -->
 
 
 
 
 
 
 
 <!-- another type of element that can be added to the canvas is a
 relationship??? presume these are realised just
 as edges on the canvas?
 As I see it relationship is an edge of type dependency, includes or
 extends that can be added to different topics, so
 one topic could be dependent on another topic, or one topic could extend
 another topic, etc where does subtopic fit into this?
 shouldn't this be here as well so you could put up topic A and topic B and
 make a subtopic relation -->
 <xsd:complexType name="Relationship">
 <!-- attribute label of relationship -->
 <xsd:attribute name="label" type="xsd:string"/>
 <!-- relatonship points to topic as both source and target ??? What
 does this mean? -->
 <xsd:attribute ecore:reference="mindmap:Topic" name="source"
 type="xsd:anyURI"/>
 <xsd:attribute ecore:reference="mindmap:Topic" name="target"
 type="xsd:anyURI"/>
 <xsd:attribute name="type" type="mindmap:RelationshipType"/>
 </xsd:complexType>
 <!--  ************************************************************ *******
 -->
 
 
 <!--  Resource can be added to the canvas ??? Right, I presume as it is
 defined in map that resource is another node
 and resources can only be added/attached to topics, they cannot be
 atteached to each other, i.e. Resource linked to Resource -->
 <xsd:complexType name="Resource">
 <xsd:attribute name="name" type="xsd:string"/>
 <xsd:attribute ecore:opposite="resources"
 ecore:reference="mindmap:Topic" name="topics">
 <xsd:simpleType>
 <xsd:list itemType="xsd:anyURI"/>
 </xsd:simpleType>
 </xsd:attribute>
 <xsd:attribute name="email" type="xsd:string"/>
 <xsd:attribute ecore:opposite="author"
 ecore:reference="mindmap:Thread" name="comments">
 <xsd:simpleType>
 <xsd:list itemType="xsd:anyURI"/>
 </xsd:simpleType>
 </xsd:attribute>
 </xsd:complexType>
 
 
 
 
 <!--  ************************************************************ *******
 -->
 <!-- ??? no idea of it's purpose -->
 <xsd:complexType name="Thread">
 <xsd:sequence>
 <xsd:element maxOccurs="unbounded" minOccurs="0" name="items"
 type="mindmap:ThreadItem"/>
 </xsd:sequence>
 <xsd:attribute ecore:opposite="comments"
 ecore:reference="mindmap:Resource" name="author" type="xsd:anyURI"/>
 <xsd:attribute name="subject" type="xsd:string"/>
 <xsd:attribute name="postDate" type="xsd:date"/>
 </xsd:complexType>
 
 
 <!--  ************************************************************ *******
 -->
 <!-- ??? no idea of it's purpose -->
 <xsd:complexType name="ThreadItem">
 <xsd:attribute ecore:reference="mindmap:Resource" name="author"
 type="xsd:anyURI"/>
 <xsd:attribute name="body" type="xsd:string"/>
 <xsd:attribute name="itemPostDate" type="xsd:date"/>
 </xsd:complexType>
 
 
 <!--  ************************************************************ *******
 -->
 <!-- Relation specifies the type of relation that two topics can have,
 wehther or not it is dependency, includes, extends-->
 <xsd:simpleType name="RelationshipType">
 <xsd:restriction base="xsd:string">
 <xsd:enumeration value="DEPENDENCY"/>
 <xsd:enumeration value="INCLUDES"/>
 <xsd:enumeration value="EXTENDS"/>
 </xsd:restriction>
 </xsd:simpleType>
 
 <!-- this states the values that priority can be set to -->
 <xsd:simpleType name="Priority">
 <xsd:restriction base="xsd:string">
 <xsd:enumeration value="ZERO"/>
 <xsd:enumeration value="ONE"/>
 <xsd:enumeration value="TWO"/>
 <xsd:enumeration value="THREE"/>
 <xsd:enumeration value="FOUR"/>
 <xsd:enumeration value="FIVE"/>
 </xsd:restriction>
 </xsd:simpleType>
 
 </xsd:schema>
 |  |  |  |  | 
| Re: mindmap XSD commented [message #57296 is a reply to message #57267] | Thu, 28 September 2006 15:05   |  | 
| Eclipse User  |  |  |  |  | Hi, 
 Well, the mindmap domain model was created just to be a simple example for
 the GMF tutorial, an in fact started out in life as an *.ecore model
 (http://wiki.eclipse.org/index.php/Image:Domain.png).  The really bad news
 here is that it was originally created in such a manner as to work with the
 very earliest stages of GMF tooling (read: it's not ideal ;)
 
 Later on, we (actually, Ed as I recall) used EMF to generate the XSD you
 refer to below.  The notion of threads and thread items correspond to simple
 discussion notes and comments.  They were created only to illustrate the
 compartment features of GMF, as I don't know anyone that would use them in a
 real mindmap.
 
 For the 2.0 update to the tutorial, I was considering redoing this model, or
 switching to BPMN.
 
 For building XSD models, why not use the XSD editor available from EMF/XSD?
 Or, do as I did and forget about XSD itself and just use Ecore and then have
 it generate your XSD?  If you're really interested in understanding how the
 XSD below was produced from Ecore, I'm sure Ed can clue you in... Or, you
 can look at the code, I guess.
 
 Best,
 Rich
 
 
 On 9/28/06 2:39 PM, in article
 460efd715a4d9fedc615a65b293cd595$1@www.eclipse.org, "Gaff"
 <conorgaff@hotmail.com> wrote:
 
 > Hi all,
 >
 > I've been wrestling with building my own model in XSD for a while now and
 > haven't made much progress. I've come to the realization that my big
 > problem is that I don?t really know what?s going on in XSD (I?ve actually
 > discussed it with a colleague and he?s having the same problem) as it
 > related to modeling for GMF.
 >
 > So I?ve gone back to the mindmap tutorial (which works fine) and I want to
 > try and understand it. I?m hoping that once I?ve grasped that I?ll be able
 > to build my own model. To do this I?ve gotten a copy of the diagram of
 > mindmap and tried to comment XSD file on what is going on.
 >
 > What I hope is that people will correct/fill in the rest of the comments
 > for the file and eventually the good people at Eclipse will pick it up and
 > make it available for all newbies.
 >
 > As I haven?t seen many posts up about this kind of stuff I?m guessing
 > loads of people understand what?s going on and could contribute. Please
 > refrain from jargon (EReference, EAnnotation, etc), just say in English
 > what is happening in the model.  Also a short intro would be good saying
 > what midmap does etc.
 >
 > Yes, I have looked at the mindmap description (most of it anyway), 136
 > pages  ftp://www6.software.ibm.com/software/developer/library/ws-bp el.pdf
 > Not once is the word ?topic?, an integral part of mindmap, get mentioned
 > in the text.
 >
 > Yes, also looked at XMS Schema to Ecore Mapping, it spells out the syntax
 > but doesn?t really help with building a model:
 >  http://www.eclipse.org/emf/docs/overviews/XMLSchemaToEcoreMa pping.pdf
 >
 > Eclipse guys: a tutorial on how to build a model in XSD would be great.
 > Mindmap is just the end product, me (and I?m guessing a lot of other
 > people) need to know the steps involved in getting there. Explained at
 > each step with an XSD file that works with GMF.
 >
 > Anywho, here?s my mindmap.xsd with comments, copy/paste into eclipse for
 > editing and then post new text up. I don?t expect anyone to do it all, but
 > if you add even a small bit it?ll get done really fast and hopefully help
 > people in the future.
 >
 > Hope this works....
 >
 > ??? means I don?t know what?s going on:
 >
 > <?xml version="1.0" encoding="UTF-8"?>
 > <xsd:schema
 >     targetNamespace="http://www.example.org/mindmap"
 >     xmlns:mindmap="http://www.example.org/mindmap"
 >     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 >     xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore">
 >
 >
 > <!-- Document root which is map-->
 >   <xsd:element name="map" type="mindmap:Map"/>
 >
 >
 > <!-- This part is the abstract root of the model, it basically defines all
 > elements that can appear in the model, a topic
 > , a relatoinship and a resource, there can be as many occurences of these
 > as possible, it has an attribute of a title
 > The way I look at it all diagrams start off as a blank Map and any of
 > these elements can be added to it, the map represents
 > the canvas ??? Why is Topic set as root? What if there are more than one
 > element that could be identified as root?-->
 >   <xsd:complexType name="Map">
 >     <xsd:sequence>
 >       <xsd:element maxOccurs="unbounded" minOccurs="0" name="rootTopics"
 > type="mindmap:Topic"/>
 >       <xsd:element maxOccurs="unbounded" minOccurs="0" name="relations"
 > type="mindmap:Relationship"/>
 >       <xsd:element maxOccurs="unbounded" minOccurs="0" name="resources"
 > type="mindmap:Resource"/>
 >     </xsd:sequence>
 >     <xsd:attribute name="title" type="xsd:string"/>
 >   </xsd:complexType>
 >
 >
 >
 >
 >
 > <!--  ************************************************************ *******
 > -->
 > <!-- Topic is an element that can be added to the canvas -->
 >   <xsd:complexType name="Topic">
 >
 >   <!--  Topic contains an element called comments, of type thread (wihtin
 > the mindmap schema) ??? What is the purpose of
 >   comments? What is the purpose of Thread? -->
 >     <xsd:sequence>
 >       <xsd:element maxOccurs="unbounded" minOccurs="0" name="comments"
 > type="mindmap:Thread"/>
 >     </xsd:sequence>
 >
 >     <!--  every topic has an attribute of name ??? why is this attribute
 > put here and not down with all the
 >     other attributes, my guesss is that the pointers below relate
 > speifically to this attribute?-->
 >     <xsd:attribute name="name" type="xsd:string"/>
 >
 >     <!--  ecore:reference says topic points to elements of type topic,
 > i.e. topics can point to othr topics in a subutoopic
 >      relation, so you'd put a topic up and can then attach another topic
 > to it as a subtopic-->
 >     <xsd:attribute ecore:reference="mindmap:Topic" name="subtopics">
 >       <xsd:simpleType>
 >         <xsd:list itemType="xsd:anyURI"/>
 >       </xsd:simpleType>
 >     </xsd:attribute>
 >
 >      <!-- ecore:opposite says topic  points to resource
 > ecore:reference:Resource ??? -->
 >     <xsd:attribute ecore:opposite="topics"
 > ecore:reference="mindmap:Resource" name="resources">
 >       <xsd:simpleType>
 >         <xsd:list itemType="xsd:anyURI"/>
 >       </xsd:simpleType>
 >     </xsd:attribute>
 >
 >
 >     <!-- rest of the attributes -->
 >     <xsd:attribute name="percentComplete" type="xsd:float"/>
 >     <!-- this attribute is of type priority whaich is defined below -->
 >     <xsd:attribute name="priority" type="mindmap:Priority"/>
 >     <xsd:attribute name="startDate" type="xsd:date"/>
 >     <xsd:attribute name="endDate" type="xsd:date"/>
 >     <xsd:attribute default="0" name="duration" type="xsd:float"/>
 >   </xsd:complexType>
 > <!--  ************************************************************ *******
 > -->
 >
 >
 >
 >
 >
 >
 >
 > <!-- another type of element that can be added to the canvas is a
 > relationship??? presume these are realised just
 > as edges on the canvas?
 > As I see it relationship is an edge of type dependency, includes or
 > extends that can be added to different topics, so
 > one topic could be dependent on another topic, or one topic could extend
 > another topic, etc where does subtopic fit into this?
 > shouldn't this be here as well so you could put up topic A and topic B and
 > make a subtopic relation -->
 >   <xsd:complexType name="Relationship">
 >   <!-- attribute label of relationship -->
 >     <xsd:attribute name="label" type="xsd:string"/>
 >     <!-- relatonship points to topic as both source and target ??? What
 > does this mean? -->
 >     <xsd:attribute ecore:reference="mindmap:Topic" name="source"
 > type="xsd:anyURI"/>
 >     <xsd:attribute ecore:reference="mindmap:Topic" name="target"
 > type="xsd:anyURI"/>
 >     <xsd:attribute name="type" type="mindmap:RelationshipType"/>
 >   </xsd:complexType>
 >   <!--  ************************************************************ *******
 > -->
 >
 >
 >   <!--  Resource can be added to the canvas ??? Right, I presume as it is
 > defined in map that resource is another node
 >   and resources can only be added/attached to topics, they cannot be
 > atteached to each other, i.e. Resource linked to Resource -->
 >   <xsd:complexType name="Resource">
 >     <xsd:attribute name="name" type="xsd:string"/>
 >     <xsd:attribute ecore:opposite="resources"
 > ecore:reference="mindmap:Topic" name="topics">
 >       <xsd:simpleType>
 >         <xsd:list itemType="xsd:anyURI"/>
 >       </xsd:simpleType>
 >     </xsd:attribute>
 >     <xsd:attribute name="email" type="xsd:string"/>
 >     <xsd:attribute ecore:opposite="author"
 > ecore:reference="mindmap:Thread" name="comments">
 >       <xsd:simpleType>
 >         <xsd:list itemType="xsd:anyURI"/>
 >       </xsd:simpleType>
 >     </xsd:attribute>
 >   </xsd:complexType>
 >
 >
 >
 >
 >   <!--  ************************************************************ *******
 > -->
 > <!-- ??? no idea of it's purpose -->
 >   <xsd:complexType name="Thread">
 >     <xsd:sequence>
 >       <xsd:element maxOccurs="unbounded" minOccurs="0" name="items"
 > type="mindmap:ThreadItem"/>
 >     </xsd:sequence>
 >     <xsd:attribute ecore:opposite="comments"
 > ecore:reference="mindmap:Resource" name="author" type="xsd:anyURI"/>
 >     <xsd:attribute name="subject" type="xsd:string"/>
 >     <xsd:attribute name="postDate" type="xsd:date"/>
 >   </xsd:complexType>
 >
 >
 >   <!--  ************************************************************ *******
 > -->
 > <!-- ??? no idea of it's purpose -->
 >   <xsd:complexType name="ThreadItem">
 >     <xsd:attribute ecore:reference="mindmap:Resource" name="author"
 > type="xsd:anyURI"/>
 >     <xsd:attribute name="body" type="xsd:string"/>
 >     <xsd:attribute name="itemPostDate" type="xsd:date"/>
 >   </xsd:complexType>
 >
 >
 >   <!--  ************************************************************ *******
 > -->
 > <!-- Relation specifies the type of relation that two topics can have,
 > wehther or not it is dependency, includes, extends-->
 >   <xsd:simpleType name="RelationshipType">
 >     <xsd:restriction base="xsd:string">
 >       <xsd:enumeration value="DEPENDENCY"/>
 >       <xsd:enumeration value="INCLUDES"/>
 >       <xsd:enumeration value="EXTENDS"/>
 >     </xsd:restriction>
 >   </xsd:simpleType>
 >
 > <!-- this states the values that priority can be set to -->
 >   <xsd:simpleType name="Priority">
 >     <xsd:restriction base="xsd:string">
 >       <xsd:enumeration value="ZERO"/>
 >       <xsd:enumeration value="ONE"/>
 >       <xsd:enumeration value="TWO"/>
 >       <xsd:enumeration value="THREE"/>
 >       <xsd:enumeration value="FOUR"/>
 >       <xsd:enumeration value="FIVE"/>
 >     </xsd:restriction>
 >   </xsd:simpleType>
 >
 > </xsd:schema>
 >
 >
 >
 |  |  |  |  | 
| Re: mindmap XSD commented [message #57321 is a reply to message #57267] | Thu, 28 September 2006 15:55   |  | 
| Eclipse User  |  |  |  |  | Originally posted by: merks.ca.ibm.com 
 Gaff,
 
 I'm not very familiar with the MindMap model itself and it seems you
 mostly want a description of the intended semantics for this particular
 model, which I can't really provided. If a person isn't familiar with
 XSD, an XSD is probably not a good starting point for creating a model;
 the WTP project has a nice graphical XSD editor. It's probably better to
 start with something familiar and then generate the XSD, if you really
 need one, as Rich suggests. From the Generator menubar item for an open
 ..genmodel or from the popup for a .genmodel, you can invoke Export
 Model...->XML Schema.
 
 
 Gaff wrote:
 > Hi all,
 >
 > I've been wrestling with building my own model in XSD for a while now
 > and haven't made much progress. I've come to the realization that my
 > big problem is that I don�t really know what�s going on in XSD (I�ve
 > actually discussed it with a colleague and he�s having the same
 > problem) as it related to modeling for GMF.
 >
 > So I�ve gone back to the mindmap tutorial (which works fine) and I
 > want to try and understand it. I�m hoping that once I�ve grasped that
 > I�ll be able to build my own model. To do this I�ve gotten a copy of
 > the diagram of mindmap and tried to comment XSD file on what is going on.
 >
 > What I hope is that people will correct/fill in the rest of the
 > comments for the file and eventually the good people at Eclipse will
 > pick it up and make it available for all newbies.
 >
 > As I haven�t seen many posts up about this kind of stuff I�m guessing
 > loads of people understand what�s going on and could contribute.
 > Please refrain from jargon (EReference, EAnnotation, etc), just say in
 > English what is happening in the model. Also a short intro would be
 > good saying what midmap does etc.
 >
 > Yes, I have looked at the mindmap description (most of it anyway), 136
 > pages  ftp://www6.software.ibm.com/software/developer/library/ws-bp el.pdf
 > Not once is the word �topic�, an integral part of mindmap, get
 > mentioned in the text.
 >
 > Yes, also looked at XMS Schema to Ecore Mapping, it spells out the
 > syntax but doesn�t really help with building a model:
 >  http://www.eclipse.org/emf/docs/overviews/XMLSchemaToEcoreMa pping.pdf
 >
 > Eclipse guys: a tutorial on how to build a model in XSD would be
 > great. Mindmap is just the end product, me (and I�m guessing a lot of
 > other people) need to know the steps involved in getting there.
 > Explained at each step with an XSD file that works with GMF.
 >
 > Anywho, here�s my mindmap.xsd with comments, copy/paste into eclipse
 > for editing and then post new text up. I don�t expect anyone to do it
 > all, but if you add even a small bit it�ll get done really fast and
 > hopefully help people in the future.
 >
 > Hope this works....
 >
 > ??? means I don�t know what�s going on:
 >
 > <?xml version="1.0" encoding="UTF-8"?>
 > <xsd:schema targetNamespace="http://www.example.org/mindmap"
 > xmlns:mindmap="http://www.example.org/mindmap"
 > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 > xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore">
 >
 >
 > <!-- Document root which is map-->
 > <xsd:element name="map" type="mindmap:Map"/>
 >
 >
 > <!-- This part is the abstract root of the model, it basically defines
 > all elements that can appear in the model, a topic , a relatoinship
 > and a resource, there can be as many occurences of these as possible,
 > it has an attribute of a title
 > The way I look at it all diagrams start off as a blank Map and any of
 > these elements can be added to it, the map represents the canvas ???
 > Why is Topic set as root? What if there are more than one element that
 > could be identified as root?-->
 > <xsd:complexType name="Map">
 > <xsd:sequence>
 > <xsd:element maxOccurs="unbounded" minOccurs="0" name="rootTopics"
 > type="mindmap:Topic"/>
 > <xsd:element maxOccurs="unbounded" minOccurs="0" name="relations"
 > type="mindmap:Relationship"/>
 > <xsd:element maxOccurs="unbounded" minOccurs="0" name="resources"
 > type="mindmap:Resource"/>
 > </xsd:sequence>
 > <xsd:attribute name="title" type="xsd:string"/>
 > </xsd:complexType>
 >
 >
 >
 >
 >
 > <!--
 >  ************************************************************ ******* -->
 > <!-- Topic is an element that can be added to the canvas -->
 > <xsd:complexType name="Topic">
 >
 > <!-- Topic contains an element called comments, of type thread (wihtin
 > the mindmap schema) ??? What is the purpose of
 > comments? What is the purpose of Thread? -->
 > <xsd:sequence>
 > <xsd:element maxOccurs="unbounded" minOccurs="0" name="comments"
 > type="mindmap:Thread"/>
 > </xsd:sequence>
 > <!-- every topic has an attribute of name ??? why is this attribute
 > put here and not down with all the other attributes, my guesss is that
 > the pointers below relate speifically to this attribute?-->
 > <xsd:attribute name="name" type="xsd:string"/>
 > <!-- ecore:reference says topic points to elements of type topic, i.e.
 > topics can point to othr topics in a subutoopic
 > relation, so you'd put a topic up and can then attach another topic to
 > it as a subtopic-->
 > <xsd:attribute ecore:reference="mindmap:Topic" name="subtopics">
 > <xsd:simpleType>
 > <xsd:list itemType="xsd:anyURI"/>
 > </xsd:simpleType>
 > </xsd:attribute>
 > <!-- ecore:opposite says topic points to resource
 > ecore:reference:Resource ??? --> <xsd:attribute
 > ecore:opposite="topics" ecore:reference="mindmap:Resource"
 > name="resources">
 > <xsd:simpleType>
 > <xsd:list itemType="xsd:anyURI"/>
 > </xsd:simpleType>
 > </xsd:attribute>
 > <!-- rest of the attributes -->
 > <xsd:attribute name="percentComplete" type="xsd:float"/>
 > <!-- this attribute is of type priority whaich is defined below -->
 > <xsd:attribute name="priority" type="mindmap:Priority"/>
 > <xsd:attribute name="startDate" type="xsd:date"/>
 > <xsd:attribute name="endDate" type="xsd:date"/>
 > <xsd:attribute default="0" name="duration" type="xsd:float"/>
 > </xsd:complexType>
 > <!--
 >  ************************************************************ ******* -->
 >
 >
 >
 >
 >
 >
 >
 > <!-- another type of element that can be added to the canvas is a
 > relationship??? presume these are realised just as edges on the canvas?
 > As I see it relationship is an edge of type dependency, includes or
 > extends that can be added to different topics, so one topic could be
 > dependent on another topic, or one topic could extend another topic,
 > etc where does subtopic fit into this?
 > shouldn't this be here as well so you could put up topic A and topic B
 > and make a subtopic relation -->
 > <xsd:complexType name="Relationship">
 > <!-- attribute label of relationship -->
 > <xsd:attribute name="label" type="xsd:string"/>
 > <!-- relatonship points to topic as both source and target ??? What
 > does this mean? -->
 > <xsd:attribute ecore:reference="mindmap:Topic" name="source"
 > type="xsd:anyURI"/>
 > <xsd:attribute ecore:reference="mindmap:Topic" name="target"
 > type="xsd:anyURI"/>
 > <xsd:attribute name="type" type="mindmap:RelationshipType"/>
 > </xsd:complexType>
 > <!--
 >  ************************************************************ ******* -->
 >
 >
 > <!-- Resource can be added to the canvas ??? Right, I presume as it is
 > defined in map that resource is another node
 > and resources can only be added/attached to topics, they cannot be
 > atteached to each other, i.e. Resource linked to Resource -->
 > <xsd:complexType name="Resource">
 > <xsd:attribute name="name" type="xsd:string"/>
 > <xsd:attribute ecore:opposite="resources"
 > ecore:reference="mindmap:Topic" name="topics">
 > <xsd:simpleType>
 > <xsd:list itemType="xsd:anyURI"/>
 > </xsd:simpleType>
 > </xsd:attribute>
 > <xsd:attribute name="email" type="xsd:string"/>
 > <xsd:attribute ecore:opposite="author"
 > ecore:reference="mindmap:Thread" name="comments">
 > <xsd:simpleType>
 > <xsd:list itemType="xsd:anyURI"/>
 > </xsd:simpleType>
 > </xsd:attribute>
 > </xsd:complexType>
 >
 >
 >
 >
 > <!--
 >  ************************************************************ ******* -->
 > <!-- ??? no idea of it's purpose -->
 > <xsd:complexType name="Thread">
 > <xsd:sequence>
 > <xsd:element maxOccurs="unbounded" minOccurs="0" name="items"
 > type="mindmap:ThreadItem"/>
 > </xsd:sequence>
 > <xsd:attribute ecore:opposite="comments"
 > ecore:reference="mindmap:Resource" name="author" type="xsd:anyURI"/>
 > <xsd:attribute name="subject" type="xsd:string"/>
 > <xsd:attribute name="postDate" type="xsd:date"/>
 > </xsd:complexType>
 >
 >
 > <!--
 >  ************************************************************ ******* -->
 > <!-- ??? no idea of it's purpose -->
 > <xsd:complexType name="ThreadItem">
 > <xsd:attribute ecore:reference="mindmap:Resource" name="author"
 > type="xsd:anyURI"/>
 > <xsd:attribute name="body" type="xsd:string"/>
 > <xsd:attribute name="itemPostDate" type="xsd:date"/>
 > </xsd:complexType>
 >
 >
 > <!--
 >  ************************************************************ ******* -->
 > <!-- Relation specifies the type of relation that two topics can have,
 > wehther or not it is dependency, includes, extends-->
 > <xsd:simpleType name="RelationshipType">
 > <xsd:restriction base="xsd:string">
 > <xsd:enumeration value="DEPENDENCY"/>
 > <xsd:enumeration value="INCLUDES"/>
 > <xsd:enumeration value="EXTENDS"/>
 > </xsd:restriction>
 > </xsd:simpleType>
 >
 > <!-- this states the values that priority can be set to -->
 > <xsd:simpleType name="Priority">
 > <xsd:restriction base="xsd:string">
 > <xsd:enumeration value="ZERO"/>
 > <xsd:enumeration value="ONE"/>
 > <xsd:enumeration value="TWO"/>
 > <xsd:enumeration value="THREE"/>
 > <xsd:enumeration value="FOUR"/>
 > <xsd:enumeration value="FIVE"/>
 > </xsd:restriction>
 > </xsd:simpleType>
 >
 > </xsd:schema>
 >
 >
 >
 |  |  |  |  | 
| Re: mindmap XSD commented [message #695386 is a reply to message #57321] | Mon, 11 July 2011 12:12  |  | 
| Eclipse User  |  |  |  |  | Just want to let everyone on this thread know that there is now an open source solution - that automatically makes a Mind map MM model from any XML Schema input. 
 You can find it at the CAMprocessor project on Sourceforge - http www dot cameditor dot org is the direct link.
 
 Basically you ingest your XSD schema into a template - and then export the mind map or UML/XMI.  If you install the Freemind mind map tool - then you can automatically open and view in that.
 
 Enjoy, DW
 |  |  |  | 
 
 
 Current Time: Fri Oct 31 06:59:23 EDT 2025 
 Powered by FUDForum . Page generated in 0.04611 seconds |