/[volute]/trunk/projects/dm/vo-dml/xsd/vo-dml-v1.0.xsd
ViewVC logotype

Diff of /trunk/projects/dm/vo-dml/xsd/vo-dml-v1.0.xsd

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3037 by gerard.lemson, Wed Feb 18 12:16:03 2015 UTC revision 3038 by gerard.lemson, Tue Aug 25 14:27:31 2015 UTC
# Line 82  Line 82 
82        </xsd:restriction>        </xsd:restriction>
83    </xsd:simpleType>    </xsd:simpleType>
84    
85      <xsd:simpleType name="VODMLName">
86        <xsd:annotation>
87          <xsd:documentation>
88            Type used to restrict valid values for prefixes.
89            TBD We could use an xsd:NCName for this.
90          </xsd:documentation>
91        </xsd:annotation>
92        <xsd:restriction base="xsd:string"> <!-- xsd:NCName ? -->
93          <xsd:pattern value="[a-zA-Z_][\w_]*">
94            <xsd:annotation>
95              <xsd:documentation>
96                A model name MUST NOT contain a semicolon.
97              </xsd:documentation>
98            </xsd:annotation>
99          </xsd:pattern>
100        </xsd:restriction>
101      </xsd:simpleType>
102    
103    
104    <xsd:complexType name="ReferableElement" abstract="true">    <xsd:complexType name="ReferableElement" abstract="true">
105      <xsd:annotation>      <xsd:annotation>
106        <xsd:documentation>        <xsd:documentation>
# Line 105  Line 124 
124            </xsd:documentation>            </xsd:documentation>
125          </xsd:annotation>          </xsd:annotation>
126        </xsd:element>        </xsd:element>
127        <xsd:element name="name" minOccurs="1" >        <xsd:element name="name" type="VODMLName" minOccurs="1" >
128          <xsd:annotation>          <xsd:annotation>
129            <xsd:documentation>            <xsd:documentation>
130              The name of the model element.              The name of the model element.
131              MUST NOT be an empty string.              MUST NOT be an empty string.
132            </xsd:documentation>            </xsd:documentation>
133          </xsd:annotation>          </xsd:annotation>
         <xsd:simpleType>  
           <xsd:restriction base="xsd:NCName">  
             <xsd:minLength value="1"/>  
           </xsd:restriction>  
         </xsd:simpleType>  
134        </xsd:element>        </xsd:element>
135        <xsd:element name="description" type="xsd:string" minOccurs="0">        <xsd:element name="description" type="xsd:string" minOccurs="0">
136          <xsd:annotation>          <xsd:annotation>
# Line 661  Line 675 
675      <xsd:complexContent>      <xsd:complexContent>
676        <xsd:extension base="Role">        <xsd:extension base="Role">
677          <xsd:sequence>          <xsd:sequence>
678            <xsd:element name="skosconcept" type="SKOSConcept" minOccurs="0">            <xsd:element name="semanticconcept" type="SemanticConcept" minOccurs="0">
679              <xsd:annotation>              <xsd:annotation>
680                <xsd:documentation>                <xsd:documentation>
681                  It is possible to assign a SKOSConcept to an attribute definition.                  It is possible to assign a SEmanticConcept to an attribute definition.
682                  This means that the values of the attribute have to comply with the definition of the SKOSConcept.                  This means that the values of the attribute have to comply with the definition of the
683                  This can be done in two manners. Either the SKOSConcept                  SemanticConcept.
684                  gives a link to a SKOS vocabulary, in which case the value must be a                  This can be done in two manners. Either the SemanticConcept
685                    gives a link to a semantic vocabulary, in which case the value must be a
686                  concept defined in that vocabulary.                  concept defined in that vocabulary.
687                  Or it defines a broadest SKOS concept, in which case the value must be a SKOS concept that is explicitly                  Or it defines a topConcept, in which case the value must be a  concept that is explicitly
688                  declared to be (narrower than)                  declared to be (narrower than)
689                  that concept, or a concept that is narrower than that concept.                  that concept, or a concept that is narrower than that concept.
690                  The latter definition allows custom SKOS vocabularies to be used.                  FOr details on the interpretation see the VO-DML document.
                 TBD it must be decided HOW the SKOS concept are to be represented as values.  
                 By URI? By preferredLabel/en [??] as  
                 defined in the vocabulary?  
                 Maybe this needs to be part of the SKOSConcept definition.  
691                </xsd:documentation>                </xsd:documentation>
692              </xsd:annotation>              </xsd:annotation>
693            </xsd:element>            </xsd:element>
# Line 687  Line 698 
698    
699    
700    
701    <xsd:complexType name="SKOSConcept">    <xsd:complexType name="SemanticConcept">
702      <xsd:annotation>      <xsd:annotation>
703        <xsd:documentation>        <xsd:documentation>
704          Type used to indicate on attributes that they take values representing a concept defined in          Type used to indicate on attributes that they take values representing a concept defined in
705          an identified SKOS vocabulary, and/or restricted by being narrower than an          an identified semantic vocabulary (SKOS or RDFS), and/or restricted by being narrower/more specific than an
706          identified "broadest" concept.          identified "top" concept.
707        </xsd:documentation>        </xsd:documentation>
708      </xsd:annotation>      </xsd:annotation>
709      <xsd:sequence>      <xsd:sequence>
710        <xsd:element name="broadestSKOSConcept" type="xsd:anyURI" minOccurs="0">        <xsd:element name="topConcept" type="xsd:anyURI" minOccurs="0">
711          <xsd:annotation>          <xsd:annotation>
712            <xsd:documentation>            <xsd:documentation>
713              A URI identifiying a SKOS concept that corresponds to the concept in the model.              A URI identifiying a semntic concept that corresponds to the concept in the model.
714              Values of a corresponding attributes must be URI-s identifiying objects that are narrower              Values of a corresponding attributes must be URI-s identifiying objects that are narrower
715              than the identified concept. This attribute may be null as              than the identified concept. This attribute may be null as
716              certain vocabularies may not have a              certain vocabularies may not have a
# Line 709  Line 720 
720        <xsd:element name="vocabularyURI" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded">        <xsd:element name="vocabularyURI" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded">
721          <xsd:annotation>          <xsd:annotation>
722            <xsd:documentation>            <xsd:documentation>
723              If no broadestSKOSConcept is defined, one or more explicit vocabularies can be provided from which the              If no topConcept is defined, one or more explicit vocabularies can be provided from which the
724              value must be obtained.              value must be obtained.
725            </xsd:documentation>            </xsd:documentation>
726          </xsd:annotation>          </xsd:annotation>
# Line 815  Line 826 
826        </xsd:documentation>        </xsd:documentation>
827      </xsd:annotation>      </xsd:annotation>
828      <xsd:sequence>      <xsd:sequence>
829          <xsd:choice>
830        <xsd:element name="minOccurs" type="xsd:nonNegativeInteger" default="1">        <xsd:element name="minOccurs" type="xsd:nonNegativeInteger" default="1">
831          <xsd:annotation>          <xsd:annotation>
832            <xsd:documentation>            <xsd:documentation>
# Line 822  Line 834 
834            </xsd:documentation>            </xsd:documentation>
835          </xsd:annotation>          </xsd:annotation>
836        </xsd:element>        </xsd:element>
837                            </xsd:choice>
838        <xsd:element name="maxOccurs" type="xsd:int" default="1">        <xsd:element name="maxOccurs" type="xsd:int" default="1">
839          <xsd:annotation>          <xsd:annotation>
840            <xsd:documentation>            <xsd:documentation>
# Line 837  Line 850 
850          <xsd:annotation>          <xsd:annotation>
851        <xsd:documentation>        <xsd:documentation>
852        Constraint represents rules that instances of Type-s must obey to be valid.          Constraint represents rules that instances of Type-s must obey to be valid.  
853        A Constraint is a referable element. Its description element describes the constrait in English.        A Constraint is a referable element. Its description element describes the constraint in English.
854        In future versions of the language extra elements may be added that give a more formal        In future versions of the language extra elements may be added that give a more formal
855        definition of the constraint. In particular we may add expressions in a language        definition of the constraint. In particular we may add expressions in a language
856        such as OCL or subset thereof tuned to VO-DML.        such as OCL or subset thereof tuned to VO-DML.
# Line 848  Line 861 
861      <xsd:extension base="ReferableElement"></xsd:extension>      <xsd:extension base="ReferableElement"></xsd:extension>
862      </xsd:complexContent>      </xsd:complexContent>
863      </xsd:complexType>      </xsd:complexType>
864        
865        
866        <xsd:complexType name="RoleConstraint">
867            <xsd:annotation>
868          <xsd:documentation>
869          Constraint represents rules that instances of Type-s must obey to be valid.  
870          A Constraint is a referable element. Its description element describes the constraint in English.
871          In future versions of the language extra elements may be added that give a more formal
872          definition of the constraint. In particular we may add expressions in a language
873          such as OCL or subset thereof tuned to VO-DML.
874          In terms of OCL, VO-DML COnstraint-s are invariants of a Type.
875          </xsd:documentation>
876        </xsd:annotation>
877        <xsd:complexContent>
878        <xsd:extension base="Constraint">
879          <xsd:sequence>
880            <xsd:element name="constrainedRole" type="ElementRef">
881              <xsd:annotation>
882                <xsd:documentation>
883                VODMLREF identifying the constrained Role.
884                This role MUST be available to the type containing this constraint.
885                </xsd:documentation>
886              </xsd:annotation>
887            </xsd:element>
888            <xsd:element name="subsets" type="ElementRef" minOccurs="0">
889              <xsd:annotation>
890                <xsd:documentation>
891                Pointer to datatype that the constrained Role must take.
892                This datatype MUST be a sub-type of the declared datatype of the constrained Role.
893                </xsd:documentation>
894              </xsd:annotation>
895            </xsd:element>
896            <xsd:element name="semanticconcept" type="SemanticConcept" minOccurs="0">
897              <xsd:annotation>
898                <xsd:documentation>
899                                                    Maybe the super type has not defined a semantic concept for the Role, but
900                                                    the subtype needs that. This attribute allows this assignment. But alse when
901                                                    the Role on the super-type already has a semanticconcept with a topConcept
902                                                    defined on it, the subtype may restrict the values to a narrower concept than
903                                                    that assigned to it on the super-type.            
904                                        </xsd:documentation>
905              </xsd:annotation>
906            </xsd:element>
907          </xsd:sequence>
908        </xsd:extension>
909        </xsd:complexContent>
910        
911        </xsd:complexType>
912    <!--
913    The following, commented-out type definition is a proposal for an alternative way to define subsetting of roles.
914    It allows one to refine certain properties of an inherited role, without requiring a re-definition of the role itself.
915    The latter would lead to extra constraints on this role (e.g. name must not chnage) and a new vodml-id for the inherited role,
916    complicating interpretations, especially of "naive" clients as defined in the mapping document.
917     -->
918     <!--
919      <xsd:complexType name="SubsettingConstraint">
920        <xsd:annotation>
921          <xsd:documentation>
922          Implementation of the UML "subsets" concept as a special type of constraint.
923          </xsd:documentation>
924        </xsd:annotation>
925        <xsd:complexContent>
926        <xsd:extension base="Constraint">
927            <xsd:annotation>
928                    <xsd:documentation>
929                    The inherited description element of a SubsettingConstraint MAY be used to define custom cnstraints on the role.
930                    IF not empty, "self" in the expression now refers to the Role on the instance, NOT the instance itself!
931                        </xsd:documentation>
932            </xsd:annotation>
933        <xsd:sequence>
934          <xsd:element name="overrides" type="VODMLREF" minOccurs="1">
935            <xsd:annotation>
936              <xsd:documentation>
937                Identifies the role that is overridden. MUST identify a role inherited from a super type.
938              </xsd:documentation>
939            </xsd:annotation>
940          </xsd:element>
941          <xsd:element name="datatype" type="VODMLREF" minOccurs="0">
942            <xsd:annotation>
943              <xsd:documentation>
944                IF the subsetting constrains the role to a sub-type of the dattaype of the subseted ROle,
945                This element identifies this subtype. May be null if another feature is overriden.
946              </xsd:documentation>
947            </xsd:annotation>
948          </xsd:element>
949          <xsd:element name="multiplicity" type="Multiplicity" minOccurs="0">
950            <xsd:annotation>
951              <xsd:documentation>
952                IF the subsetting constrains the role to a sub-type of the dattaype of the subseted ROle,
953                This element identifies this subtype. May be null if another feature is overriden.
954              </xsd:documentation>
955            </xsd:annotation>
956          </xsd:element>
957        </xsd:sequence>
958        </xsd:extension>
959        </xsd:complexContent>
960      </xsd:complexType>
961     -->
962    <!-- Begin of element declaration(s) -->    <!-- Begin of element declaration(s) -->
963    <xsd:element name="model" type="Model">    <xsd:element name="model" type="Model">
964      <xsd:annotation>      <xsd:annotation>

Legend:
Removed from v.3037  
changed lines
  Added in v.3038

msdemlei@ari.uni-heidelberg.de
ViewVC Help
Powered by ViewVC 1.1.26