-- TTCN3 module extracted from ITU-T Z.169 (03/2011)

module XSD { //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 length (1 .. infinity) of String attr optional, 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 (!-infinity .. !infinity) with { variant "XSD:decimal" }; type IEEE754float Float with { variant "XSD:float" }; type IEEE754double Double with { variant "XSD:double" }; // Time types type charstring Duration (pattern ") with { variant "XSD:duration" }; 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,13)..char(0,0,0,13), 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) ) }//end module