View source
From UcgnWiki
for
Complete Semantic Meta-model
Jump to:
navigation
,
search
[[Main Page]] >> [[Semantic Meta-model]] >> Complete Semantic Meta-model ---- <syntaxhighlight enclose="none" lang="xml"> <?xml version="1.0" encoding="UTF-8" ?> <!-- * * www.unifiedcodegeneration.net * Copyright 2007-2010, S. Schaerer, M. Friedrich, M. Momberg, K.Harth * * This file is part of the Unified Code-generation Framework (UCGN) * * UCGN is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * UCGN is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with UCGN. If not, see <http://www.gnu.org/licenses/>. * --> <xsd:schema targetNamespace="http://www.ucgn.net/sem/mdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:smm="http://www.ucgn.net/sem/mdl" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0" ecore:nsPrefix="smm" ecore:name="SemanticMetaModel"> <xsd:annotation> <xsd:appinfo> <jaxb:schemaBindings> <jaxb:package name="net.ucgn.sem.mdl" /> </jaxb:schemaBindings> </xsd:appinfo> </xsd:annotation> <xsd:simpleType name="programmingLanguage"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="c" /> <xsd:enumeration value="java" /> <xsd:enumeration value="ada" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="visibility"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="public" /> <xsd:enumeration value="protected" /> <xsd:enumeration value="private" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="unaryOperator"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="!" /> <xsd:enumeration value="-" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="referenceOperation"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="dereference" /> <xsd:enumeration value="reference" /> <xsd:enumeration value="none" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="binaryOperator"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="/" /> <xsd:enumeration value="*" /> <xsd:enumeration value="+" /> <xsd:enumeration value="-" /> <xsd:enumeration value="==" /> <xsd:enumeration value="<" /> <xsd:enumeration value=">" /> <xsd:enumeration value=">=" /> <xsd:enumeration value="<=" /> <xsd:enumeration value="!=" /> <xsd:enumeration value="|" /> <xsd:enumeration value="&" /> <xsd:enumeration value="||" /> <xsd:enumeration value="&&" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="assignmentOperator"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="=" /> <xsd:enumeration value="/=" /> <xsd:enumeration value="*=" /> <xsd:enumeration value="+=" /> <xsd:enumeration value="-=" /> <xsd:enumeration value="|=" /> <xsd:enumeration value="&=" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="baseTypeEnum"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="uint8" /> <xsd:enumeration value="uint16" /> <xsd:enumeration value="uint32" /> <xsd:enumeration value="uint64" /> <xsd:enumeration value="int8" /> <xsd:enumeration value="int16" /> <xsd:enumeration value="int32" /> <xsd:enumeration value="int64" /> <xsd:enumeration value="float32" /> <xsd:enumeration value="float64" /> <xsd:enumeration value="boolean" /> </xsd:restriction> </xsd:simpleType> <!-- ============================================================== --> <!-- ============================================================== --> <!-- TOP LEVEL --> <xsd:element name="semanticModel" type="smm:semanticModel" /> <!-- ============================================================== --> <!-- ============================================================== --> <xsd:complexType name="semanticModel"> <xsd:sequence> <xsd:element name="baseType" type="smm:baseType" minOccurs="10" maxOccurs="11" /> <xsd:element name="package" type="smm:package" minOccurs="1" maxOccurs="unbounded" /> <xsd:element name="component" type="smm:component" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="component"></xsd:complexType> <xsd:complexType name="package"> <xsd:sequence> <xsd:element name="metaData" type="smm:metaData" minOccurs="0" maxOccurs="1" /> <xsd:element name="package" type="smm:package" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="class" type="smm:class" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="interface" type="smm:interface" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="external" type="xsd:boolean" use="required" /> <xsd:attribute name="id" type="xsd:ID" use="required" /> </xsd:complexType> <xsd:complexType name="class"> <xsd:complexContent> <xsd:extension base="smm:type"> <xsd:sequence> <xsd:element name="implementedInterface" type="smm:implementedInterface" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="type" type="smm:userType" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="attribute" type="smm:topLevelAttribute" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="operation" type="smm:operation" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="opaqueDependency" type="smm:opaqueDependency" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="external" type="xsd:boolean" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="opaqueDependency"> <xsd:attribute name="class" type="xsd:IDREF" use="required" ecore:reference="smm:class"> <xsd:annotation> <xsd:appinfo> <jaxb:property> <jaxb:baseType name="Class"></jaxb:baseType> </jaxb:property> </xsd:appinfo> </xsd:annotation> </xsd:attribute> </xsd:complexType> <!-- ============================================================== --> <!-- ============================================================== --> <xsd:complexType name="type"> <xsd:sequence> <xsd:element name="metaData" type="smm:metaData" minOccurs="0" maxOccurs="1" /> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required" /> </xsd:complexType> <xsd:complexType name="baseType"> <xsd:complexContent> <xsd:extension base="smm:type"> <xsd:attribute name="baseType" type="smm:baseTypeEnum" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="userType" abstract="true"> <xsd:complexContent> <xsd:extension base="smm:type"> <xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="visibility" type="smm:visibility" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="enumeratedType"> <xsd:complexContent> <xsd:extension base="smm:userType"> <xsd:sequence> <xsd:element name="enumerationMember" type="smm:enumerationMember" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="structuredType"> <xsd:complexContent> <xsd:extension base="smm:userType"> <xsd:sequence> <xsd:element name="attribute" type="smm:localAttribute" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="enumerationMember"> <xsd:sequence> <xsd:element name="metaData" type="smm:metaData" minOccurs="0" maxOccurs="1" /> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required" /> <xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="value" type="xsd:int" use="required" /> </xsd:complexType> <xsd:complexType name="operationSignatureType" abstract="true"> <xsd:complexContent> <xsd:extension base="smm:userType"> <xsd:sequence> <xsd:element name="formalParameterInput" type="smm:localAttribute" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="formalParameterOutput" type="smm:localAttribute" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="formalParameterInputOutput" type="smm:localAttribute" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="functionSignatureType"> <xsd:complexContent> <xsd:extension base="smm:operationSignatureType"> <xsd:attribute name="returnType" type="xsd:IDREF" use="required" ecore:reference="smm:type"> <xsd:annotation> <xsd:appinfo> <jaxb:property> <jaxb:baseType name="Type"></jaxb:baseType> </jaxb:property> </xsd:appinfo> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="procedureSignatureType"> <xsd:complexContent> <xsd:extension base="smm:operationSignatureType"> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="abstractAttribute" abstract="true"> <xsd:sequence> <xsd:element name="metaData" type="smm:metaData" minOccurs="0" maxOccurs="1" /> <xsd:element name="dimension" type="smm:dimension" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="initExpression" type="smm:expression" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required" /> <xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="constant" type="xsd:boolean" use="required" /> <xsd:attribute name="reference" type="xsd:boolean" use="required" /> <xsd:attribute name="type" type="xsd:IDREF" use="required" ecore:reference="smm:type"> <xsd:annotation> <xsd:appinfo> <jaxb:property> <jaxb:baseType name="Type" /> </jaxb:property> </xsd:appinfo> </xsd:annotation> </xsd:attribute> </xsd:complexType> <xsd:complexType name="localAttribute"> <xsd:complexContent> <xsd:extension base="smm:abstractAttribute" /> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="topLevelAttribute"> <xsd:complexContent> <xsd:extension base="smm:abstractAttribute"> <xsd:attribute name="instance" type="xsd:boolean" use="required" /> <xsd:attribute name="visibility" type="smm:visibility" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="dimension"> <xsd:attribute name="id" type="xsd:ID" use="required" /> <xsd:attribute name="size" type="xsd:int" use="required" /> </xsd:complexType> <xsd:complexType name="requirement"> <xsd:attribute name="id" type="xsd:string" use="required" /> <xsd:attribute name="comment" type="xsd:string" use="optional" /> </xsd:complexType> <xsd:complexType name="metaData"> <xsd:sequence> <xsd:element name="commentParagraphs" type="xsd:string" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="requirement" type="smm:requirement" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="implementedInterface"> <xsd:attribute name="packageName" type="xsd:string" use="required" /> <xsd:attribute name="interfaceName" type="xsd:string" use="required" /> </xsd:complexType> <xsd:complexType name="interface"> <xsd:sequence> <xsd:element name="metaData" type="smm:metaData" minOccurs="0" maxOccurs="1" /> <xsd:element name="operationDeclaration" type="smm:operationDeclaration" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> <xsd:complexType name="operationDeclaration" abstract="true"> <xsd:sequence> <xsd:element name="metaData" type="smm:metaData" minOccurs="0" maxOccurs="1" /> <xsd:element name="formalParameterInput" type="smm:localAttribute" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="formalParameterOutput" type="smm:localAttribute" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="formalParameterInputOutput" type="smm:localAttribute" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="id" type="xsd:ID" use="required" /> <xsd:attribute name="visibility" type="smm:visibility" use="required" /> <xsd:attribute name="instance" type="xsd:boolean" use="required" /> </xsd:complexType> <xsd:complexType name="functionDeclaration"> <xsd:complexContent> <xsd:extension base="smm:operationDeclaration"> <xsd:attribute name="returnType" type="xsd:IDREF" use="required" ecore:reference="smm:type"> <xsd:annotation> <xsd:appinfo> <jaxb:property> <jaxb:baseType name="Type"></jaxb:baseType> </jaxb:property> </xsd:appinfo> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="procedureDeclaration"> <xsd:complexContent> <xsd:extension base="smm:operationDeclaration"> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="interfaceReference"> <xsd:complexContent> <xsd:extension base="smm:operationDeclaration"> <xsd:attribute name="packageName" type="xsd:string" use="required" /> <xsd:attribute name="interfaceName" type="xsd:string" use="required" /> <xsd:attribute name="operationName" type="xsd:string" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="operation"> <xsd:sequence> <xsd:element name="metaData" type="smm:metaData" minOccurs="0" maxOccurs="1" /> <xsd:element name="operationDeclaration" type="smm:operationDeclaration" minOccurs="0" maxOccurs="1" /> <xsd:element name="compoundStatement" type="smm:compoundStatement" minOccurs="0" maxOccurs="1" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="compoundStatement" abstract="true"> <xsd:sequence> <xsd:element name="metaData" type="smm:metaData" minOccurs="0" maxOccurs="1" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="opaqueCompoundStatement"> <xsd:complexContent> <xsd:extension base="smm:compoundStatement"> <xsd:attribute name="content" type="xsd:string" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="transparentCompoundStatement"> <xsd:complexContent> <xsd:extension base="smm:compoundStatement"> <xsd:sequence> <xsd:element name="attribute" type="smm:localAttribute" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="statement" type="smm:statement" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ******************************************************************************** STATEMENTS ******************************************************************************** --> <xsd:complexType name="statement" abstract="true"> <xsd:sequence> <xsd:element name="metaData" type="smm:metaData" minOccurs="0" maxOccurs="1" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="statementGroup"> <xsd:complexContent> <xsd:extension base="smm:statement"> <xsd:sequence> <xsd:element name="statement" type="smm:statement" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="opaqueStatement"> <xsd:complexContent> <xsd:extension base="smm:statement"> <xsd:attribute name="content" type="xsd:string" use="optional" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="assignment"> <xsd:complexContent> <xsd:extension base="smm:statement"> <xsd:sequence> <xsd:element name="location" type="smm:attributeLocation" minOccurs="1" maxOccurs="1" /> <xsd:element name="expression" type="smm:expression" minOccurs="1" maxOccurs="1" /> </xsd:sequence> <xsd:attribute name="operator" type="smm:assignmentOperator" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="return"> <xsd:complexContent> <xsd:extension base="smm:statement"> <xsd:sequence> <xsd:element name="expression" type="smm:expression" minOccurs="0" maxOccurs="1" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="switch"> <xsd:complexContent> <xsd:extension base="smm:statement"> <xsd:sequence> <xsd:element name="expression" type="smm:expression" minOccurs="1" maxOccurs="1" /> <xsd:element name="case" type="smm:case" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="default" type="smm:default" minOccurs="0" maxOccurs="1" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="case"> <xsd:sequence> <xsd:element name="metaData" type="smm:metaData" minOccurs="0" maxOccurs="1" /> <xsd:element name="expression" type="smm:expression" minOccurs="1" maxOccurs="unbounded" /> <xsd:element name="compoundStatement" type="smm:compoundStatement" minOccurs="0" maxOccurs="1" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="default"> <xsd:sequence> <xsd:element name="metaData" type="smm:metaData" minOccurs="0" maxOccurs="1" /> <xsd:element name="compoundStatement" type="smm:compoundStatement" minOccurs="0" maxOccurs="1" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="for"> <xsd:complexContent> <xsd:extension base="smm:statement"> <xsd:sequence> <xsd:element name="loopVariable" type="smm:attributeLocation" minOccurs="1" maxOccurs="1" /> <xsd:element name="lowValue" type="smm:expression" minOccurs="1" maxOccurs="1" /> <xsd:element name="highValue" type="smm:expression" minOccurs="1" maxOccurs="1" /> <xsd:element name="compoundStatement" type="smm:compoundStatement" minOccurs="0" maxOccurs="1" /> </xsd:sequence> <xsd:attribute name="reverse" type="xsd:boolean" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="while"> <xsd:complexContent> <xsd:extension base="smm:statement"> <xsd:sequence> <xsd:element name="loopCondition" type="smm:expression" minOccurs="1" maxOccurs="1" /> <xsd:element name="compoundStatement" type="smm:compoundStatement" minOccurs="0" maxOccurs="1" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="repeat"> <xsd:complexContent> <xsd:extension base="smm:statement"> <xsd:sequence> <xsd:element name="compoundStatement" type="smm:compoundStatement" minOccurs="0" maxOccurs="1" /> <xsd:element name="loopCondition" type="smm:expression" minOccurs="1" maxOccurs="1" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="ifStatement"> <xsd:complexContent> <xsd:extension base="smm:statement"> <xsd:sequence> <xsd:element name="if" type="smm:if" minOccurs="1" maxOccurs="1" /> <xsd:element name="elseIf" type="smm:elseIf" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="else" type="smm:else" minOccurs="0" maxOccurs="1" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="if"> <xsd:sequence> <xsd:element name="metaData" type="smm:metaData" minOccurs="0" maxOccurs="1" /> <xsd:element name="condition" type="smm:expression" minOccurs="1" maxOccurs="1" /> <xsd:element name="compoundStatement" type="smm:compoundStatement" minOccurs="0" maxOccurs="1" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="elseIf"> <xsd:sequence> <xsd:element name="metaData" type="smm:metaData" minOccurs="0" maxOccurs="1" /> <xsd:element name="condition" type="smm:expression" minOccurs="1" maxOccurs="1" /> <xsd:element name="compoundStatement" type="smm:compoundStatement" minOccurs="0" maxOccurs="1" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="else"> <xsd:sequence> <xsd:element name="metaData" type="smm:metaData" minOccurs="0" maxOccurs="1" /> <xsd:element name="compoundStatement" type="smm:compoundStatement" minOccurs="0" maxOccurs="1" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="procedureCall"> <xsd:complexContent> <xsd:extension base="smm:statement"> <xsd:sequence> <xsd:element name="actualParameterInput" type="smm:expression" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="actualParameterOutput" type="smm:attributeLocation" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="actualParameterInputOutput" type="smm:attributeLocation" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="instance" type="smm:attributeLocation" minOccurs="0" maxOccurs="1" /> </xsd:sequence> <xsd:attribute name="procedureDeclaration" type="xsd:IDREF" use="required" ecore:reference="smm:procedureDeclaration"> <xsd:annotation> <xsd:appinfo> <jaxb:property> <jaxb:baseType name="ProcedureDeclaration" /> </jaxb:property> </xsd:appinfo> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ******************************************************************************** EXPRESSIONS ******************************************************************************** --> <xsd:complexType name="expression" abstract="true"> <xsd:sequence> <xsd:element name="metaData" type="smm:metaData" minOccurs="0" maxOccurs="1" /> </xsd:sequence> <xsd:attribute name="bracket" type="xsd:boolean" use="required" /> </xsd:complexType> <xsd:complexType name="transparentExpression" abstract="true"> <xsd:complexContent> <xsd:extension base="smm:expression" /> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="binaryExpression" abstract="true"> <xsd:complexContent> <xsd:extension base="smm:transparentExpression"> <xsd:sequence> <xsd:element name="leftExpression" type="smm:expression" minOccurs="1" maxOccurs="1" /> <xsd:element name="rightExpression" type="smm:expression" minOccurs="1" maxOccurs="1" /> </xsd:sequence> <xsd:attribute name="operator" type="smm:binaryOperator" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="binaryLogicalExpression"> <xsd:complexContent> <xsd:extension base="smm:binaryExpression" /> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="binaryRelationalExpression"> <xsd:complexContent> <xsd:extension base="smm:binaryExpression" /> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="binaryMultiplicationExpression"> <xsd:complexContent> <xsd:extension base="smm:binaryExpression" /> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="binaryAdditionExpression"> <xsd:complexContent> <xsd:extension base="smm:binaryExpression" /> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="unaryExpression"> <xsd:complexContent> <xsd:extension base="smm:transparentExpression"> <xsd:sequence> <xsd:element name="expression" type="smm:expression" minOccurs="1" maxOccurs="1" /> </xsd:sequence> <xsd:attribute name="operator" type="smm:unaryOperator" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="castedExpression"> <xsd:complexContent> <xsd:extension base="smm:transparentExpression"> <xsd:sequence> <xsd:element name="expression" type="smm:expression" minOccurs="1" maxOccurs="1" /> </xsd:sequence> <xsd:attribute name="reference" type="xsd:boolean" use="required" /> <xsd:attribute name="type" type="xsd:IDREF" use="required" ecore:reference="smm:type"> <xsd:annotation> <xsd:appinfo> <jaxb:property> <jaxb:baseType name="Type" /> </jaxb:property> </xsd:appinfo> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="procedureReference"> <xsd:complexContent> <xsd:extension base="smm:transparentExpression"> <xsd:attribute name="procedureDeclaration" type="xsd:IDREF" use="required" ecore:reference="smm:procedureDeclaration"> <xsd:annotation> <xsd:appinfo> <jaxb:property> <jaxb:baseType name="ProcedureDeclaration" /> </jaxb:property> </xsd:appinfo> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="dimensionReference"> <xsd:complexContent> <xsd:extension base="smm:transparentExpression"> <xsd:attribute name="dimension" type="xsd:IDREF" use="required" ecore:reference="smm:dimension"> <xsd:annotation> <xsd:appinfo> <jaxb:property> <jaxb:baseType name="Dimension" /> </jaxb:property> </xsd:appinfo> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="literal" abstract="true"> <xsd:complexContent> <xsd:extension base="smm:transparentExpression" /> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="float32Literal"> <xsd:complexContent> <xsd:extension base="smm:literal"> <xsd:attribute name="value" type="xsd:float" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="float64Literal"> <xsd:complexContent> <xsd:extension base="smm:literal"> <xsd:attribute name="value" type="xsd:double" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="booleanLiteral"> <xsd:complexContent> <xsd:extension base="smm:literal"> <xsd:attribute name="value" type="xsd:boolean" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="int8Literal"> <xsd:complexContent> <xsd:extension base="smm:literal"> <xsd:attribute name="value" type="xsd:byte" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="int16Literal"> <xsd:complexContent> <xsd:extension base="smm:literal"> <xsd:attribute name="value" type="xsd:short" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="int32Literal"> <xsd:complexContent> <xsd:extension base="smm:literal"> <xsd:attribute name="value" type="xsd:int" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="int64Literal"> <xsd:complexContent> <xsd:extension base="smm:literal"> <xsd:attribute name="value" type="xsd:long" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="uInt8Literal"> <xsd:complexContent> <xsd:extension base="smm:literal"> <xsd:attribute name="value" type="xsd:unsignedByte" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="uInt16Literal"> <xsd:complexContent> <xsd:extension base="smm:literal"> <xsd:attribute name="value" type="xsd:unsignedShort" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="uInt32Literal"> <xsd:complexContent> <xsd:extension base="smm:literal"> <xsd:attribute name="value" type="xsd:unsignedInt" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="uInt64Literal"> <xsd:complexContent> <xsd:extension base="smm:literal"> <xsd:attribute name="value" type="xsd:unsignedLong" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="functionCall"> <xsd:complexContent> <xsd:extension base="smm:transparentExpression"> <xsd:sequence> <xsd:element name="actualParameterInput" type="smm:expression" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="actualParameterOutput" type="smm:attributeLocation" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="actualParameterInputOutput" type="smm:attributeLocation" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="instance" type="smm:attributeLocation" minOccurs="0" maxOccurs="1" /> </xsd:sequence> <xsd:attribute name="functionDeclaration" type="xsd:IDREF" use="required" ecore:reference="smm:functionDeclaration"> <xsd:annotation> <xsd:appinfo> <jaxb:property> <jaxb:baseType name="FunctionDeclaration" /> </jaxb:property> </xsd:appinfo> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="opaqueExpression"> <xsd:complexContent> <xsd:extension base="smm:expression"> <xsd:attribute name="content" type="xsd:string" use="required" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="attributeLocation"> <xsd:complexContent> <xsd:extension base="smm:transparentExpression"> <xsd:sequence> <xsd:element name="attributeLocation" type="smm:attributeLocation" minOccurs="0" maxOccurs="1" /> <xsd:element name="multiplicityQualifier" type="smm:expression" minOccurs="0" maxOccurs="unbounded" /> <xsd:element name="instance" type="smm:attributeLocation" minOccurs="0" maxOccurs="1" /> </xsd:sequence> <xsd:attribute name="attribute" type="xsd:IDREF" use="required" ecore:reference="smm:abstractAttribute"> <xsd:annotation> <xsd:appinfo> <jaxb:property> <jaxb:baseType name="AbstractAttribute" /> </jaxb:property> </xsd:appinfo> </xsd:annotation> </xsd:attribute> <xsd:attribute name="referenceOperation" type="smm:referenceOperation" use="optional" default="none" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="enumerationMemberReference"> <xsd:complexContent> <xsd:extension base="smm:transparentExpression"> <xsd:attribute name="enumerationMember" type="xsd:IDREF" use="required" ecore:reference="smm:enumerationMember"> <xsd:annotation> <xsd:appinfo> <jaxb:property> <jaxb:baseType name="EnumerationMember" /> </jaxb:property> </xsd:appinfo> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:schema> </syntaxhighlight>
Return to
Complete Semantic Meta-model
.
Views
Page
Discussion
View source
History
Personal tools
Log in
Navigation
Main page
Community portal
Current events
Recent changes
Random page
Help
Search
Toolbox
What links here
Related changes
Special pages