This is an automated email from the ASF dual-hosted git repository. danhaywood pushed a commit to branch 2.0.0-M8 in repository https://gitbox.apache.org/repos/asf/isis.git
commit fb189679b9b94581afeaadc76b5337a2966c182c Author: Dan Haywood <[email protected]> AuthorDate: Thu Oct 6 10:31:14 2022 +0100 ISIS-2965 : copying changed schemas in website --- .../supplemental-ui/schema/common/common-2.0.xsd | 476 +++++++------- antora/supplemental-ui/schema/common/common.xsd | 478 +++++++------- .../schema/metamodel/metamodel-2.0.xsd | 691 +++++++++++--------- .../supplemental-ui/schema/metamodel/metamodel.xsd | 693 ++++++++++++--------- 4 files changed, 1270 insertions(+), 1068 deletions(-) diff --git a/antora/supplemental-ui/schema/common/common-2.0.xsd b/antora/supplemental-ui/schema/common/common-2.0.xsd index 356d5ff7b3..b8a7e867b6 100644 --- a/antora/supplemental-ui/schema/common/common-2.0.xsd +++ b/antora/supplemental-ui/schema/common/common-2.0.xsd @@ -1,226 +1,252 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<xs:schema targetNamespace="http://isis.apache.org/schema/common" - elementFormDefault="qualified" - xmlns="http://isis.apache.org/schema/common" - xmlns:xs="http://www.w3.org/2001/XMLSchema"> - - <xs:complexType name="valueDto"> - <xs:choice minOccurs="0" maxOccurs="1"> - <xs:element name="string" type="xs:string"/> - <xs:element name="byte" type="xs:byte"/> - <xs:element name="short" type="xs:short"/> - <xs:element name="int" type="xs:int"/> - <xs:element name="long" type="xs:long"/> - <xs:element name="float" type="xs:float"/> - <xs:element name="double" type="xs:double"/> - <xs:element name="boolean" type="xs:boolean"/> - <xs:element name="char" type="xs:string"/> - <xs:element name="bigInteger" type="xs:integer"/> - <xs:element name="bigDecimal" type="xs:decimal"/> - <!-- java.time --> - <xs:element name="localDate" type="xs:date"/> - <xs:element name="localDateTime" type="xs:dateTime"/> - <xs:element name="localTime" type="xs:time"/> - <xs:element name="offsetTime" type="xs:time"/> - <xs:element name="offsetDateTime" type="xs:dateTime"/> - <xs:element name="zonedDateTime" type="xs:dateTime"/> - <!-- joda --> - <xs:element name="jodaDateTime" type="xs:dateTime"/> - <xs:element name="jodaLocalDate" type="xs:date"/> - <xs:element name="jodaLocalTime" type="xs:time"/> - <xs:element name="jodaLocalDateTime" type="xs:dateTime"/> - <!-- --> - <xs:element name="timestamp" type="xs:dateTime"/> - <xs:element name="enum" type="enumDto"/> - <xs:element name="reference" type="oidDto"/> - <xs:element name="collection" type="collectionDto"/> - <xs:element name="blob" type="blobDto"/> - <xs:element name="clob" type="clobDto"/> - </xs:choice> - </xs:complexType> - - <xs:complexType name="oidDto"> - <xs:attribute name="type" type="xs:string"/> - <xs:attribute name="id" type="xs:string"/> - </xs:complexType> - - <xs:complexType name="collectionDto"> - <xs:annotation> - <xs:documentation>A collection of (argument) values - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="value" type="valueDto" minOccurs="1" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="type" use="required" type="valueType"/> - <xs:attribute name="null" use="optional" type="xs:boolean"/> - </xs:complexType> - - <xs:complexType name="blobDto"> - <xs:annotation> - <xs:documentation>A collection of (argument) values - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="name" type="xs:string"/> - <xs:element name="mimeType" type="xs:string"/> - <xs:element name="bytes" type="xs:hexBinary"/> - </xs:sequence> - </xs:complexType> - - <xs:complexType name="clobDto"> - <xs:annotation> - <xs:documentation>A collection of (argument) values - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="name" type="xs:string"/> - <xs:element name="mimeType" type="xs:string"/> - <xs:element name="chars" type="xs:string"/> - </xs:sequence> - </xs:complexType> - - <xs:complexType name="oidsDto"> - <xs:annotation> - <xs:documentation>A list of OIDs - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="oid" type="oidDto" minOccurs="1" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - - <xs:complexType name="enumDto"> - <xs:sequence> - <xs:element name="enumType" type="xs:string"/> - <xs:element name="enumName" type="xs:string"/> - </xs:sequence> - </xs:complexType> - - - <xs:simpleType name="valueType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="string"/> - <xs:enumeration value="byte"/> - <xs:enumeration value="short"/> - <xs:enumeration value="int"/> - <xs:enumeration value="long"/> - <xs:enumeration value="float"/> - <xs:enumeration value="double"/> - <xs:enumeration value="boolean"/> - <xs:enumeration value="char"/> - <xs:enumeration value="bigInteger"/> - <xs:enumeration value="bigDecimal"/> - <xs:enumeration value="javaSqlTimestamp"/> - <!-- java.time --> - <xs:enumeration value="localDateTime"/> - <xs:enumeration value="localDate"/> - <xs:enumeration value="localTime"/> - <xs:enumeration value="offsetDateTime"/> - <xs:enumeration value="offsetTime"/> - <xs:enumeration value="zonedDateTime"/> - <!-- joda --> - <xs:enumeration value="jodaDateTime"/> - <xs:enumeration value="jodaLocalDate"/> - <xs:enumeration value="jodaLocalTime"/> - <xs:enumeration value="jodaLocalDateTime"/> - <!-- --> - <xs:enumeration value="enum"/> - <xs:enumeration value="reference"/> - <xs:enumeration value="collection"/> - <xs:enumeration value="blob"/> - <xs:enumeration value="clob"/> - <xs:enumeration value="void"> - <xs:annotation> - <xs:documentation>Not valid to be used as the parameter type of an action; can be used as its return type. - </xs:documentation> - </xs:annotation> - </xs:enumeration> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="periodDto"> - <xs:annotation> - <xs:documentation>Captures a period of time, eg for capturing metrics/timings. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="startedAt" type="xs:dateTime"> - <xs:annotation> - <xs:documentation>The point in time that this period of time started. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="completedAt" type="xs:dateTime" minOccurs="0" maxOccurs="1"> - <xs:annotation> - <xs:documentation>The point in time that this period of time completed. The duration is the difference between 'start' and 'complete'. - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> - - <xs:complexType name="differenceDto"> - <xs:annotation> - <xs:documentation>Captures a pair of numbers representing a difference. Used for example to capture metrics (number objects modified before and after). - </xs:documentation> - </xs:annotation> - <xs:sequence> - </xs:sequence> - <xs:attribute name="before" type="xs:int"> - <xs:annotation> - <xs:documentation>The initial quantity. - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="after" type="xs:int"> - <xs:annotation> - <xs:documentation>The final quantity, once known. The difference is therefore the computation of (after - before). - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:complexType> - - <xs:complexType name="valueWithTypeDto"> - <xs:annotation> - <xs:documentation>Captures both a value and its corresponding type. Used for the return value of action invocations, and for the new value in property edits. - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="valueDto"> - <xs:attribute name="type" use="required" type="valueType"/> - <xs:attribute name="null" use="optional" type="xs:boolean"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - - <xs:simpleType name="interactionType" > - <xs:annotation> - <xs:documentation>Whether this interaction with a member is invoking an action, or editing a property.</xs:documentation> - </xs:annotation> - <xs:restriction base="xs:string"> - <xs:enumeration value="action_invocation" /> - <xs:enumeration value="property_edit" /> - </xs:restriction> - </xs:simpleType> - +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<xs:schema targetNamespace="http://isis.apache.org/schema/common" + elementFormDefault="qualified" + xmlns="http://isis.apache.org/schema/common" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + + xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" + xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" + jaxb:extensionBindingPrefixes="xjc" + jaxb:version="1.0"> + + <xs:annotation> + <xs:appinfo> + <jaxb:globalBindings generateIsSetMethod="false"> + <xjc:serializable uid="1"/> + </jaxb:globalBindings> + </xs:appinfo> + </xs:annotation> + + <xs:complexType name="valueDto"> + <xs:choice minOccurs="0" maxOccurs="1"> + <xs:element name="string" type="xs:string"/> + <xs:element name="byte" type="xs:byte"/> + <xs:element name="short" type="xs:short"/> + <xs:element name="int" type="xs:int"/> + <xs:element name="long" type="xs:long"/> + <xs:element name="float" type="xs:float"/> + <xs:element name="double" type="xs:double"/> + <xs:element name="boolean" type="xs:boolean"/> + <xs:element name="char" type="xs:string"/> + <xs:element name="bigInteger" type="xs:integer"/> + <xs:element name="bigDecimal" type="xs:decimal"/> + + <!-- temporal types --> + <xs:element name="localDate" type="xs:date"/> + <xs:element name="localDateTime" type="xs:dateTime"/> + <xs:element name="localTime" type="xs:time"/> + <xs:element name="offsetTime" type="xs:time"/> + <xs:element name="offsetDateTime" type="xs:dateTime"/> + <xs:element name="zonedDateTime" type="xs:dateTime"/> + + <!-- complex types --> <xs:element name="enum" type="enumDto"/> + <xs:element name="reference" type="oidDto"/> + <xs:element name="collection" type="collectionDto"/> + <xs:element name="composite" type="typedTupleDto"/> + <xs:element name="blob" type="blobDto"/> + <xs:element name="clob" type="clobDto"/> + </xs:choice> + </xs:complexType> + + <xs:complexType name="typedTupleDto"> + <xs:annotation> + <xs:documentation>A fixed-size ordered list of named type/value pairs. + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="elements" type="namedValueWithTypeDto" minOccurs="1" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="type" use="required" type="xs:string"/> + <xs:attribute name="cardinality" use="required" type="xs:int"/> + </xs:complexType> + + <xs:complexType name="oidDto"> + <xs:attribute name="type" type="xs:string"/> + <xs:attribute name="id" type="xs:string"/> + </xs:complexType> + + <xs:complexType name="collectionDto"> + <xs:annotation> + <xs:documentation>A collection of (argument) values + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="value" type="valueDto" minOccurs="1" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="type" use="required" type="valueType"/> + <xs:attribute name="null" use="optional" type="xs:boolean"/> + </xs:complexType> + + <xs:complexType name="blobDto"> + <xs:annotation> + <xs:documentation>A collection of (argument) values + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="name" type="xs:string"/> + <xs:element name="mimeType" type="xs:string"/> + <xs:element name="bytes" type="xs:hexBinary"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="clobDto"> + <xs:annotation> + <xs:documentation>A collection of (argument) values + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="name" type="xs:string"/> + <xs:element name="mimeType" type="xs:string"/> + <xs:element name="chars" type="xs:string"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="oidsDto"> + <xs:annotation> + <xs:documentation>A list of OIDs + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="oid" type="oidDto" minOccurs="1" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="enumDto"> + <xs:sequence> + <xs:element name="enumType" type="xs:string"/> + <xs:element name="enumName" type="xs:string"/> + </xs:sequence> + </xs:complexType> + + <xs:simpleType name="valueType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="void"> + <xs:annotation> + <xs:documentation>Not valid to be used as the parameter type of an action; can be used as its return type. + </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="string"/> + <xs:enumeration value="byte"/> + <xs:enumeration value="short"/> + <xs:enumeration value="int"/> + <xs:enumeration value="long"/> + <xs:enumeration value="float"/> + <xs:enumeration value="double"/> + <xs:enumeration value="boolean"/> + <xs:enumeration value="char"/> + <xs:enumeration value="bigInteger"/> + <xs:enumeration value="bigDecimal"/> + <!-- temporal types --> + <xs:enumeration value="localDateTime"/> + <xs:enumeration value="localDate"/> + <xs:enumeration value="localTime"/> + <xs:enumeration value="offsetDateTime"/> + <xs:enumeration value="offsetTime"/> + <xs:enumeration value="zonedDateTime"/> + <!-- complex types --> + <xs:enumeration value="enum"/> + <xs:enumeration value="reference"/> + <xs:enumeration value="collection"/> + <xs:enumeration value="composite"/> + <xs:enumeration value="blob"/> + <xs:enumeration value="clob"/> + </xs:restriction> + </xs:simpleType> + + <xs:complexType name="periodDto"> + <xs:annotation> + <xs:documentation>Captures a period of time, eg for capturing metrics/timings. + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="startedAt" type="xs:dateTime"> + <xs:annotation> + <xs:documentation>The point in time that this period of time started. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="completedAt" type="xs:dateTime" minOccurs="0" maxOccurs="1"> + <xs:annotation> + <xs:documentation>The point in time that this period of time completed. The duration is the difference between 'start' and 'complete'. + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="differenceDto"> + <xs:annotation> + <xs:documentation>Captures a pair of numbers representing a difference. Used for example to capture metrics (number objects modified before and after). + </xs:documentation> + </xs:annotation> + <xs:sequence> + </xs:sequence> + <xs:attribute name="before" type="xs:int"> + <xs:annotation> + <xs:documentation>The initial quantity. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="after" type="xs:int"> + <xs:annotation> + <xs:documentation>The final quantity, once known. The difference is therefore the computation of (after - before). + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + + <xs:complexType name="valueWithTypeDto"> + <xs:annotation> + <xs:documentation>Captures both a value and its corresponding type. Used for the return value of action invocations, and for the new value in property edits. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="valueDto"> + <xs:attribute name="type" use="required" type="valueType"/> + <xs:attribute name="null" use="optional" type="xs:boolean"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="namedValueWithTypeDto"> + <xs:annotation> + <xs:documentation>Defines a named value, a tuple of: name, type and value. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="valueWithTypeDto"> + <xs:attribute name="name" use="required" type="xs:string"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="interactionType" > + <xs:annotation> + <xs:documentation>Whether this interaction with a member is invoking an action, or editing a property.</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="action_invocation" /> + <xs:enumeration value="property_edit" /> + </xs:restriction> + </xs:simpleType> + </xs:schema> \ No newline at end of file diff --git a/antora/supplemental-ui/schema/common/common.xsd b/antora/supplemental-ui/schema/common/common.xsd index b654d0ccf7..b8a7e867b6 100644 --- a/antora/supplemental-ui/schema/common/common.xsd +++ b/antora/supplemental-ui/schema/common/common.xsd @@ -1,226 +1,252 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<xs:schema targetNamespace="http://isis.apache.org/schema/common" - elementFormDefault="qualified" - xmlns="http://isis.apache.org/schema/common" - xmlns:xs="http://www.w3.org/2001/XMLSchema"> - - <xs:complexType name="valueDto"> - <xs:choice minOccurs="0" maxOccurs="1"> - <xs:element name="string" type="xs:string"/> - <xs:element name="byte" type="xs:byte"/> - <xs:element name="short" type="xs:short"/> - <xs:element name="int" type="xs:int"/> - <xs:element name="long" type="xs:long"/> - <xs:element name="float" type="xs:float"/> - <xs:element name="double" type="xs:double"/> - <xs:element name="boolean" type="xs:boolean"/> - <xs:element name="char" type="xs:string"/> - <xs:element name="bigInteger" type="xs:integer"/> - <xs:element name="bigDecimal" type="xs:decimal"/> - <!-- java.time --> - <xs:element name="localDate" type="xs:date"/> - <xs:element name="localDateTime" type="xs:dateTime"/> - <xs:element name="localTime" type="xs:time"/> - <xs:element name="offsetTime" type="xs:time"/> - <xs:element name="offsetDateTime" type="xs:dateTime"/> - <xs:element name="zonedDateTime" type="xs:dateTime"/> - <!-- joda --> - <xs:element name="jodaDateTime" type="xs:dateTime"/> - <xs:element name="jodaLocalDate" type="xs:date"/> - <xs:element name="jodaLocalTime" type="xs:time"/> - <xs:element name="jodaLocalDateTime" type="xs:dateTime"/> - <!-- --> - <xs:element name="timestamp" type="xs:dateTime"/> - <xs:element name="enum" type="enumDto"/> - <xs:element name="reference" type="oidDto"/> - <xs:element name="collection" type="collectionDto"/> - <xs:element name="blob" type="blobDto"/> - <xs:element name="clob" type="clobDto"/> - </xs:choice> - </xs:complexType> - - <xs:complexType name="oidDto"> - <xs:attribute name="type" type="xs:string"/> - <xs:attribute name="id" type="xs:string"/> - </xs:complexType> - - <xs:complexType name="collectionDto"> - <xs:annotation> - <xs:documentation>A collection of (argument) values - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="value" type="valueDto" minOccurs="1" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="type" use="required" type="valueType"/> - <xs:attribute name="null" use="optional" type="xs:boolean"/> - </xs:complexType> - - <xs:complexType name="blobDto"> - <xs:annotation> - <xs:documentation>A collection of (argument) values - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="name" type="xs:string"/> - <xs:element name="mimeType" type="xs:string"/> - <xs:element name="bytes" type="xs:hexBinary"/> - </xs:sequence> - </xs:complexType> - - <xs:complexType name="clobDto"> - <xs:annotation> - <xs:documentation>A collection of (argument) values - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="name" type="xs:string"/> - <xs:element name="mimeType" type="xs:string"/> - <xs:element name="chars" type="xs:string"/> - </xs:sequence> - </xs:complexType> - - <xs:complexType name="oidsDto"> - <xs:annotation> - <xs:documentation>A list of OIDs - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="oid" type="oidDto" minOccurs="1" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - - <xs:complexType name="enumDto"> - <xs:sequence> - <xs:element name="enumType" type="xs:string"/> - <xs:element name="enumName" type="xs:string"/> - </xs:sequence> - </xs:complexType> - - - <xs:simpleType name="valueType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="string"/> - <xs:enumeration value="byte"/> - <xs:enumeration value="short"/> - <xs:enumeration value="int"/> - <xs:enumeration value="long"/> - <xs:enumeration value="float"/> - <xs:enumeration value="double"/> - <xs:enumeration value="boolean"/> - <xs:enumeration value="char"/> - <xs:enumeration value="bigInteger"/> - <xs:enumeration value="bigDecimal"/> - <xs:enumeration value="javaSqlTimestamp"/> - <!-- java.time --> - <xs:enumeration value="localDateTime"/> - <xs:enumeration value="localDate"/> - <xs:enumeration value="localTime"/> - <xs:enumeration value="offsetDateTime"/> - <xs:enumeration value="offsetTime"/> - <xs:enumeration value="zonedDateTime"/> - <!-- joda --> - <xs:enumeration value="jodaDateTime"/> - <xs:enumeration value="jodaLocalDate"/> - <xs:enumeration value="jodaLocalTime"/> - <xs:enumeration value="jodaLocalDateTime"/> - <!-- --> - <xs:enumeration value="enum"/> - <xs:enumeration value="reference"/> - <xs:enumeration value="collection"/> - <xs:enumeration value="blob"/> - <xs:enumeration value="clob"/> - <xs:enumeration value="void"> - <xs:annotation> - <xs:documentation>Not valid to be used as the parameter type of an action; can be used as its return type. - </xs:documentation> - </xs:annotation> - </xs:enumeration> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="periodDto"> - <xs:annotation> - <xs:documentation>Captures a period of time, eg for capturing metrics/timings. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="startedAt" type="xs:dateTime"> - <xs:annotation> - <xs:documentation>The point in time that this period of time started. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="completedAt" type="xs:dateTime" minOccurs="0" maxOccurs="1"> - <xs:annotation> - <xs:documentation>The point in time that this period of time completed. The duration is the difference between 'start' and 'complete'. - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> - - <xs:complexType name="differenceDto"> - <xs:annotation> - <xs:documentation>Captures a pair of numbers representing a difference. Used for example to capture metrics (number objects modified before and after). - </xs:documentation> - </xs:annotation> - <xs:sequence> - </xs:sequence> - <xs:attribute name="before" type="xs:int"> - <xs:annotation> - <xs:documentation>The initial quantity. - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="after" type="xs:int"> - <xs:annotation> - <xs:documentation>The final quantity, once known. The difference is therefore the computation of (after - before). - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:complexType> - - <xs:complexType name="valueWithTypeDto"> - <xs:annotation> - <xs:documentation>Captures both a value and its corresponding type. Used for the return value of action invocations, and for the new value in property edits. - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="valueDto"> - <xs:attribute name="type" use="required" type="valueType"/> - <xs:attribute name="null" use="optional" type="xs:boolean"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - - <xs:simpleType name="interactionType" > - <xs:annotation> - <xs:documentation>Whether this interaction with a member is invoking an action, or editing a property.</xs:documentation> - </xs:annotation> - <xs:restriction base="xs:string"> - <xs:enumeration value="action_invocation" /> - <xs:enumeration value="property_edit" /> - </xs:restriction> - </xs:simpleType> - -</xs:schema> +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<xs:schema targetNamespace="http://isis.apache.org/schema/common" + elementFormDefault="qualified" + xmlns="http://isis.apache.org/schema/common" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + + xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" + xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" + jaxb:extensionBindingPrefixes="xjc" + jaxb:version="1.0"> + + <xs:annotation> + <xs:appinfo> + <jaxb:globalBindings generateIsSetMethod="false"> + <xjc:serializable uid="1"/> + </jaxb:globalBindings> + </xs:appinfo> + </xs:annotation> + + <xs:complexType name="valueDto"> + <xs:choice minOccurs="0" maxOccurs="1"> + <xs:element name="string" type="xs:string"/> + <xs:element name="byte" type="xs:byte"/> + <xs:element name="short" type="xs:short"/> + <xs:element name="int" type="xs:int"/> + <xs:element name="long" type="xs:long"/> + <xs:element name="float" type="xs:float"/> + <xs:element name="double" type="xs:double"/> + <xs:element name="boolean" type="xs:boolean"/> + <xs:element name="char" type="xs:string"/> + <xs:element name="bigInteger" type="xs:integer"/> + <xs:element name="bigDecimal" type="xs:decimal"/> + + <!-- temporal types --> + <xs:element name="localDate" type="xs:date"/> + <xs:element name="localDateTime" type="xs:dateTime"/> + <xs:element name="localTime" type="xs:time"/> + <xs:element name="offsetTime" type="xs:time"/> + <xs:element name="offsetDateTime" type="xs:dateTime"/> + <xs:element name="zonedDateTime" type="xs:dateTime"/> + + <!-- complex types --> <xs:element name="enum" type="enumDto"/> + <xs:element name="reference" type="oidDto"/> + <xs:element name="collection" type="collectionDto"/> + <xs:element name="composite" type="typedTupleDto"/> + <xs:element name="blob" type="blobDto"/> + <xs:element name="clob" type="clobDto"/> + </xs:choice> + </xs:complexType> + + <xs:complexType name="typedTupleDto"> + <xs:annotation> + <xs:documentation>A fixed-size ordered list of named type/value pairs. + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="elements" type="namedValueWithTypeDto" minOccurs="1" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="type" use="required" type="xs:string"/> + <xs:attribute name="cardinality" use="required" type="xs:int"/> + </xs:complexType> + + <xs:complexType name="oidDto"> + <xs:attribute name="type" type="xs:string"/> + <xs:attribute name="id" type="xs:string"/> + </xs:complexType> + + <xs:complexType name="collectionDto"> + <xs:annotation> + <xs:documentation>A collection of (argument) values + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="value" type="valueDto" minOccurs="1" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="type" use="required" type="valueType"/> + <xs:attribute name="null" use="optional" type="xs:boolean"/> + </xs:complexType> + + <xs:complexType name="blobDto"> + <xs:annotation> + <xs:documentation>A collection of (argument) values + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="name" type="xs:string"/> + <xs:element name="mimeType" type="xs:string"/> + <xs:element name="bytes" type="xs:hexBinary"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="clobDto"> + <xs:annotation> + <xs:documentation>A collection of (argument) values + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="name" type="xs:string"/> + <xs:element name="mimeType" type="xs:string"/> + <xs:element name="chars" type="xs:string"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="oidsDto"> + <xs:annotation> + <xs:documentation>A list of OIDs + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="oid" type="oidDto" minOccurs="1" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="enumDto"> + <xs:sequence> + <xs:element name="enumType" type="xs:string"/> + <xs:element name="enumName" type="xs:string"/> + </xs:sequence> + </xs:complexType> + + <xs:simpleType name="valueType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="void"> + <xs:annotation> + <xs:documentation>Not valid to be used as the parameter type of an action; can be used as its return type. + </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="string"/> + <xs:enumeration value="byte"/> + <xs:enumeration value="short"/> + <xs:enumeration value="int"/> + <xs:enumeration value="long"/> + <xs:enumeration value="float"/> + <xs:enumeration value="double"/> + <xs:enumeration value="boolean"/> + <xs:enumeration value="char"/> + <xs:enumeration value="bigInteger"/> + <xs:enumeration value="bigDecimal"/> + <!-- temporal types --> + <xs:enumeration value="localDateTime"/> + <xs:enumeration value="localDate"/> + <xs:enumeration value="localTime"/> + <xs:enumeration value="offsetDateTime"/> + <xs:enumeration value="offsetTime"/> + <xs:enumeration value="zonedDateTime"/> + <!-- complex types --> + <xs:enumeration value="enum"/> + <xs:enumeration value="reference"/> + <xs:enumeration value="collection"/> + <xs:enumeration value="composite"/> + <xs:enumeration value="blob"/> + <xs:enumeration value="clob"/> + </xs:restriction> + </xs:simpleType> + + <xs:complexType name="periodDto"> + <xs:annotation> + <xs:documentation>Captures a period of time, eg for capturing metrics/timings. + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="startedAt" type="xs:dateTime"> + <xs:annotation> + <xs:documentation>The point in time that this period of time started. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="completedAt" type="xs:dateTime" minOccurs="0" maxOccurs="1"> + <xs:annotation> + <xs:documentation>The point in time that this period of time completed. The duration is the difference between 'start' and 'complete'. + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="differenceDto"> + <xs:annotation> + <xs:documentation>Captures a pair of numbers representing a difference. Used for example to capture metrics (number objects modified before and after). + </xs:documentation> + </xs:annotation> + <xs:sequence> + </xs:sequence> + <xs:attribute name="before" type="xs:int"> + <xs:annotation> + <xs:documentation>The initial quantity. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="after" type="xs:int"> + <xs:annotation> + <xs:documentation>The final quantity, once known. The difference is therefore the computation of (after - before). + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + + <xs:complexType name="valueWithTypeDto"> + <xs:annotation> + <xs:documentation>Captures both a value and its corresponding type. Used for the return value of action invocations, and for the new value in property edits. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="valueDto"> + <xs:attribute name="type" use="required" type="valueType"/> + <xs:attribute name="null" use="optional" type="xs:boolean"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="namedValueWithTypeDto"> + <xs:annotation> + <xs:documentation>Defines a named value, a tuple of: name, type and value. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="valueWithTypeDto"> + <xs:attribute name="name" use="required" type="xs:string"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="interactionType" > + <xs:annotation> + <xs:documentation>Whether this interaction with a member is invoking an action, or editing a property.</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="action_invocation" /> + <xs:enumeration value="property_edit" /> + </xs:restriction> + </xs:simpleType> + +</xs:schema> \ No newline at end of file diff --git a/antora/supplemental-ui/schema/metamodel/metamodel-2.0.xsd b/antora/supplemental-ui/schema/metamodel/metamodel-2.0.xsd index b5d37b71da..9aa2afd29a 100644 --- a/antora/supplemental-ui/schema/metamodel/metamodel-2.0.xsd +++ b/antora/supplemental-ui/schema/metamodel/metamodel-2.0.xsd @@ -1,311 +1,386 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<xs:schema targetNamespace="http://isis.apache.org/schema/metamodel" - elementFormDefault="qualified" - xmlns="http://isis.apache.org/schema/metamodel" - xmlns:xs="http://www.w3.org/2001/XMLSchema"> - - <xs:element name="metamodelDto"> - <xs:complexType> - <xs:sequence minOccurs="1" maxOccurs="unbounded"> - <xs:element ref="domainClassDto"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="domainClassDto"> - <xs:complexType> - <xs:annotation> - <xs:documentation>Represents a domain class. - Corresponds to ObjectSpecification in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="facetHolder"> - <xs:sequence> - <xs:element name="majorVersion" type="xs:string" minOccurs="0" maxOccurs="1" default="2"> - <xs:annotation> - <xs:documentation>The major version of the schema that an XML instance was created using. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="minorVersion" type="xs:string" minOccurs="0" maxOccurs="1" default="0"> - <xs:annotation> - <xs:documentation>The minor version of the schema that an XML instance was created using. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="properties" minOccurs="0"> - <xs:annotation> - <xs:documentation>The properties, if any, of this domain class. This will include any mixin properties. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="prop" type="property" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element name="collections" minOccurs="0"> - <xs:annotation> - <xs:documentation>The collections, if any, of this domain class. This will include any mixin collections. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="coll" type="collection" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element name="actions" minOccurs="0"> - <xs:annotation> - <xs:documentation>The actions, if any, of this domain class. This will include any mixin actions. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="act" type="action" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - </xs:element> - </xs:sequence> - <xs:attribute name="id" type="xs:ID"> - <xs:annotation> - <xs:documentation>The fully qualified class name of the underlying Java class. - This is declared as 'xs:ID' so can be referenced elsewhere (using 'xs:IDREF') - - In the internal metamodel, corresponds to ObjectSpecification#getFullIdentifier() - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="service" type="xs:boolean"> - <xs:annotation> - <xs:documentation>Whether this is a domain service</xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:complexContent> - </xs:complexType> - </xs:element> - - - <xs:complexType name="member"> +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<xs:schema targetNamespace="http://isis.apache.org/schema/metamodel" + elementFormDefault="qualified" + xmlns="http://isis.apache.org/schema/metamodel" + xmlns:xs="http://www.w3.org/2001/XMLSchema"> + + <xs:element name="metamodelDto"> + <xs:complexType> + <xs:sequence minOccurs="1" maxOccurs="unbounded"> + <xs:element ref="domainClassDto"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="domainClassDto"> + <xs:complexType> + <xs:annotation> + <xs:documentation>Represents a domain class. + Corresponds to ObjectSpecification in the internal metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="facetHolder"> + <xs:sequence> + <xs:element name="majorVersion" type="xs:string" minOccurs="0" maxOccurs="1" default="2"> + <xs:annotation> + <xs:documentation>The major version of the schema that an XML instance was created using. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="minorVersion" type="xs:string" minOccurs="0" maxOccurs="1" default="0"> + <xs:annotation> + <xs:documentation>The minor version of the schema that an XML instance was created using. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="properties" minOccurs="0"> + <xs:annotation> + <xs:documentation>The properties, if any, of this domain class. This will include any mixin properties. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="prop" type="property" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="collections" minOccurs="0"> + <xs:annotation> + <xs:documentation>The collections, if any, of this domain class. This will include any mixin collections. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="coll" type="collection" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="actions" minOccurs="0"> + <xs:annotation> + <xs:documentation>The actions, if any, of this domain class. This will include any mixin actions. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="act" type="action" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:ID"> + <xs:annotation> + <xs:documentation>The fully qualified class name of the underlying Java class. + This is declared as 'xs:ID' so can be referenced elsewhere (using 'xs:IDREF') + + In the internal metamodel, corresponds to ObjectSpecification#getFullIdentifier() + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="service" type="xs:boolean"> + <xs:annotation> + <xs:documentation>Whether this is a domain service</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + + + <xs:complexType name="member"> + <xs:annotation> + <xs:documentation> + Represents a member of a class (property, collection or + action). Corresponds to ObjectMember in the internal + metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="facetHolder"> + <xs:attribute name="id" type="xs:string"> + <xs:annotation> + <xs:documentation> + The id of the member, which should be unique + within the domain class. NB: this assumes no + overloading of method names. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="mixedIn" type="xs:boolean" use="required"> + <xs:annotation> + <xs:documentation> + Whether the member (action, property or collection) is mixed in. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="property"> + <xs:annotation> + <xs:documentation>Represents a property of a domain class. + Corresponds to OneToOneAssociation in the internal metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="member"> + <xs:sequence> + <xs:element name="type" type="xs:IDREF"> + <xs:annotation> + <xs:documentation>A (reference to ) the type of this property, eg a String or a Customer. + Corresponds to OneToOneAssociation#getSpecification() in the internal metamodel. + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="collection"> + <xs:annotation> + <xs:documentation>Represents a collection of a domain class. + Corresponds to OneToManyAssociation in the internal metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="member"> + <xs:sequence> + <xs:element name="type" type="xs:IDREF"> + <xs:annotation> + <xs:documentation>A (reference to ) the _element_ type of this collection, eg a String or a Customer. + Corresponds to OneToOneAssociation#getSpecification() in the internal metamodel. + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="action"> + <xs:annotation> + <xs:documentation>Represents an action of a domain class. + Corresponds to ObjectAction in the internal metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="member"> + <xs:sequence> + <xs:element name="returnType" type="xs:IDREF"> + <xs:annotation> + <xs:documentation>A (reference to) the return type of this action, eg a String or a Customer. + Corresponds to ObjectAction#getReturnType() in the internal metamodel. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="params"> + <xs:complexType> + <xs:sequence> + <xs:element name="param" type="param" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="param"> + <xs:annotation> + <xs:documentation>Represents the parameter of an action + Corresponds to ObjectActionParameter in the internal metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="facetHolder"> + <xs:sequence> + <xs:element name="type" type="xs:IDREF"> + <xs:annotation> + <xs:documentation>(A reference to) the type of this action parameter, eg a String or a Customer. + For vector parameters, this is the element types of the collection parameter. + Corresponds to ObjectActionParameter#getSpecification() in the internal metamodel. + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:string"> + <xs:annotation> + <xs:documentation>The id of the parameter, which should be unique within the action. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="scalarParam"> + <xs:annotation> + <xs:documentation>Represents a parameter of an action + Corresponds to OneToOneActionParameter in the internal metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="param"> + <xs:sequence> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="vectorParam"> + <xs:annotation> + <xs:documentation>Represents a multi-valued parameter of an action + Corresponds to OneToManyActionParameter in the internal metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="param"> + <xs:sequence> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="facetHolder"> + <xs:annotation> + <xs:documentation> + Corresponds to FacetHolder interface in the internal metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="metamodelElement"> + <xs:sequence> + <xs:element name="facets" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="facet" type="facet" minOccurs="0" + maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="facet"> + <xs:annotation> + <xs:documentation> + Describes a facet of the metamodel, for example whether + an action can be disabled, or the name of a class. + Corresponds to Facet interface in the internal + metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="metamodelElement"> + <xs:sequence> + <xs:element name="attr" type="facetAttr" minOccurs="0" + maxOccurs="unbounded" /> </xs:sequence> + <xs:attribute name="id" type="xs:string"> + <xs:annotation> + <xs:documentation> + The facet type (fqcn) that is common to a set of + concrete facet implementations. These ids are + usually known to the framework for there well + defined semantics within the programming model. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="fqcn" type="xs:string" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="facetAttr"> + <xs:annotation> + <xs:documentation> + Describes an attribute of a facet of the metamodel, as a + simple key/value pair of strings (the key is modelled as + an attribute of the value). + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="metamodelElement"> + <xs:attribute name="name" type="xs:string"> + <xs:annotation> + <xs:documentation> + The name of the attribute, unique across all + facet attributes of a facet. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="value" type="xs:string"> + <xs:annotation> + <xs:documentation> + The value of the attribute. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="annotation"> + <xs:annotation> + <xs:documentation>Not part of the metamodel. Enables export tools to add arbitrary meta data. + </xs:documentation> + </xs:annotation> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:annotation> + <xs:documentation>The value of the annotation. + </xs:documentation> + </xs:annotation> + <xs:attribute name="name" type="xs:string"> + <xs:annotation> + <xs:documentation>The name annotation. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + + <xs:complexType name="metamodelElement"> <xs:annotation> - <xs:documentation>Represents a member of a class (property, collection or action). - Corresponds to ObjectMember in the internal metamodel. - </xs:documentation> + <xs:documentation>Common ancestor of facet and facetHolder.</xs:documentation> </xs:annotation> - <xs:complexContent> - <xs:extension base="facetHolder"> - <xs:attribute name="id" type="xs:string"> - <xs:annotation> - <xs:documentation>The id of the member, which should be unique within the domain class. - NB: this assumes no overloading of method names. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="property"> - <xs:annotation> - <xs:documentation>Represents a property of a domain class. - Corresponds to OneToOneAssociation in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="member"> - <xs:sequence> - <xs:element name="type" type="xs:IDREF"> - <xs:annotation> - <xs:documentation>A (reference to ) the type of this property, eg a String or a Customer. - Corresponds to OneToOneAssociation#getSpecification() in the internal metamodel. - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="collection"> - <xs:annotation> - <xs:documentation>Represents a collection of a domain class. - Corresponds to OneToManyAssociation in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="member"> - <xs:sequence> - <xs:element name="type" type="xs:IDREF"> - <xs:annotation> - <xs:documentation>A (reference to ) the _element_ type of this collection, eg a String or a Customer. - Corresponds to OneToOneAssociation#getSpecification() in the internal metamodel. - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="action"> - <xs:annotation> - <xs:documentation>Represents an action of a domain class. - Corresponds to ObjectAction in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="member"> - <xs:sequence> - <xs:element name="returnType" type="xs:IDREF"> - <xs:annotation> - <xs:documentation>A (reference to) the return type of this action, eg a String or a Customer. - Corresponds to ObjectAction#getReturnType() in the internal metamodel. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="params"> - <xs:complexType> - <xs:sequence> - <xs:element name="param" type="param" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="param"> - <xs:annotation> - <xs:documentation>Represents the parameter of an action - Corresponds to ObjectActionParameter in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="facetHolder"> - <xs:sequence> - <xs:element name="type" type="xs:IDREF"> - <xs:annotation> - <xs:documentation>(A reference to) the type of this action parameter, eg a String or a Customer. - For vector parameters, this is the element types of the collection parameter. - Corresponds to ObjectActionParameter#getSpecification() in the internal metamodel. - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - <xs:attribute name="id" type="xs:string"> - <xs:annotation> - <xs:documentation>The id of the parameter, which should be unique within the action. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="scalarParam"> - <xs:annotation> - <xs:documentation>Represents a parameter of an action - Corresponds to OneToOneActionParameter in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="param"> - <xs:sequence> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="vectorParam"> - <xs:annotation> - <xs:documentation>Represents a multi-valued parameter of an action - Corresponds to OneToManyActionParameter in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="param"> - <xs:sequence> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="facetHolder"> - <xs:annotation> - <xs:documentation>Corresponds to FacetHolder interface in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="facets" minOccurs="0"> - <xs:complexType> - <xs:sequence> - <xs:element name="facet" type="facet" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - - <xs:complexType name="facet"> - <xs:annotation> - <xs:documentation>Describes a facet of the metamodel, for example whether an action can be disabled, or the name of a class. - Corresponds to Facet interface in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="attr" type="facetAttr" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="id" type="xs:string"> - <xs:annotation> - <xs:documentation>The facet type (fqcn) that is common to a set of concrete - facet implementations. These ids are usually known to the framework for - there well defined semantics within the programming model. - </xs:documentation> - </xs:annotation></xs:attribute> - <xs:attribute name="fqcn" type="xs:string"/> - </xs:complexType> - - <xs:complexType name="facetAttr"> - <xs:annotation> - <xs:documentation>Describes an attribute of a facet of the metamodel, as a simple key/value pair of strings (the key is modelled as an attribute of the value). - </xs:documentation> - </xs:annotation> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:annotation> - <xs:documentation>The value of the attribute, unique across all facet attributes of a facet. - </xs:documentation> - </xs:annotation> - <xs:attribute name="name" type="xs:string"> - <xs:annotation> - <xs:documentation>The name of the attribute, unique across all facet attributes of a facet. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - - + <xs:sequence> + <xs:element name="annotations" minOccurs="0"> + <xs:annotation> + <xs:documentation>Not part of the metamodel. Enables export tools + to add arbitrary meta data.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="asList" type="annotation" + minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:schema> \ No newline at end of file diff --git a/antora/supplemental-ui/schema/metamodel/metamodel.xsd b/antora/supplemental-ui/schema/metamodel/metamodel.xsd index 035bfe5db4..9aa2afd29a 100644 --- a/antora/supplemental-ui/schema/metamodel/metamodel.xsd +++ b/antora/supplemental-ui/schema/metamodel/metamodel.xsd @@ -1,311 +1,386 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<xs:schema targetNamespace="http://isis.apache.org/schema/metamodel" - elementFormDefault="qualified" - xmlns="http://isis.apache.org/schema/metamodel" - xmlns:xs="http://www.w3.org/2001/XMLSchema"> - - <xs:element name="metamodelDto"> - <xs:complexType> - <xs:sequence minOccurs="1" maxOccurs="unbounded"> - <xs:element ref="domainClassDto"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="domainClassDto"> - <xs:complexType> - <xs:annotation> - <xs:documentation>Represents a domain class. - Corresponds to ObjectSpecification in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="facetHolder"> - <xs:sequence> - <xs:element name="majorVersion" type="xs:string" minOccurs="0" maxOccurs="1" default="2"> - <xs:annotation> - <xs:documentation>The major version of the schema that an XML instance was created using. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="minorVersion" type="xs:string" minOccurs="0" maxOccurs="1" default="0"> - <xs:annotation> - <xs:documentation>The minor version of the schema that an XML instance was created using. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="properties" minOccurs="0"> - <xs:annotation> - <xs:documentation>The properties, if any, of this domain class. This will include any mixin properties. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="prop" type="property" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element name="collections" minOccurs="0"> - <xs:annotation> - <xs:documentation>The collections, if any, of this domain class. This will include any mixin collections. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="coll" type="collection" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element name="actions" minOccurs="0"> - <xs:annotation> - <xs:documentation>The actions, if any, of this domain class. This will include any mixin actions. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="act" type="action" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - </xs:element> - </xs:sequence> - <xs:attribute name="id" type="xs:ID"> - <xs:annotation> - <xs:documentation>The fully qualified class name of the underlying Java class. - This is declared as 'xs:ID' so can be referenced elsewhere (using 'xs:IDREF') - - In the internal metamodel, corresponds to ObjectSpecification#getFullIdentifier() - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="service" type="xs:boolean"> - <xs:annotation> - <xs:documentation>Whether this is a domain service</xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:complexContent> - </xs:complexType> - </xs:element> - - - <xs:complexType name="member"> +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<xs:schema targetNamespace="http://isis.apache.org/schema/metamodel" + elementFormDefault="qualified" + xmlns="http://isis.apache.org/schema/metamodel" + xmlns:xs="http://www.w3.org/2001/XMLSchema"> + + <xs:element name="metamodelDto"> + <xs:complexType> + <xs:sequence minOccurs="1" maxOccurs="unbounded"> + <xs:element ref="domainClassDto"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="domainClassDto"> + <xs:complexType> + <xs:annotation> + <xs:documentation>Represents a domain class. + Corresponds to ObjectSpecification in the internal metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="facetHolder"> + <xs:sequence> + <xs:element name="majorVersion" type="xs:string" minOccurs="0" maxOccurs="1" default="2"> + <xs:annotation> + <xs:documentation>The major version of the schema that an XML instance was created using. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="minorVersion" type="xs:string" minOccurs="0" maxOccurs="1" default="0"> + <xs:annotation> + <xs:documentation>The minor version of the schema that an XML instance was created using. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="properties" minOccurs="0"> + <xs:annotation> + <xs:documentation>The properties, if any, of this domain class. This will include any mixin properties. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="prop" type="property" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="collections" minOccurs="0"> + <xs:annotation> + <xs:documentation>The collections, if any, of this domain class. This will include any mixin collections. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="coll" type="collection" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="actions" minOccurs="0"> + <xs:annotation> + <xs:documentation>The actions, if any, of this domain class. This will include any mixin actions. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="act" type="action" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:ID"> + <xs:annotation> + <xs:documentation>The fully qualified class name of the underlying Java class. + This is declared as 'xs:ID' so can be referenced elsewhere (using 'xs:IDREF') + + In the internal metamodel, corresponds to ObjectSpecification#getFullIdentifier() + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="service" type="xs:boolean"> + <xs:annotation> + <xs:documentation>Whether this is a domain service</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + + + <xs:complexType name="member"> + <xs:annotation> + <xs:documentation> + Represents a member of a class (property, collection or + action). Corresponds to ObjectMember in the internal + metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="facetHolder"> + <xs:attribute name="id" type="xs:string"> + <xs:annotation> + <xs:documentation> + The id of the member, which should be unique + within the domain class. NB: this assumes no + overloading of method names. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="mixedIn" type="xs:boolean" use="required"> + <xs:annotation> + <xs:documentation> + Whether the member (action, property or collection) is mixed in. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="property"> + <xs:annotation> + <xs:documentation>Represents a property of a domain class. + Corresponds to OneToOneAssociation in the internal metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="member"> + <xs:sequence> + <xs:element name="type" type="xs:IDREF"> + <xs:annotation> + <xs:documentation>A (reference to ) the type of this property, eg a String or a Customer. + Corresponds to OneToOneAssociation#getSpecification() in the internal metamodel. + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="collection"> + <xs:annotation> + <xs:documentation>Represents a collection of a domain class. + Corresponds to OneToManyAssociation in the internal metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="member"> + <xs:sequence> + <xs:element name="type" type="xs:IDREF"> + <xs:annotation> + <xs:documentation>A (reference to ) the _element_ type of this collection, eg a String or a Customer. + Corresponds to OneToOneAssociation#getSpecification() in the internal metamodel. + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="action"> + <xs:annotation> + <xs:documentation>Represents an action of a domain class. + Corresponds to ObjectAction in the internal metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="member"> + <xs:sequence> + <xs:element name="returnType" type="xs:IDREF"> + <xs:annotation> + <xs:documentation>A (reference to) the return type of this action, eg a String or a Customer. + Corresponds to ObjectAction#getReturnType() in the internal metamodel. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="params"> + <xs:complexType> + <xs:sequence> + <xs:element name="param" type="param" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="param"> + <xs:annotation> + <xs:documentation>Represents the parameter of an action + Corresponds to ObjectActionParameter in the internal metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="facetHolder"> + <xs:sequence> + <xs:element name="type" type="xs:IDREF"> + <xs:annotation> + <xs:documentation>(A reference to) the type of this action parameter, eg a String or a Customer. + For vector parameters, this is the element types of the collection parameter. + Corresponds to ObjectActionParameter#getSpecification() in the internal metamodel. + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:string"> + <xs:annotation> + <xs:documentation>The id of the parameter, which should be unique within the action. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="scalarParam"> + <xs:annotation> + <xs:documentation>Represents a parameter of an action + Corresponds to OneToOneActionParameter in the internal metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="param"> + <xs:sequence> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="vectorParam"> + <xs:annotation> + <xs:documentation>Represents a multi-valued parameter of an action + Corresponds to OneToManyActionParameter in the internal metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="param"> + <xs:sequence> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="facetHolder"> + <xs:annotation> + <xs:documentation> + Corresponds to FacetHolder interface in the internal metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="metamodelElement"> + <xs:sequence> + <xs:element name="facets" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="facet" type="facet" minOccurs="0" + maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="facet"> + <xs:annotation> + <xs:documentation> + Describes a facet of the metamodel, for example whether + an action can be disabled, or the name of a class. + Corresponds to Facet interface in the internal + metamodel. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="metamodelElement"> + <xs:sequence> + <xs:element name="attr" type="facetAttr" minOccurs="0" + maxOccurs="unbounded" /> </xs:sequence> + <xs:attribute name="id" type="xs:string"> + <xs:annotation> + <xs:documentation> + The facet type (fqcn) that is common to a set of + concrete facet implementations. These ids are + usually known to the framework for there well + defined semantics within the programming model. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="fqcn" type="xs:string" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="facetAttr"> + <xs:annotation> + <xs:documentation> + Describes an attribute of a facet of the metamodel, as a + simple key/value pair of strings (the key is modelled as + an attribute of the value). + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="metamodelElement"> + <xs:attribute name="name" type="xs:string"> + <xs:annotation> + <xs:documentation> + The name of the attribute, unique across all + facet attributes of a facet. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="value" type="xs:string"> + <xs:annotation> + <xs:documentation> + The value of the attribute. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="annotation"> + <xs:annotation> + <xs:documentation>Not part of the metamodel. Enables export tools to add arbitrary meta data. + </xs:documentation> + </xs:annotation> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:annotation> + <xs:documentation>The value of the annotation. + </xs:documentation> + </xs:annotation> + <xs:attribute name="name" type="xs:string"> + <xs:annotation> + <xs:documentation>The name annotation. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + + <xs:complexType name="metamodelElement"> <xs:annotation> - <xs:documentation>Represents a member of a class (property, collection or action). - Corresponds to ObjectMember in the internal metamodel. - </xs:documentation> + <xs:documentation>Common ancestor of facet and facetHolder.</xs:documentation> </xs:annotation> - <xs:complexContent> - <xs:extension base="facetHolder"> - <xs:attribute name="id" type="xs:string"> - <xs:annotation> - <xs:documentation>The id of the member, which should be unique within the domain class. - NB: this assumes no overloading of method names. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="property"> - <xs:annotation> - <xs:documentation>Represents a property of a domain class. - Corresponds to OneToOneAssociation in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="member"> - <xs:sequence> - <xs:element name="type" type="xs:IDREF"> - <xs:annotation> - <xs:documentation>A (reference to ) the type of this property, eg a String or a Customer. - Corresponds to OneToOneAssociation#getSpecification() in the internal metamodel. - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="collection"> - <xs:annotation> - <xs:documentation>Represents a collection of a domain class. - Corresponds to OneToManyAssociation in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="member"> - <xs:sequence> - <xs:element name="type" type="xs:IDREF"> - <xs:annotation> - <xs:documentation>A (reference to ) the _element_ type of this collection, eg a String or a Customer. - Corresponds to OneToOneAssociation#getSpecification() in the internal metamodel. - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="action"> - <xs:annotation> - <xs:documentation>Represents an action of a domain class. - Corresponds to ObjectAction in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="member"> - <xs:sequence> - <xs:element name="returnType" type="xs:IDREF"> - <xs:annotation> - <xs:documentation>A (reference to) the return type of this action, eg a String or a Customer. - Corresponds to ObjectAction#getReturnType() in the internal metamodel. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="params"> - <xs:complexType> - <xs:sequence> - <xs:element name="param" type="param" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="param"> - <xs:annotation> - <xs:documentation>Represents the parameter of an action - Corresponds to ObjectActionParameter in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="facetHolder"> - <xs:sequence> - <xs:element name="type" type="xs:IDREF"> - <xs:annotation> - <xs:documentation>(A reference to) the type of this action parameter, eg a String or a Customer. - For vector parameters, this is the element types of the collection parameter. - Corresponds to ObjectActionParameter#getSpecification() in the internal metamodel. - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - <xs:attribute name="id" type="xs:string"> - <xs:annotation> - <xs:documentation>The id of the parameter, which should be unique within the action. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="scalarParam"> - <xs:annotation> - <xs:documentation>Represents a parameter of an action - Corresponds to OneToOneActionParameter in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="param"> - <xs:sequence> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="vectorParam"> - <xs:annotation> - <xs:documentation>Represents a multi-valued parameter of an action - Corresponds to OneToManyActionParameter in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="param"> - <xs:sequence> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="facetHolder"> - <xs:annotation> - <xs:documentation>Corresponds to FacetHolder interface in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="facets" minOccurs="0"> - <xs:complexType> - <xs:sequence> - <xs:element name="facet" type="facet" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - - <xs:complexType name="facet"> - <xs:annotation> - <xs:documentation>Describes a facet of the metamodel, for example whether an action can be disabled, or the name of a class. - Corresponds to Facet interface in the internal metamodel. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="attr" type="facetAttr" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="id" type="xs:string"> - <xs:annotation> - <xs:documentation>The facet type (fqcn) that is common to a set of concrete - facet implementations. These ids are usually known to the framework for - there well defined semantics within the programming model. - </xs:documentation> - </xs:annotation></xs:attribute> - <xs:attribute name="fqcn" type="xs:string"/> - </xs:complexType> - - <xs:complexType name="facetAttr"> - <xs:annotation> - <xs:documentation>Describes an attribute of a facet of the metamodel, as a simple key/value pair of strings (the key is modelled as an attribute of the value). - </xs:documentation> - </xs:annotation> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:annotation> - <xs:documentation>The value of the attribute, unique across all facet attributes of a facet. - </xs:documentation> - </xs:annotation> - <xs:attribute name="name" type="xs:string"> - <xs:annotation> - <xs:documentation>The name of the attribute, unique across all facet attributes of a facet. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - - -</xs:schema> + <xs:sequence> + <xs:element name="annotations" minOccurs="0"> + <xs:annotation> + <xs:documentation>Not part of the metamodel. Enables export tools + to add arbitrary meta data.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="asList" type="annotation" + minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + +</xs:schema> \ No newline at end of file
