AML ASN.1 Markup Language A markup notation for ASN.1 values Copyright © 2001 Griffin Consulting, All Rights Reserved. Griffin Consulting 1625 Glenwood Avenue Raleigh, North Carolina
ASN.1 Markup Values Overview (a) Copyright © 2001 Griffin Consulting, All Rights Reserved. ASN.1 is a schema for encoded values - Type definitions are based on the X.680-series notation - Types describe the expected general structure of values - Each builtin type defines a class of distinct values - Constraints restrict a class and the validity of values
ASN.1 Markup Values Overview (b) Copyright © 2001 Griffin Consulting, All Rights Reserved. Encoded ASN.1 values are binary or text - Binary encodings based on the X.690-series rules - Text encoded as plain, formatted or markup values - ASN.1 Value Notation - ASN.1 Markup Language (AML) - Coloring control of markup
ASN.1 Markup Values Example type and value AnyName ::= [APPLICATION 1] SEQUENCE { givenName VisibleString, initial [0] VisibleString (SIZE(1)) OPTIONAL, familyName VisibleString } Hubert L Owen Copyright © 2001 Griffin Consulting, All Rights Reserved.
ASN.1 Markup Values Another example ChildInformation ::= SET { name AnyName, dateOfBirth Date } Date ::= [APPLICATION 3] INTEGER (1..MAX) -- yyyymmdd Lee Owen Copyright © 2001 Griffin Consulting, All Rights Reserved.
ASN.1 Markup Values As a rule... Whenever possible, the identifier name is used as the default markup tag. Otherwise, the user defined type name is used. Employee ::= SEQUENCE { -- type number INTEGER(0..MAX),-- identifier dateOfHire Date -- identifier } Copyright © 2001 Griffin Consulting, All Rights Reserved.
ASN.1 Markup Values AML Benefits (a) A single schema for all values - Binary and text encodings are all based on ASN.1 types * Eliminates multiple schema mappings * ASN.1 is a mature, stable schema for XML markup ASN.1 XML communications - ASN.1 applications can send and receive XML values - Efficient ASN.1 transfer, Encoding Control, plain text Copyright © 2001 Griffin Consulting, All Rights Reserved.
ASN.1 Markup Values AML Benefits (b) Copyright © 2001 Griffin Consulting, All Rights Reserved. ASN.1/ML Application Wireless Application Browser Application SDF Application XML HTML plus Compact Binary Encoding ECN Plain Text
ASN.1 Markup Values Personnel Record (a) PersonnelRecord ::= [APPLICATION 0] SET{ name AnyName, title VisibleString, number EmployeeNumber, dateOfHire Date, nameOfSpouse AnyName, children SEQUENCE OF ChildInformation DEFAULT {} } Note: ChildInformation is a “defined type”. Copyright © 2001 Griffin Consulting, All Rights Reserved.
ASN.1 Markup Values Personnel Record (b) { name { givenName ”Hubert”, initial "L”, familyName "Owen” }, title"Director”, number51, dateOfHire , nameOfSpouse{ givenName ”Ann”, initial "R”, familyName ”Mitchell” }, children { { name { givenName "Lee”, familyName ”Owen” }, dateOfBirth }, { name { givenName "Alan”, initial "L”, familyName ”Owen” }, dateOfBirth } } Copyright © 2001 Griffin Consulting, All Rights Reserved.
ASN.1 Markup Values Personnel Record (c) Hubert L Owen Director Copyright © 2001 Griffin Consulting, All Rights Reserved.
ASN.1 Markup Values Personnel Record (d) Ann R Mitchell Lee Owen Copyright © 2001 Griffin Consulting, All Rights Reserved.
ASN.1 Markup Values Personnel Record (e) Copyright © 2001 Griffin Consulting, All Rights Reserved Alan L Owen
ASN.1 Markup Values Personnel Record (f) Copyright © 2001 Griffin Consulting, All Rights Reserved. Note: A detailed description of this personnel record example is provided in Annex C of ITU-T Rec. X.680 | ISO/IEC The type and value notation used in this example mimics the one in the ASN.1 standard. The ASN.1 Markup Value Notation is the result of new work from the Geneva 2001 ASN.1 Editors Group meeting. Future work will focus on coloring.
ASN.1 Markup Values Coloring Copyright © 2001 Griffin Consulting, All Rights Reserved. A coloring notation is currently being designed and will be added to the ASN.1 standards. The form of this new notation is still being decided, but will likely mimic the new ASN.1 Encoding Control Notation (ECN). See But much of the functionality that will be provided by AML coloring can be expressed for the purpose of discussion using ASN.1 tool directives in the form of ASN.1 comments. The following slides describe several proposed coloring controls. Each includes a description, an example, and the expected results of coloring.
ASN.1 Markup Values Coloring (tag=) Copyright © 2001 Griffin Consulting, All Rights Reserved. The tag= coloring control allows the protocol specifier to choose the name used in any generated markup tags. AReal ::= REAL For the value 1.5, this type definition and coloring control will generate 1.5 instead of the default markup 1.5 Note: If tag= is present and empty, no markup tags are generated.
ASN.1 Markup Values Coloring (prefix=) Copyright © 2001 Griffin Consulting, All Rights Reserved. The prefix= coloring control specifies a text string to precede the generated value or markup value. AReal ::= REAL ’>-- For the value 1.5, this type definition and coloring control will generate 1.5 instead of the default markup 1.5 Note: The prefix= string precedes any generated markup start tag.
ASN.1 Markup Values Coloring (suffix=) Copyright © 2001 Griffin Consulting, All Rights Reserved. The suffix= coloring control specifies a text string to follow the generated value or markup value. AReal ::= REAL -- ? ’>-- For the value 1.5, this type definition and coloring control will generate 1.5 ? instead of the default markup 1.5 Note: The suffix= string follows any generated markup end tag.
ASN.1 Markup Values Coloring (dtdFile=) Copyright © 2001 Griffin Consulting, All Rights Reserved. The dtdFile= coloring control specifies the name of a DTD file to be used with the generated markup for a given ASN.1 module. CertificateExtensions DEFINITIONS IMPLICIT TAGS ::= BEGIN Applications may require more than one DTD file, perhaps one per PDU. AReal ::= REAL When a dtdFIle= control is used to color a PDU, it replaces any DTD control specified at the module level for the given PDU.