initial chekin of code received by Ericsson on 20170410
diff --git a/COMMON/src/General_Types.ttcn b/COMMON/src/General_Types.ttcn
new file mode 100644
index 0000000..bd2dc54
--- /dev/null
+++ b/COMMON/src/General_Types.ttcn
@@ -0,0 +1,382 @@
+/******************************************************************************
+* Copyright (c) 2004, 2014 Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* Zoltan Jasz - initial implementation and initial documentation
+* Abhishek Gupta
+* Attila Balasko
+* Endre Kulcsar
+* Gabor Bettesch
+* Gabor Szalai
+* Janos Kovesdi
+* Sandor Palugyai
+* Tibor Csondes
+******************************************************************************/
+//
+// File: General_Types.ttcn
+// Rev: R9A
+// Prodnr: CNL 113 368
+// Reference:
+
+module General_Types
+{
+
+group SimpleNativeTypes {
+
+ //****************************************************
+ // Bitstrings
+ //****************************************************
+
+ //bitstring with fixed length
+ type bitstring BIT1n length(1) with { variant "" };
+ type bitstring BIT2n length(2) with { variant "" };
+ type bitstring BIT3n length(3) with { variant "" };
+ type bitstring BIT4n length(4) with { variant "" };
+ type bitstring BIT5n length(5) with { variant "" };
+ type bitstring BIT6n length(6) with { variant "" };
+ type bitstring BIT7n length(7) with { variant "" };
+ type bitstring BIT8n length(8) with { variant "" };
+ type bitstring BIT9n length(9) with { variant "" };
+ type bitstring BIT12n length(12) with { variant "" };
+ type bitstring BIT14n length(14) with { variant "" };
+ type bitstring BIT15n length(15) with { variant "" };
+ type bitstring BIT16n length(16) with { variant "" };
+ type bitstring BIT56n length(56) with { variant "" };
+
+ //bitstring with length interval
+ type bitstring BIT14_24n length(14..24) with { variant "" };
+
+ //bitstring to be padded with fixed length
+ type bitstring BIT1np length(1) with { variant "" };
+ type bitstring BIT2np length(2) with { variant "" };
+ type bitstring BIT3np length(3) with { variant "" };
+ type bitstring BIT4np length(4) with { variant "" };
+ type bitstring BIT5np length(5) with { variant "" };
+ type bitstring BIT6np length(6) with { variant "" };
+ type bitstring BIT7np length(7) with { variant "" };
+ type bitstring BIT15np length(15) with { variant "" };
+
+ //bitstring with fixed length
+ type bitstring BIT1 length(1) with { variant "FIELDLENGTH(1)" };
+ type bitstring BIT2 length(2) with { variant "FIELDLENGTH(2)" };
+ type bitstring BIT3 length(3) with { variant "FIELDLENGTH(3)" };
+ type bitstring BIT4 length(4) with { variant "FIELDLENGTH(4)" };
+ type bitstring BIT5 length(5) with { variant "FIELDLENGTH(5)" };
+ type bitstring BIT6 length(6) with { variant "FIELDLENGTH(6)" };
+ type bitstring BIT7 length(7) with { variant "FIELDLENGTH(7)" };
+ type bitstring BIT8 length(8) with { variant "FIELDLENGTH(8)" };
+ type bitstring BIT9 length(9) with { variant "FIELDLENGTH(9)" };
+ type bitstring BIT10 length(10) with { variant "FIELDLENGTH(10)" };
+ type bitstring BIT11 length(11) with { variant "FIELDLENGTH(11)" };
+ type bitstring BIT12 length(12) with { variant "FIELDLENGTH(12)" };
+ type bitstring BIT14 length(14) with { variant "FIELDLENGTH(14)" };
+ type bitstring BIT15 length(15) with { variant "FIELDLENGTH(15)" };
+ type bitstring BIT16 length(16) with { variant "FIELDLENGTH(16)" };
+ type bitstring BIT24 length(24) with { variant "FIELDLENGTH(24)" };
+ type bitstring BIT31 length(31) with { variant "FIELDLENGTH(31)" };
+ type bitstring BIT56 length(56) with { variant "FIELDLENGTH(56)" };
+
+ type record of bitstring Bitstrings with { variant "" };
+ type Bitstrings BitstringList;
+ type set of bitstring BitstringSet with { variant "" };
+
+ //****************************************************
+ // Octetstrings
+ //****************************************************
+
+ //octetstring with fixed length
+ type octetstring OCT0n length(0) with { variant "" };
+ type octetstring OCT1n length(1) with { variant "" };
+ type octetstring OCT2n length(2) with { variant "" };
+ type octetstring OCT3n length(3) with { variant "" };
+ type octetstring OCT4n length(4) with { variant "" };
+ type octetstring OCT5n length(5) with { variant "" };
+ type octetstring OCT6n length(6) with { variant "" };
+ type octetstring OCT7n length(7) with { variant "" };
+ type octetstring OCT8n length(8) with { variant "" };
+ type octetstring OCT9n length(9) with { variant "" };
+ type octetstring OCT10n length(10) with { variant "" };
+ type octetstring OCT11n length(11) with { variant "" };
+ type octetstring OCT12n length(12) with { variant "" };
+ type octetstring OCT13n length(13) with { variant "" };
+ type octetstring OCT14n length(14) with { variant "" };
+ type octetstring OCT15n length(15) with { variant "" };
+ type octetstring OCT16n length(16) with { variant "" };
+ type octetstring OCT17n length(17) with { variant "" };
+ type octetstring OCT18n length(18) with { variant "" };
+ type octetstring OCT19n length(19) with { variant "" };
+ type octetstring OCT20n length(20) with { variant "" };
+ type octetstring OCT28n length(28) with { variant "" };
+ type octetstring OCT32n length(32) with { variant "" };
+ type octetstring OCT34n length(34) with { variant "" };
+ type octetstring OCT46n length(46) with { variant "" };
+ type octetstring OCT50n length(50) with { variant "" };
+ type octetstring OCT69n length(69) with { variant "" };
+ type octetstring OCT100n length(100) with { variant "" };
+ type octetstring OCT128n length(128) with { variant "" };
+ type octetstring OCT500n length(500) with { variant "" };
+ type octetstring OCTNn with { variant "" };
+
+ //octetstring with length interval
+ type octetstring OCT1_3n length(1..3) with { variant "" };
+ type octetstring OCT1_4n length(1..4) with { variant "" };
+ type octetstring OCT1_5n length(1..5) with { variant "" };
+ type octetstring OCT1_6n length(1..6) with { variant "" };
+ type octetstring OCT1_7n length(1..7) with { variant "" };
+ type octetstring OCT1_8n length(1..8) with { variant "" };
+ type octetstring OCT1_12n length(1..12) with { variant "" };
+ type octetstring OCT1_15n length(1..15) with { variant "" };
+ type octetstring OCT1_16n length(1..16) with { variant "" };
+ type octetstring OCT1_18n length(1..18) with { variant "" };
+ type octetstring OCT1_20n length(1..20) with { variant "" };
+ type octetstring OCT1_24n length(1..24) with { variant "" };
+ type octetstring OCT1_32n length(1..32) with { variant "" };
+ type octetstring OCT1_34n length(1..34) with { variant "" };
+ type octetstring OCT1_46n length(1..46) with { variant "" };
+ type octetstring OCT1_50n length(1..50) with { variant "" };
+ type octetstring OCT1_112n length(1..112) with { variant "" };
+ type octetstring OCT1_127n length(1..127) with { variant "" };
+ type octetstring OCT1_128n length(1..128) with { variant "" };
+ type octetstring OCT1_172n length(1..172) with { variant "" };
+ type octetstring OCT3_5n length(3..5) with { variant "" };
+ type octetstring OCT3_7n length(3..7) with { variant "" };
+ type octetstring OCT3_8n length(3..8) with { variant "" };
+ type octetstring OCT3_14n length(3..14) with { variant "" };
+ type octetstring OCT3_17n length(3..17) with { variant "" };
+ type octetstring OCT4_8n length(4..8) with { variant "" };
+
+ type record of octetstring Octetstrings with { variant "" };
+ type Octetstrings OctetstringList;
+ type set of octetstring OctetstringSet with { variant "" };
+
+ //****************************************************
+ // Charstrings
+ //****************************************************
+
+ //charstring with fixed length
+ type charstring CHAR4 length (4);
+
+ type record of charstring Charstrings with { variant "" };
+ type Charstrings CharstringList;
+ type set of charstring CharstringSet with { variant "" };
+
+ //****************************************************
+ // Hexstrings
+ //****************************************************
+
+ //hexstring with fixed length
+ type hexstring HEX4n length(4) with { variant "" };
+ type hexstring HEX6n length(6) with { variant "" };
+ type hexstring HEX8n length(8) with { variant "" };
+ type hexstring HEX15n length(15) with { variant "" };
+ type hexstring HEX16n length(16) with { variant "" };
+ type hexstring HEX24n length(24) with { variant "" };
+
+ //hexstring with length interval
+ type hexstring HEX0_18n length(0..18) with { variant "" };
+ type hexstring HEX1_20n length(1..20) with { variant "" };
+ type hexstring HEX1_34n length(1..34) with { variant "" };
+
+ type record of hexstring Hexstrings with { variant "" };
+ type Hexstrings HexstringList;
+ type set of hexstring HexstringSet with { variant "" };
+
+ //****************************************************
+ // Integers
+ //****************************************************
+
+ //integer with fixed bit number
+ type integer INT3nb (0..7) with { variant "" };
+ type integer INT4nb (0..15) with { variant "" };
+ type integer INT5nb (0..31) with { variant "" };
+ type integer INT8nb (0..255) with { variant "" };
+
+ //integer with fixed bit number and with padding
+ type integer INT2nbp (0..3) with { variant "" };
+ type integer INT1nbp (0..1) with { variant "" };
+ type integer INT3nbp (0..7) with { variant "" };
+ type integer INT5nbp (0..31) with { variant "" };
+ type integer INT9nbp (0..511) with { variant "" };
+ type integer INT13nbp (0..8191) with { variant "" };
+ type integer INT15nbp (0..32767) with { variant "" };
+
+ //****************************************************
+ // Structures
+ //****************************************************
+
+ //integer record
+ type record of integer Integers with { variant "" };
+ type Integers IntegerList;
+ type record of Integers Integer_array with { variant "" };
+ type set of integer IntegerSet with { variant "" };
+
+ //****************************************************
+ // Floats
+ //****************************************************
+
+ type record of float Floats with { variant "" };
+ type Floats FloatList;
+ type set of float FloatSet with { variant "" };
+
+ //****************************************************
+ // Universal Charstrings
+ //****************************************************
+
+ type record of universal charstring UniversalCharstrings with { variant "" };
+ type UniversalCharstrings UniversalCharstringList;
+ type set of universal charstring UniversalCharstringSet with { variant "" };
+
+ //****************************************************
+ // Booleans
+ //****************************************************
+
+ type record of boolean Booleans with { variant "" };
+ type Booleans BooleanList;
+ type set of boolean BooleanSet with { variant "" };
+
+ //****************************************************
+ // Verdicttypes
+ //****************************************************
+
+ type record of verdicttype Verdicttypes with { variant "" };
+ type Verdicttypes VerdicttypeList;
+ type set of verdicttype VerdicttypeSet with { variant "" };
+
+ //****************************************************
+ // Anytypes
+ //****************************************************
+
+ type record of anytype Anytypes with { variant "" };
+ type Anytypes AnytypeList;
+ type set of anytype AnytypeSet with { variant "" };
+
+} // end group NativeTypes
+
+//****************************************************
+//****************************************************
+// RAW Encoded Types
+//****************************************************
+//****************************************************
+
+group SimpleRAWEncodedTypes {
+
+ //****************************************************
+ // Bitstrings
+ //****************************************************
+
+ //bitstring with fixed length
+ type bitstring BIT6_BO_LAST length (6) with {variant "BYTEORDER(last)"};
+ type bitstring BIT16_BO_LAST length (16) with {variant "BYTEORDER(last)"};
+ type bitstring BIT32_BO_LAST length (32) with {variant "BYTEORDER(last)"};
+
+ //****************************************************
+ // Octetstrings
+ //****************************************************
+ //octetstring with fixed length
+ type octetstring Dummy length(0) with { variant "FIELDLENGTH(0)" };
+ type octetstring OCT0 length(0) with { variant "FIELDLENGTH(0)" };
+ type octetstring OCT1 length(1) with { variant "FIELDLENGTH(1)" };
+ type octetstring OCT2 length(2) with { variant "FIELDLENGTH(2)" };
+ type octetstring OCT3 length(3) with { variant "FIELDLENGTH(3)" };
+ type octetstring OCT4 length(4) with { variant "FIELDLENGTH(4)" };
+ type octetstring OCT5 length(5) with { variant "FIELDLENGTH(5)" };
+ type octetstring OCT6 length(6) with { variant "FIELDLENGTH(6)" };
+ type octetstring OCT7 length(7) with { variant "FIELDLENGTH(7)" };
+ type octetstring OCT8 length(8) with { variant "FIELDLENGTH(8)" };
+ type octetstring OCT9 length(9) with { variant "FIELDLENGTH(9)" };
+ type octetstring OCT10 length(10) with { variant "FIELDLENGTH(10)" };
+ type octetstring OCT11 length(11) with { variant "FIELDLENGTH(11)" };
+ type octetstring OCT12 length(12) with { variant "FIELDLENGTH(12)" };
+ type octetstring OCT13 length(13) with { variant "FIELDLENGTH(13)" };
+ type octetstring OCT14 length(14) with { variant "FIELDLENGTH(14)" };
+ type octetstring OCT15 length(15) with { variant "FIELDLENGTH(15)" };
+ type octetstring OCT16 length(16) with { variant "FIELDLENGTH(16)" };
+ type octetstring OCT17 length(17) with { variant "FIELDLENGTH(17)" };
+ type octetstring OCT18 length(18) with { variant "FIELDLENGTH(18)" };
+ type octetstring OCT19 length(19) with { variant "FIELDLENGTH(19)" };
+ type octetstring OCT20 length(20) with { variant "FIELDLENGTH(20)" };
+ type octetstring OCT32 length(32) with { variant "FIELDLENGTH(32)" };
+ type octetstring OCT34 length(34) with { variant "FIELDLENGTH(34)" };
+ type octetstring OCT46 length(46) with { variant "FIELDLENGTH(46)" };
+
+ //octetstring with length interval
+ type octetstring OCT1_260 length(1..260) with { variant "" };
+ type octetstring OCT1_8 length(1..8) with { variant "" };
+ type octetstring OCT1_12 length(1..12) with { variant "" };
+ type octetstring OCT1_32 length(1..32) with { variant "" };
+ type octetstring OCT1_50 length(1..50) with { variant "" };
+ type octetstring OCT3_8 length(3..8) with { variant "" };
+
+ type octetstring OCTN with { variant "" };
+
+ //****************************************************
+ // Hexstrings
+ //****************************************************
+
+ //hexstring with fixed length
+ type hexstring HEX1 length(1) with {variant "FIELDLENGTH(1)"};
+
+ //hexstring with length interval
+ type hexstring HEX0_16 length(0..16) with { variant "" };
+ type hexstring HEX5_16 length(5..16) with { variant "" };
+ type hexstring HEX1_32 length(1..32) with { variant "" };
+
+
+ //****************************************************
+ // Integers
+ //****************************************************
+
+ //integer with fixed octet number
+ type integer INT1 (0..255) with { variant "FIELDLENGTH(8)" };
+ type integer LIN1 (0..255) with { variant "FIELDLENGTH(8)" };
+ type integer LIN2 (0..65535) with { variant "FIELDLENGTH(16)" };
+ type integer LIN2_BO_LAST (0..65535) with { variant "FIELDLENGTH(16), COMP(nosign), BYTEORDER(last)" };
+ type integer LIN3_BO_LAST (0..16777215) with { variant "FIELDLENGTH(24), COMP(nosign), BYTEORDER(last)" };
+ type integer LIN4_BO_LAST (0..4294967295) with { variant "FIELDLENGTH(32), COMP(nosign), BYTEORDER(last)" };
+
+ //integer with fixed bit number
+ type integer INT1b (0..1) with { variant "FIELDLENGTH(1)" };
+ type integer INT2b (0..3) with { variant "FIELDLENGTH(2)" };
+ type integer INT3b (0..7) with { variant "FIELDLENGTH(3)" };
+ type integer INT4b (0..15) with { variant "FIELDLENGTH(4)" };
+ type integer INT5b (0..31) with { variant "FIELDLENGTH(5)" };
+ type integer INT6b (0..63) with { variant "FIELDLENGTH(6)" };
+ type integer INT7b (0..127) with { variant "FIELDLENGTH(7)" };
+ type integer INT11b_BO_LAST ( 0 .. 2047 ) with { variant "FIELDLENGTH(11), COMP(nosign), BYTEORDER(last)" };
+ type integer INT12b_BO_LAST ( 0 .. 4095 ) with { variant "FIELDLENGTH(12), COMP(nosign), BYTEORDER(last)" };
+ type integer INT13b_BO_LAST ( 0 .. 8191 ) with { variant "FIELDLENGTH(13), COMP(nosign), BYTEORDER(last)" };
+ type integer INT14b_BO_LAST ( 0 .. 16383 ) with { variant "FIELDLENGTH(14), COMP(nosign), BYTEORDER(last)" };
+ type integer INT18b_BO_LAST ( 0 .. 262143 ) with { variant "FIELDLENGTH(18), COMP(nosign), BYTEORDER(last)" };
+ type integer INT20b_BO_LAST ( 0 .. 1048575 ) with { variant "FIELDLENGTH(20), COMP(nosign), BYTEORDER(last)" };
+ type integer INT31b_BO_LAST ( 0 .. 2147483647 ) with { variant "FIELDLENGTH(31), COMP(nosign), BYTEORDER(last)" };
+
+} // end group SimpleRAWEncodedTypes
+
+group ComponentTypes {
+ type component Dummy_comptype {}
+ type component Dummy_CT {}
+} // end group ComponentTypes
+
+group CompositeTypes {
+ type enumerated Protocols
+ { mtp3, sccp, isup, bicc, qaal2, gcp, bssap, bssmap, ranap, dtap }
+
+ type record of OCT1 OCT1List with { variant "" };
+ type record of OCT2 OCT2List with { variant "" };
+ type record of OCT3 OCT3List with { variant "" };
+ type record of OCT4 OCT4List with { variant "" };
+ type record of OCT5 OCT5List with { variant "" };
+ type record of OCT6 OCT6List with { variant "" };
+ type record of OCT7 OCT7List with { variant "" };
+
+ type record of Dummy_comptype ListOfDummy_comptype with { variant "" };
+ type record of Dummy_CT ListOfDummy_CT with { variant "" };
+ type record of Protocols ProtocolList with { variant "" };
+} // end group CompositeTypes
+
+} with { encode "RAW" } /* End of module General_Types */
+
diff --git a/COMMON/src/MobileDomainDefinitions.asn b/COMMON/src/MobileDomainDefinitions.asn
new file mode 100644
index 0000000..0685484
--- /dev/null
+++ b/COMMON/src/MobileDomainDefinitions.asn
@@ -0,0 +1,54 @@
+-- *******************************************************************************
+-- * Copyright (c) 2004, 2014 Ericsson AB
+-- * All rights reserved. This program and the accompanying materials
+-- * are made available under the terms of the Eclipse Public License v1.0
+-- * which accompanies this distribution, and is available at
+-- * http://www.eclipse.org/legal/epl-v10.html
+-- *
+-- * Contributors:
+-- * Zoltan Jasz - initial implementation and initial documentation
+-- * Abhishek Gupta
+-- * Attila Balasko
+-- * Endre Kulcsar
+-- * Gabor Bettesch
+-- * Gabor Szalai
+-- * Janos Kovesdi
+-- * Sandor Palugyai
+-- * Tibor Csondes
+-- *******************************************************************************
+--
+-- File: MobileDomainDefinitions.asn
+-- Rev: R9A
+-- Prodnr: CNL 113 368
+-- Reference:
+
+MobileDomainDefinitions {ccitt (0) identified-organization (4) etsi (0)
+ mobileDomain (0) mobileDomainDefinitions (0) version1 (1)}
+
+DEFINITIONS ::=
+BEGIN
+
+IMPORTS ;
+
+-- Mobile DomainId
+
+mobileDomainId OBJECT IDENTIFIER ::= {ccitt (0) identified-organization (4) etsi (0) mobileDomain (0)}
+
+-- Mobile Subdomains
+
+gsm-NetworkId OBJECT IDENTIFIER ::= {mobileDomainId gsm-Network (1)}
+gsm-AccessId OBJECT IDENTIFIER ::= {mobileDomainId gsm-Access (2)}
+gsm-OperationAndMaintenanceId OBJECT IDENTIFIER ::= {mobileDomainId gsm-Operation-Maintenance (3)}
+gsm-MessagingId OBJECT IDENTIFIER ::= {mobileDomainId gsm-Messaging (4)}
+
+-- Common Component Ids for structuring Mobile Subdomains
+
+CommonComponentId ::= INTEGER (0..9)
+
+ac-Id CommonComponentId ::= 0
+as-Id CommonComponentId ::= 1
+ase-Id CommonComponentId ::= 2
+moduleId CommonComponentId ::= 3
+er-Id CommonComponentId ::= 4
+
+END -- MobileDomainDefinitions
diff --git a/COMMON/src/ProtocolModules_Common.grp b/COMMON/src/ProtocolModules_Common.grp
new file mode 100644
index 0000000..90214d5
--- /dev/null
+++ b/COMMON/src/ProtocolModules_Common.grp
@@ -0,0 +1,39 @@
+<!--
+/******************************************************************************
+* Copyright (c) 2004, 2014 Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* Zoltan Jasz - initial implementation and initial documentation
+* Abhishek Gupta
+* Attila Balasko
+* Endre Kulcsar
+* Gabor Bettesch
+* Gabor Szalai
+* Janos Kovesdi
+* Sandor Palugyai
+* Tibor Csondes
+******************************************************************************/
+//
+// File: ProtocolModules_Common.grp
+// Description:
+// Rev: R9A
+// Prodnr: CNL 113 368
+// Reference:
+//
+//
+-->
+<!DOCTYPE TITAN_GUI_FileGroup_file>
+<FileGroup TITAN_version="3.1.pl0" >
+ <File_Group name="ProtocolModules_Common" >
+ <File path="General_Types.ttcn" />
+ <File path="MobileDomainDefinitions.asn" />
+ <File path="UsefulTtcn3Types.ttcn" />
+ <File path="XSD.ttcn" />
+ <File path="general_typedefs.ttcn" />
+ <File path="http_www_w3_org_XML_1998_namespace.ttcn" />
+ </File_Group>
+</FileGroup>
diff --git a/COMMON/src/UsefulTtcn3Types.ttcn b/COMMON/src/UsefulTtcn3Types.ttcn
new file mode 100644
index 0000000..911e1a5
--- /dev/null
+++ b/COMMON/src/UsefulTtcn3Types.ttcn
@@ -0,0 +1,99 @@
+/******************************************************************************
+* Copyright (c) 2004, 2014 Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* Zoltan Jasz - initial implementation and initial documentation
+* Abhishek Gupta
+* Attila Balasko
+* Endre Kulcsar
+* Gabor Bettesch
+* Gabor Szalai
+* Janos Kovesdi
+* Sandor Palugyai
+* Tibor Csondes
+******************************************************************************/
+//
+// File: UsefulTtcn3Types.ttcn
+// Rev: R9A
+// Prodnr: CNL 113 368
+//
+////////////////////////////////////////////////////////////////////////////////
+module UsefulTtcn3Types {
+
+
+ type integer byte (-128 .. 127) with { variant "/* 8 bit */" };
+
+ type integer unsignedbyte (0 .. 255) with { variant "/*unsigned 8 bit*/" };
+
+ type integer short (-32768 .. 32767) with { variant "/*16 bit*/" };
+
+ type integer unsignedshort (0 .. 65535) with { variant "/*unsigned 16 bit*/" };
+
+ type integer long (-2147483648 .. 2147483647) with { variant "/*32 bit*/" };
+
+ type integer unsignedlong (0 .. 4294967295) with { variant "/*unsigned 32 bit*/" };
+
+ type integer longlong /* ( -9223372036854775808 .. 9223372036854775807 ) */ with { variant "/*64 bit*/" };
+
+ type integer unsignedlonglong /* ( 0 .. 18446744073709551615 ) */ with { variant "/*unsigned 64 bit*/" };
+
+ type float IEEE754float with { variant "/*IEEE754 float*/" };
+
+ type float IEEE754double with { variant "/*IEEE754 double*/" };
+
+ type float IEEE754extfloat with { variant "/*IEEE754 extended float*/" };
+
+ type float IEEE754extdouble with { variant "/*IEEE754 extended double*/" };
+
+ type universal charstring utf8string with { variant "/*UTF-8*/" };
+
+ type universal charstring bmpstring ( char ( 0,0,0,0 ) .. char ( 0,0,255,255) ) with { variant "/*UCS-2*/" };
+
+ type universal charstring utf16string ( char ( 0,0,0,0 ) .. char ( 0,16,255,255) ) with { variant "/*UTF-16*/" };
+
+ type universal charstring iso8859string ( char ( 0,0,0,0 ) .. char ( 0,0,0,255) ) with { variant "/*8 bit*/" };
+
+ type record IDLfixed
+ {
+ unsignedshort digits,
+ short scale,
+ charstring value_
+ }
+ with {
+ variant "/*IDL:fixed FORMAL/01-12-01 v.2.6*/";
+ };
+
+ /*
+ type charstring char length (1);
+
+ NOTE 1: The name of this useful type is the same as the TTCN-3 keyword used to denote universal
+ charstring values in the quadraple form. In general it is disallowed to use TTCN-3 keywords as
+ identifiers. The "char" useful type is a solitary exception and allowed only for backward compatibility
+ with previous versions of the TTCN-3 standard. (except Titan doesn't)
+
+ NOTE 2: The special string "8 bit" defined in clause 28.2.3 may be used with this type to specify a given encoding
+ for its values. Also, other properties of the base type can be changed by using attribute mechanisms.
+ */
+
+ type universal charstring uchar length (1);
+
+ /*
+ NOTE: Special strings defined in clause 28.2.3 except "8 bit" may be used with this type to specify a given
+ encoding for its values. Also, other properties of the base type can be changed by using attribute
+ mechanisms.
+ */
+
+ type bitstring bit length (1);
+
+ type hexstring hex length (1);
+
+ type octetstring octet length (1);
+
+}
+with {
+encode "XML";
+}
diff --git a/COMMON/src/XSD.ttcn b/COMMON/src/XSD.ttcn
new file mode 100644
index 0000000..64157a0
--- /dev/null
+++ b/COMMON/src/XSD.ttcn
@@ -0,0 +1,339 @@
+/******************************************************************************
+* Copyright (c) 2004, 2014 Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* Zoltan Jasz - initial implementation and initial documentation
+* Abhishek Gupta
+* Attila Balasko
+* Endre Kulcsar
+* Gabor Bettesch
+* Gabor Szalai
+* Janos Kovesdi
+* Sandor Palugyai
+* Tibor Csondes
+******************************************************************************/
+//
+// File: XSD.ttcn
+// Rev: R9A
+// Prodnr: CNL 113 368
+//
+////////////////////////////////////////////////////////////////////////////////
+module XSD {
+
+import from UsefulTtcn3Types all;
+
+//These constants are used in the XSD date/time type definitions
+const charstring
+ dash := "-",
+ cln := ":",
+ year := "(0(0(0[1-9]|[1-9][0-9])|[1-9][0-9][0-9])|[1-9][0-9][0-9][0-9])",
+ yearExpansion := "(-([1-9][0-9]#(0,))#(,1))#(,1)",
+ month := "(0[1-9]|1[0-2])",
+ dayOfMonth := "(0[1-9]|[12][0-9]|3[01])",
+ hour := "([01][0-9]|2[0-3])",
+ minute := "([0-5][0-9])",
+ second := "([0-5][0-9])",
+ sFraction := "(.[0-9]#(1,))#(,1)",
+ endOfDayExt := "24:00:00(.0#(1,))#(,1)",
+ nums := "[0-9]#(1,)",
+ ZorTimeZoneExt := "(Z|[+-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))#(,1)",
+ durTime := "(T[0-9]#(1,)"&
+ "(H([0-9]#(1,)(M([0-9]#(1,)(S|.[0-9]#(1,)S))#(,1)|.[0-9]#(1,)S|S))#(,1)|"&
+ "M([0-9]#(1,)(S|.[0-9]#(1,)S)|.[0-9]#(1,)M)#(,1)|"&
+ "S|"&
+ ".[0-9]#(1,)S))"
+
+//anySimpleType
+
+type XMLCompatibleString AnySimpleType
+with {
+variant "XSD:anySimpleType";
+};
+
+//anyType;
+
+type record AnyType
+{
+ record of String attr,
+ record of String elem_list
+}
+with {
+variant "XSD:anyType";
+variant (attr) "anyAttributes";
+variant (elem_list) "anyElement";
+};
+// String types
+
+type XMLCompatibleString String
+with {
+variant "XSD:string";
+};
+
+type XMLStringWithNoCRLFHT NormalizedString
+with {
+variant "XSD:normalizedString";
+};
+
+type NormalizedString Token
+with {
+variant "XSD:token";
+};
+
+type XMLStringWithNoWhitespace Name
+with {
+variant "XSD:Name";
+};
+
+type XMLStringWithNoWhitespace NMTOKEN
+with {
+variant "XSD:NMTOKEN";
+};
+
+type Name NCName
+with {
+variant "XSD:NCName";
+};
+
+type NCName ID
+with {
+variant "XSD:ID";
+};
+
+type NCName IDREF
+with {
+variant "XSD:IDREF";
+};
+
+type NCName ENTITY
+with {
+variant "XSD:ENTITY";
+};
+
+type octetstring HexBinary
+with {
+variant "XSD:hexBinary";
+};
+
+type octetstring Base64Binary
+with {
+variant "XSD:base64Binary";
+};
+
+type XMLStringWithNoCRLFHT AnyURI
+with {
+variant "XSD:anyURI";
+};
+
+type charstring Language (pattern "[a-zA-Z]#(1,8)(-\w#(1,8))#(0,)")
+with {
+variant "XSD:language";
+};
+// Integer types
+
+type integer Integer
+with {
+variant "XSD:integer";
+};
+
+type integer PositiveInteger (1 .. infinity)
+with {
+variant "XSD:positiveInteger";
+};
+
+type integer NonPositiveInteger (-infinity .. 0)
+with {
+variant "XSD:nonPositiveInteger";
+};
+
+type integer NegativeInteger (-infinity .. -1)
+with {
+variant "XSD:negativeInteger";
+};
+
+type integer NonNegativeInteger (0 .. infinity)
+with {
+variant "XSD:nonNegativeInteger";
+};
+
+type longlong Long
+with {
+variant "XSD:long";
+};
+
+type unsignedlonglong UnsignedLong
+with {
+variant "XSD:unsignedLong";
+};
+
+type long Int
+with {
+variant "XSD:int";
+};
+
+type unsignedlong UnsignedInt
+with {
+variant "XSD:unsignedInt";
+};
+
+type short Short
+with {
+variant "XSD:short";
+};
+
+type unsignedshort UnsignedShort
+with {
+variant "XSD:unsignedShort";
+};
+
+type byte Byte
+with {
+variant "XSD:byte";
+};
+
+type unsignedbyte UnsignedByte
+with {
+variant "XSD:unsignedByte";
+};
+
+// Float types
+
+type float Decimal
+with {
+variant "XSD:decimal";
+};
+
+type IEEE754float Float
+with {
+variant "XSD:float";
+};
+
+type IEEE754double Double
+with {
+variant "XSD:double";
+};
+
+// Time types
+
+type charstring Duration (pattern
+ "{dash}#(,1)P({nums}(Y({nums}(M({nums}D{durTime}#(,1)|{durTime}#(,1))|D{durTime}#(,1))|" &
+ "{durTime}#(,1))|M({nums}D{durTime}#(,1)|{durTime}#(,1))|D{durTime}#(,1))|{durTime})")
+with {
+variant "XSD:duration";
+};
+
+type charstring DateTime (pattern
+ "{yearExpansion}{year}{dash}{month}{dash}{dayOfMonth}T({hour}{cln}{minute}{cln}{second}" &
+ "{sFraction}|{endOfDayExt}){ZorTimeZoneExt}" )
+with {
+variant "XSD:dateTime";
+};
+
+type charstring Time (pattern
+ "({hour}{cln}{minute}{cln}{second}{sFraction}|{endOfDayExt}){ZorTimeZoneExt}" )
+with {
+variant "XSD:time";
+};
+
+type charstring Date (pattern
+ "{yearExpansion}{year}{dash}{month}{dash}{dayOfMonth}{ZorTimeZoneExt}" )
+with {
+variant "XSD:date";
+};
+
+type charstring GYearMonth (pattern
+ "{yearExpansion}{year}{dash}{month}{ZorTimeZoneExt}" )
+with {
+variant "XSD:gYearMonth";
+};
+
+type charstring GYear (pattern
+ "{yearExpansion}{year}{ZorTimeZoneExt}" )
+with {
+variant "XSD:gYear";
+};
+
+type charstring GMonthDay (pattern
+ "{dash}{dash}{month}{dash}{dayOfMonth}{ZorTimeZoneExt}" )
+with {
+variant "XSD:gMonthDay";
+};
+
+type charstring GDay (pattern
+ "{dash}{dash}{dash}{dayOfMonth}{ZorTimeZoneExt}" )
+with {
+variant "XSD:gDay";
+};
+
+type charstring GMonth (pattern
+ "{dash}{dash}{month}{ZorTimeZoneExt}" )
+with {
+variant "XSD:gMonth";
+};
+
+// Sequence types
+
+type record of NMTOKEN NMTOKENS
+with {
+variant "XSD:NMTOKENS";
+};
+
+type record of IDREF IDREFS
+with {
+variant "XSD:IDREFS";
+};
+
+type record of ENTITY ENTITIES
+with {
+variant "XSD:ENTITIES";
+};
+
+type record QName
+{
+ AnyURI uri optional,
+ NCName name
+}
+with {
+variant "XSD:QName";
+};
+
+// Boolean type
+
+type boolean Boolean
+with {
+variant "XSD:boolean";
+};
+
+//TTCN-3 type definitions supporting the mapping of W3C XML Schema built-in datatypes
+
+type utf8string XMLCompatibleString
+(
+ char(0,0,0,9)..char(0,0,0,9),
+ char(0,0,0,10)..char(0,0,0,10),
+ char(0,0,0,12)..char(0,0,0,12),
+ char(0,0,0,32)..char(0,0,215,255),
+ char(0,0,224,0)..char(0,0,255,253),
+ char(0,1,0,0)..char(0,16,255,253)
+)
+
+type utf8string XMLStringWithNoWhitespace
+(
+ char(0,0,0,33)..char(0,0,215,255),
+ char(0,0,224,0)..char(0,0,255,253),
+ char(0,1,0,0)..char(0,16,255,253)
+)
+
+type utf8string XMLStringWithNoCRLFHT
+(
+ char(0,0,0,32)..char(0,0,215,255),
+ char(0,0,224,0)..char(0,0,255,253),
+ char(0,1,0,0)..char(0,16,255,253)
+)
+
+}
+with{
+encode "XML"
+}
diff --git a/COMMON/src/general_typedefs.ttcn b/COMMON/src/general_typedefs.ttcn
new file mode 100644
index 0000000..6432e53
--- /dev/null
+++ b/COMMON/src/general_typedefs.ttcn
@@ -0,0 +1,236 @@
+/******************************************************************************
+* Copyright (c) 2004, 2014 Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* Zoltan Jasz - initial implementation and initial documentation
+* Abhishek Gupta
+* Attila Balasko
+* Endre Kulcsar
+* Gabor Bettesch
+* Gabor Szalai
+* Janos Kovesdi
+* Sandor Palugyai
+* Tibor Csondes
+******************************************************************************/
+//
+// File: general_typedefs.ttcn
+// Rev: R9A
+// Prodnr: CNL 113 368
+// Reference:
+
+module general_typedefs
+{
+
+group SimpleNativeTypes
+{
+//octetstring with fixed length
+type octetstring OCT0n length(0);
+type octetstring OCT1n length(1);
+type octetstring OCT2n length(2);
+type octetstring OCT3n length(3);
+type octetstring OCT4n length(4);
+type octetstring OCT5n length(5);
+type octetstring OCT6n length(6);
+type octetstring OCT7n length(7);
+type octetstring OCT8n length(8);
+type octetstring OCT9n length(9);
+type octetstring OCT10n length(10);
+type octetstring OCT11n length(11);
+type octetstring OCT12n length(12);
+type octetstring OCT13n length(13);
+type octetstring OCT14n length(14);
+type octetstring OCT15n length(15);
+type octetstring OCT16n length(16);
+type octetstring OCT17n length(17);
+type octetstring OCT18n length(18);
+type octetstring OCT19n length(19);
+type octetstring OCT20n length(20);
+type octetstring OCT28n length(28);
+type octetstring OCT32n length(32);
+type octetstring OCT34n length(34);
+type octetstring OCT46n length(46);
+type octetstring OCT50n length(50);
+type octetstring OCT69n length(69);
+type octetstring OCT100n length(100);
+type octetstring OCT128n length(128);
+type octetstring OCT500n length(500);
+type octetstring OCTNn;
+
+//octetstring with length interval
+type octetstring OCT1_3n length(1..3);
+type octetstring OCT1_4n length(1..4);
+type octetstring OCT1_5n length(1..5);
+type octetstring OCT1_6n length(1..6);
+type octetstring OCT1_7n length(1..7);
+type octetstring OCT1_8n length(1..8);
+type octetstring OCT1_12n length(1..12);
+type octetstring OCT1_15n length(1..15);
+type octetstring OCT1_16n length(1..16);
+type octetstring OCT1_18n length(1..18);
+type octetstring OCT1_20n length(1..20);
+type octetstring OCT1_24n length(1..24);
+type octetstring OCT1_34n length(1..34);
+type octetstring OCT1_46n length(1..46);
+type octetstring OCT1_50n length(1..50);
+type octetstring OCT1_112n length(1..112);
+type octetstring OCT1_127n length(1..127);
+type octetstring OCT1_128n length(1..128);
+type octetstring OCT1_172n length(1..172);
+type octetstring OCT3_5n length(3..5);
+type octetstring OCT3_7n length(3..7);
+type octetstring OCT3_8n length(3..8);
+type octetstring OCT3_17n length(3..17);
+type octetstring OCT4_8n length(4..8);
+
+//hexstring with fixed length
+type hexstring HEX24n length(24);
+
+//hexstring with length interval
+type hexstring HEX0_18n length(0..18);
+type hexstring HEX1_20n length(1..20);
+
+
+//bitstring with fixed length
+type bitstring BIT1n length(1);
+type bitstring BIT2n length(2);
+type bitstring BIT3n length(3);
+type bitstring BIT4n length(4);
+type bitstring BIT5n length(5);
+type bitstring BIT6n length(6);
+type bitstring BIT7n length(7);
+type bitstring BIT8n length(8);
+type bitstring BIT9n length(9);
+type bitstring BIT12n length(12);
+type bitstring BIT14n length(14);
+type bitstring BIT15n length(15);
+type bitstring BIT16n length(16);
+type bitstring BIT56n length(56);
+
+//bitstring with length interval
+type bitstring BIT14_24n length(14..24);
+
+//bitstring to be padded with fixed length
+type bitstring BIT1np length(1);
+type bitstring BIT2np length(2);
+type bitstring BIT3np length(3);
+type bitstring BIT4np length(4);
+type bitstring BIT5np length(5);
+type bitstring BIT6np length(6);
+type bitstring BIT7np length(7);
+type bitstring BIT15np length(15);
+
+//integer with fixed bit number
+type integer INT3nb (0..7);
+type integer INT4nb (0..15);
+type integer INT5nb (0..31);
+type integer INT8nb (0..255);
+
+//integer with fixed bit number and with padding
+type integer INT2nbp (0..3);
+type integer INT1nbp (0..1);
+type integer INT3nbp (0..7);
+type integer INT5nbp (0..31);
+type integer INT9nbp (0..511);
+type integer INT13nbp (0..8095);
+type integer INT15nbp (0..32767);
+
+}// end group NativeTypes
+
+group SimpleRAWEncodedTypes
+{
+//octetstring with fixed length
+type octetstring Dummy length(0) with { variant "FIELDLENGTH(0)" };
+type octetstring OCT0 length(0) with { variant "FIELDLENGTH(0)" };
+type octetstring OCT1 length(1) with { variant "FIELDLENGTH(1)" };
+type octetstring OCT2 length(2) with { variant "FIELDLENGTH(2)" };
+type octetstring OCT3 length(3) with { variant "FIELDLENGTH(3)" };
+type octetstring OCT4 length(4) with { variant "FIELDLENGTH(4)" };
+type octetstring OCT5 length(5) with { variant "FIELDLENGTH(5)" };
+type octetstring OCT6 length(6) with { variant "FIELDLENGTH(6)" };
+type octetstring OCT7 length(7) with { variant "FIELDLENGTH(7)" };
+type octetstring OCT8 length(8) with { variant "FIELDLENGTH(8)" };
+type octetstring OCT9 length(9) with { variant "FIELDLENGTH(9)" };
+type octetstring OCT10 length(10) with { variant "FIELDLENGTH(10)" };
+type octetstring OCT11 length(11) with { variant "FIELDLENGTH(11)" };
+type octetstring OCT12 length(12) with { variant "FIELDLENGTH(12)" };
+type octetstring OCT13 length(13) with { variant "FIELDLENGTH(13)" };
+type octetstring OCT14 length(14) with { variant "FIELDLENGTH(14)" };
+type octetstring OCT15 length(15) with { variant "FIELDLENGTH(15)" };
+type octetstring OCT16 length(16) with { variant "FIELDLENGTH(16)" };
+type octetstring OCT17 length(17) with { variant "FIELDLENGTH(17)" };
+type octetstring OCT18 length(18) with { variant "FIELDLENGTH(18)" };
+type octetstring OCT19 length(19) with { variant "FIELDLENGTH(19)" };
+type octetstring OCT20 length(20) with { variant "FIELDLENGTH(20)" };
+type octetstring OCT32 length(32) with { variant "FIELDLENGTH(32)" };
+type octetstring OCT34 length(34) with { variant "FIELDLENGTH(34)" };
+type octetstring OCT46 length(46) with { variant "FIELDLENGTH(46)" };
+
+//octetstring with length interval
+type octetstring OCT1_12 length(1..12) with { variant "" };
+type octetstring OCT1_8 length(1..8) with { variant "" };
+type octetstring OCT3_8 length(3..8) with { variant "" };
+type octetstring OCT1_50 length(1..50) with { variant "" };
+type octetstring OCTN with { variant "" };
+
+//bitstring with fixed length
+type bitstring BIT1 length(1) with { variant "FIELDLENGTH (1)" };
+type bitstring BIT2 length(2) with { variant "FIELDLENGTH(2)" };
+type bitstring BIT3 length(3) with { variant "FIELDLENGTH(3)" };
+type bitstring BIT4 length(4) with { variant "FIELDLENGTH(4)" };
+type bitstring BIT5 length(5) with { variant "FIELDLENGTH(5)" };
+type bitstring BIT6 length(6) with { variant "FIELDLENGTH(6)" };
+type bitstring BIT7 length(7) with { variant "FIELDLENGTH(7)" };
+type bitstring BIT8 length(8) with { variant "FIELDLENGTH(8)" };
+type bitstring BIT9 length(9) with { variant "FIELDLENGTH(9)" };
+type bitstring BIT12 length(12) with { variant "FIELDLENGTH(12)" };
+type bitstring BIT14 length(14) with { variant "FIELDLENGTH(14)" };
+type bitstring BIT15 length(15) with { variant "FIELDLENGTH(15)" };
+type bitstring BIT16 length(16) with { variant "FIELDLENGTH(16)" };
+type bitstring BIT24 length(24) with { variant "FIELDLENGTH(24)" };
+type bitstring BIT31 length(31) with { variant "FIELDLENGTH(31)" };
+type bitstring BIT56 length(56) with { variant "FIELDLENGTH(56)" };
+
+type hexstring HEX1 length(1) with {variant "FIELDLENGTH(1)"};
+
+//integer with fixed octet number
+type integer INT1 (0..255) with { variant "FIELDLENGTH(8)" };
+type integer LIN1 (0..255) with { variant "FIELDLENGTH(8)" }
+type integer LIN2 (0..65535) with { variant "FIELDLENGTH(16)" }
+
+//integer with fixed bit number
+type integer INT7b (0..127) with { variant "FIELDLENGTH(7)" };
+
+//integer record
+type record of integer Integers;
+type record of Integers Integer_array;
+
+} with {encode "RAW"} // end group SimpleRAWEncodedTypes
+
+ group ComponentTypes
+ {
+ type component Dummy_comptype {}
+ }
+
+ group CompositeTypes
+ {
+ type enumerated Protocols
+ { mtp3, sccp, isup, bicc, qaal2, gcp, bssap, bssmap, ranap, dtap }
+
+ type record of OCT1 OCT1List;
+ type record of OCT2 OCT2List;
+ type record of OCT3 OCT3List;
+ type record of OCT4 OCT4List;
+ type record of OCT5 OCT5List;
+ type record of OCT6 OCT6List;
+ type record of OCT7 OCT7List;
+
+ type record of Dummy_comptype ListOfDummy_comptype;
+
+ type record of Protocols ProtocolList;
+ }
+
+}with { encode "RAW"} /* End of module general_typedefs */
diff --git a/COMMON/src/http_www_w3_org_XML_1998_namespace.ttcn b/COMMON/src/http_www_w3_org_XML_1998_namespace.ttcn
new file mode 100644
index 0000000..99f570a
--- /dev/null
+++ b/COMMON/src/http_www_w3_org_XML_1998_namespace.ttcn
@@ -0,0 +1,150 @@
+/******************************************************************************
+* Copyright (c) 2004, 2014 Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* Zoltan Jasz - initial implementation and initial documentation
+* Abhishek Gupta
+* Attila Balasko
+* Endre Kulcsar
+* Gabor Bettesch
+* Gabor Szalai
+* Janos Kovesdi
+* Sandor Palugyai
+* Tibor Csondes
+******************************************************************************/
+//
+// File: http_www_w3_org_XML_1998_namespace.ttcn
+// Rev: R9A
+// Prodnr: CNL 113 368
+// Reference:
+
+module http_www_w3_org_XML_1998_namespace {
+
+
+import from XSD all;
+
+
+/* See http://www.w3.org/XML/1998/namespace.html and
+ http://www.w3.org/TR/REC-xml for information about this namespace.
+
+ This schema document describes the XML namespace, in a form
+ suitable for import by other schema documents.
+
+ Note that local names in this namespace are intended to be defined
+ only by the World Wide Web Consortium or its subgroups. The
+ following names are currently defined in this namespace and should
+ not be used with conflicting semantics by any Working Group,
+ specification, or document instance:
+
+ base (as an attribute name): denotes an attribute whose value
+ provides a URI to be used as the base for interpreting any
+ relative URIs in the scope of the element on which it
+ appears; its value is inherited. This name is reserved
+ by virtue of its definition in the XML Base specification.
+
+ lang (as an attribute name): denotes an attribute whose value
+ is a language code for the natural language of the content of
+ any element; its value is inherited. This name is reserved
+ by virtue of its definition in the XML specification.
+
+ space (as an attribute name): denotes an attribute whose
+ value is a keyword indicating what whitespace processing
+ discipline is intended for the content of the element; its
+ value is inherited. This name is reserved by virtue of its
+ definition in the XML specification.
+
+ Father (in any context at all): denotes Jon Bosak, the chair of
+ the original XML Working Group. This name is reserved by
+ the following decision of the W3C XML Plenary and
+ XML Coordination groups:
+
+ In appreciation for his vision, leadership and dedication
+ the W3C XML Plenary on this 10th day of February, 2000
+ reserves for Jon Bosak in perpetuity the XML name
+ xml:Father */
+
+
+/* This schema defines attributes and an attribute group
+ suitable for use by
+ schemas wishing to allow xml:base, xml:lang or xml:space attributes
+ on elements they define.
+
+ To enable this, such a schema must import this schema
+ for the XML namespace, e.g. as follows: */
+/* < */
+/* schema . . . */
+/* > */
+/* . . . */
+/* < */
+/* import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/03/xml.xsd"/ */
+/* > */
+/* Subsequently, qualified reference to any of the attributes
+ or the group defined below will have the desired effect, e.g. */
+/* < */
+/* type . . . */
+/* > */
+/* . . . */
+/* < */
+/* attributeGroup ref="xml:specialAttrs"/ */
+/* > */
+/* will define a type which will schema-validate an instance
+ element with any of those attributes */
+
+
+/* In keeping with the XML Schema WG's standard versioning
+ policy, this schema document will persist at
+ http://www.w3.org/2001/03/xml.xsd.
+ At the date of issue it can also be found at
+ http://www.w3.org/2001/xml.xsd.
+ The schema document at that URI may however change in the future,
+ in order to remain compatible with the latest version of XML Schema
+ itself. In other words, if the XML Schema namespace changes, the version
+ of this document at
+ http://www.w3.org/2001/xml.xsd will change
+ accordingly; the version at
+ http://www.w3.org/2001/03/xml.xsd will not change. */
+
+
+/* In due course, we should install the relevant ISO 2- and 3-letter
+ codes as the enumerated possible values . . . */
+type XSD.Language Lang
+with {
+variant "name as uncapitalized";
+variant "attribute";
+};
+
+
+type enumerated Space
+{
+ default_,
+ preserve
+}
+with {
+variant "text 'default_' as 'default'";
+variant "name as uncapitalized";
+variant "defaultForEmpty as 'preserve'";
+variant "attribute";
+};
+
+
+/* See http://www.w3.org/TR/xmlbase/ for
+ information about this attribute. */
+type XSD.AnyURI Base
+with {
+variant "name as uncapitalized";
+variant "attribute";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'http://www.w3.org/XML/1998/namespace'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+extension "version R9A"
+}