You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
340 lines
6.2 KiB
340 lines
6.2 KiB
/******************************************************************************
|
|
* 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"
|
|
}
|