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 ::=
BEGIN
END
{
ValeurOption ListeDeProprietesDeLObjet }
(
Numero )
EXPLICIT TAGS
IMPLICIT TAGS
AUTOMATIC TAGS
EXTENSIBILITY IMPLIED
EXPORT
ListeDeDefinitionsOption ;
ALL
,
Definition{ }
IMPORT
ListeDImportationsOption ;
FROM
NomDuModule IdentifiantObjet::=
EtiquetteOption NomDUnType ParametresTransmisOption ContrainteOption{
ListeParametres }
,
Parametre:
NomDuParametreDuTypeBIT STRING
SuiteTypeBitStringBOOLEAN
CHARACTER STRING
INTEGER
ENUMERATED {
ListeDeValeursEnumeres }
NULL
OBJECT IDENTIFIER
IdentifiantObjetOCTET STRING
RELATIVE-OID
IdentifiantObjet{
ListeBitsNommes }
,
ValeurEnumere[[
VersionOption ListeDeValeursEnumeres ]]
:
(
Valeur )
[
SorteEtiquette Valeur ]
EtiquettesImplicitesAPPLICATION
PRIVATE
UNIVERSAL
EXPLICIT
IMPLICIT
,
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 ]]
OPTIONAL
DEFAULT
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
,
ValeurContrainte2ABSENT
OPTIONAL
PRESENT
(
Valeur )
,
NomDeLElement ContrainteALL EXCEPT
|
^
EXCEPT
INTERSECTION
UNION
{
ListeDeValeurs }
,
Valeur::= CLASS {
ListeDeParametresClasse }
SyntaxeOption,
ParametreClasse&
NomDuParametreDeLaClasse NomDUnTypeOption SuiteParametreClasse&
NomDuParametreDeLaClasse ANY DEFINED BY
TypeDynamique SuiteParametreClasse&
NomDuParametreDeLaClasse @
TypeDynamique SuiteParametreClasse&
NomDuParametreDeLaClasse @ .
TypeDynamique SuiteParametreClasseDEFAULT
Valeur SuiteParametreClasseUNIQUE
OPTIONAL
WITH SYNTAX {
ListeDeLexemes }
Lexeme :
,
[
ListeDeLexemes ]
::=
Valeur::=
ValeurValeur :
TRUE
FALSE
NULL
{
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"}
}