Il s'agit d'un pseudo langage de description et de contenu permettant de créer des flux au format texte qui sont indépendants de la plate-forme.
Ces flux peuvent se compiler en un format binaire beaucoup plus compact selon des normes suivantes :
Ces flux peuvent aussi se développer en un format texte beaucoup plus lisible selon la norme Generic String Encoding Rules (GSER).
-- Ceci est un commentaire.
-- Ceci est un commentaire -- TRUE -- Ceci est un second commentaire.
/* Ceci est un commentaire.
Ceci est un second commentaire. */
'01010111'B
'01 01 01 11'B
'0A0A0ABC'H
'0A 0A 0A BC'H
Ceci est ma chaine."
Ceci est ma chaine avec un caractere "" guillemet."
AAAAMMJJHHMMSS suivi du fuseau horaire en format généralisé.AAMMJJHHMM ou AAMMJJHHMMSS suivi du fuseau horaire en format UTC.
20080130214230+0100"
20080130214230Z"
080130214230+0100"
080130214230Z"
123456
-123456
maVariable
ma-variable
MonType
Mon-type
Reel=Mantisse*Base^Exposant.2.5 se note :
{mantissa 25, base 10, exponent -1}
... est utilisée et avant l'éventuelle seconde marque d'extension.
ENUMERATED {A(1), B(2), C(3), ..., D(4), E(5), F(6)}
ENUMERATED {A(1), B(2), C(3), ..., [[D(4), E(5)]], [[ F(6)]]}
ENUMERATED {A(1), B(2), C(3), ...!UTF8String:Ceci est mon exception", D(4), E(5), F(6)]]}
ENUMERATED {A(1), B(2), ...!UTF8String:Ceci est mon exception", [[D(4), E(5)]], [[ F(6)]], ..., C(3)}
Voici les concepts sémantiques :
{iso.identified-organization.ups.upsasn.employe}{iso(1) identified-organization(3) ups(1) upsasn(2) employe(1)}
25.1 ou 2.51E1
Module :
DEFINITIONS ModeEtiquettageOption ModeExtensionOption ::=BEGINEND{ ValeurOption ListeDeProprietesDeLObjet }( Numero )EXPLICIT TAGSIMPLICIT TAGSAUTOMATIC TAGSEXTENSIBILITY IMPLIEDEXPORT ListeDeDefinitionsOption ;ALL, Definition{ }IMPORT ListeDImportationsOption ;FROM NomDuModule IdentifiantObjet::= EtiquetteOption NomDUnType ParametresTransmisOption ContrainteOption{ ListeParametres }, Parametre: NomDuParametreDuTypeBIT STRING SuiteTypeBitStringBOOLEANCHARACTER STRINGINTEGERENUMERATED { ListeDeValeursEnumeres }NULLOBJECT IDENTIFIER IdentifiantObjetOCTET STRINGRELATIVE-OID IdentifiantObjet{ ListeBitsNommes }, ValeurEnumere[[ VersionOption ListeDeValeursEnumeres ]]:( Valeur )[ SorteEtiquette Valeur ] EtiquettesImplicitesAPPLICATIONPRIVATEUNIVERSALEXPLICITIMPLICIT, BitNommeBitNomme :
( Valeur )[[ VersionOption ListeBitsNommes ]]... ExceptionOption! Valeur! NomDUnType : ValeurCHOICE { ListeDeChoix }, ChoixTypeChoix :
[[ VersionOption ListeDeChoix ]]SET { ListeDElementsDeLEnsemble }
ListeDElementsOption :
| ListeDElements
;
, ElementElement :
ANY DEFINED BY TypeDynamique ContrainteOption@ TypeDynamique ContrainteOptionCOMPONENTS OF NomDUnType[[ VersionOption ListeDElements ]]OPTIONALDEFAULT Valeur. TypeDynamiqueSET ContrainteOption OF NomDUnType< NomDUnTypeSEQUENCE { ListeDElementsOption }SEQUENCE ContrainteOption OF NomDUnType( Contrainte ExceptionOption )SIZE ( ListeDeValeursContrainte ) ExceptionOption{ ListeDeValeursContrainte2 }CONTAINING NomDUnTypeCONTAINING NomDUnType ENCODED BY ValeurENCODED BY ValeurFROM ( ListeDeValeursContrainte )PATTERN ValeurSIZE ( ListeDeValeursContrainte )WITH COMPONENT ( Contrainte )WITH COMPONENTS { ListeDeContraintes }( Contrainte )| ValeurContrainte.. BorneSuperieureINCLUDES&MIN& ValeurMAX, ValeurContrainte2ABSENTOPTIONALPRESENT( Valeur ), NomDeLElement ContrainteALL EXCEPT|^EXCEPTINTERSECTIONUNION{ ListeDeValeurs }, Valeur::= CLASS { ListeDeParametresClasse } SyntaxeOption, ParametreClasse& NomDuParametreDeLaClasse NomDUnTypeOption SuiteParametreClasse& NomDuParametreDeLaClasse ANY DEFINED BY TypeDynamique SuiteParametreClasse& NomDuParametreDeLaClasse @ TypeDynamique SuiteParametreClasse& NomDuParametreDeLaClasse @ . TypeDynamique SuiteParametreClasseDEFAULT Valeur SuiteParametreClasseUNIQUEOPTIONALWITH SYNTAX { ListeDeLexemes }Lexeme :
,[ ListeDeLexemes ]::= Valeur::= ValeurValeur :
TRUEFALSENULL{ ListeDeValeursEnsemble }: Valeur: Valeur, ValeurEnsemble( ValeurEnsemble )@ SelectionOption2. SelectionOption2. SelectionOption2
AsnEmploye {iso(1) identified-organization(3) ups(1) upsasn(2) employe(1)} AUTOMATIC TAGS ::=
BEGIN
Employe ::=
{
Nom IA5String(1..50),
Numero INTEGER(50),
Salaire REAL,
DateEmbauche GeneralizeTime,
}
ListeEmployes ::= SEQUENCE OF Employe
END
Donnees ListeEmployes ::=
{
{Nom "Mister Scott", Numero 7724, Salaire {mantissa 1000, base 10, exponent 0}, DateEmbauche "20051228105000Z"},
{Nom "Mister Allen", Numero 7832, Salaire {mantissa 1200, base 10, exponent 0}, DateEmbauche "20020126110910Z"},
{Nom "Lady Smith", Numero 7948, Salaire {mantissa 1400, base 10, exponent 0}, DateEmbauche "20040210152220Z"},
{Nom "Miss King", Numero 7954, Salaire {mantissa 2000, base 10, exponent 0}, DateEmbauche "20030401081220Z"}
}
Donnees ListeEmployes ::=
{
{Nom "Mister Scott", Numero 7724, Salaire 1000.0, DateEmbauche "20051228105000Z"},
{Nom "Mister Allen", Numero 7832, Salaire 1200.0, DateEmbauche "20020126110910Z"},
{Nom "Lady Smith", Numero 7948, Salaire 1400.0, DateEmbauche "20040210152220Z"},
{Nom "Miss King", Numero 7954, Salaire 2000.0, DateEmbauche "20030401081220Z"}
}