view Side-By-Side changes
INTERNET-DRAFT S. Leggdraft-legg-xed-asd-xerei-01.txtdraft-legg-xed-asd-xerei-02.txt eB2Bcom Intended Category: Standards TrackNovember 14, 2005October 20, 2006 Abstract Syntax Notation X (ASN.X) Representation of Encoding Instructions for the XML Encoding Rules (XER) Copyright (C) The Internet Society(2005).(2006). Status ofthisThis Memo By submitting this Internet-draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79.By submitting this Internet-draft, I accept the provisions of Section 3 of BCP 78.Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress". The list of current Internet-Drafts can be accessed at http://www.ietf.org/1id-abstracts.html The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html Technical discussion of this document should take place on the XED developers mailing list <xeddev@eb2bcom.com>. Please send editorial comments directly to the editor <steven.legg@eb2bcom.com>. Further information is available on the XED website: www.xmled.info. This Internet-Draft expires on14 May 2006.20 April 2007. Abstract Abstract Syntax Notation X (ASN.X) is an Extensible Markup LanguageLegg Expires 14 May 2006 [Page 1] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005(XML) representation for Abstract Syntax Notation One (ASN.1) specifications. This document specifies the ASN.X representation of encoding instructions for the XML Encoding Rules (XER). Legg Expires14 May 200620 April 2007 [Page2]1] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005October 20, 2006 Table of Contents 1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . 3....................................................2 2.Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . 4Conventions .....................................................3 3.EncodingInstructionAssignmentList Translation. . . . . . . . . 5Preprocessing of ImportedTypesIdentification ....................4 4.EncodingInstruction Translation. . . . . . . . . . . . . . . . 6 4.1. TargetListEncodingInstructionAssignmentList Translation. . . . . . . . . . . . . . . . . 7 4.1.1. TypeIdentification...................4 5. EncodingInstruction Translation. . . . . . . . . 7 4.1.2. BuiltInTypeIdentification Translation. . . . . . 9 4.1.3. IdentifiersInContext.................................5 5.1. AnyAttributesInstruction Translation. . . . . . . . 11 4.1.4. ImportedTypesIdentification Translation. . . . . 12 4.2........................6 5.1.1. NamespaceRestriction Translation. . . . . . . . . . . . 12 4.3. AnyAttributesInstruction Translation . . . . . . . . . . 13 4.4.....................7 5.2. AnyElementInstructionTranslation. . . . . . . . . . . . 13 4.5.Translation ..........................7 5.3. AttributeInstruction Translation. . . . . . . . . . . . 13 4.6............................7 5.4. Base64InstructionTranslation. . . . . . . . . . . . . . 14 4.7.Translation ..............................7 5.5. DecimalInstruction Translation. . . . . . . . . . . . . 14 4.8..............................8 5.6. DefaultForEmptyInstruction Translation. . . . . . . . . 14 4.9......................8 5.7. ElementInstruction Translation. . . . . . . . . . . . . 14 4.10..............................8 5.8. EmbedValuesInstruction Translation. . . . . . . . . . . 14 4.11..........................8 5.9. GlobalDefaultsInstruction Translation ......................8 5.10. ListInstructionTranslation. . . . . . . . . . . . . . . 14 4.12.Translation ...............................9 5.11. NameInstructionTranslation. . . . . . . . . . . . . . . 15 4.13.Translation ...............................9 5.12. NamespaceInstruction Translation. . . . . . . . . . . . 15 4.14..........................10 5.13. PIOrCommentInstruction Translation. . . . . . . . . . . 16 4.15........................10 5.14. TextInstructionTranslation. . . . . . . . . . . . . . . 16 4.16.Translation ..............................11 5.15. UntaggedInstructionTranslation. . . . . . . . . . . . . 17 4.17.Translation ..........................11 5.16. UseNilInstructionTranslation. . . . . . . . . . . . . . 17 4.18.Translation ............................11 5.17. UseNumberInstruction Translation. . . . . . . . . . . . 17 4.19..........................11 5.18. UseOrderInstructionTranslation. . . . . . . . . . . . . 17 4.20.Translation ..........................11 5.19. UseQNameInstructionTranslation. . . . . . . . . . . . . 18 4.21.Translation ..........................12 5.20. UseTypeInstruction Translation. . . . . . . . . . . . . 18 4.22............................12 5.21. UseUnionInstructionTranslation. . . . . . . . . . . . . 18 4.23.Translation ..........................12 5.22. WhiteSpaceInstructionTranslation. . . . . . . . . . . . 18 5. Parameterized Definitions. . . . . . . . . . . . . . . . . . . 18 5.1. Pre-processing Step. . . . . . . . . . . . . . . . . . . 19 5.2.TranslationStep . . . . . . . . . . . . . . . . . . . . 22 5.3. Post-processing Step . . . . . . . . . . . . . . . . . . 24........................12 6.Security Considerations. . . . . . . . . . . . . . . . . . . . 26TargetList Translation .........................................12 6.1. TypeIdentification Translation ............................13 6.2. BuiltInTypeIdentification Translation .....................14 6.3. IdentifiersInContext Translation ..........................16 7. Security Considerations ........................................17 8. IANAConsiderations. . . . . . . . . . . . . . . . . . . . . . 27Considerations ............................................18 9. References .....................................................18 9.1. Normative References ......................................18 9.2. Informative References ....................................19 Appendix A. ASN.1 for XER Encoding InstructionNotation. . . . . . 27Notation ...........19 Appendix B. ASN.1 for Target List Notation ........................23 Appendix C. ASN.X for XER Encoding InstructionNotation. . . . . . 36 Normative References . . . . . . . . . . . . . . . . . . . . . . . 57 Informative References . . . . . . . . . . . . . . . . . . . . . . 59 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 59 Full Copyright Statement . . . . . . . . . . . . . . . . . . . . . 59Notation ...........25 Appendix D. ASN.X for Target List Notation ........................32 1. IntroductionLegg Expires 14 May 2006 [Page 3] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005Abstract Syntax Notation X (ASN.X) [ASN.X] is an Extensible Markup Language (XML) [XML10][XML11] representation for Abstract Syntax Legg Expires 20 April 2007 [Page 2] INTERNET-DRAFT ASN.X: XER Encoding Instructions October 20, 2006 Notation One (ASN.1) [X.680] specifications. The ASN.X representation for the ASN.1 basic notation [X.680] [X.680-1] is described elsewhere [ASN.X]. The grammar of ASN.1 also permits the application of encoding instructions [X.680-1], through type prefixes and encoding control sections, that modify how abstract values are encoded by nominated encoding rules. The generic notation for type prefixes and encoding control sections is defined by the ASN.1 basic notation, however the notation for specific encoding instructions i.e., theEncodingInstructionAssignmentList andEncodingInstruction and EncodingInstructionAssignmentList productions of the notation, are defined separately for each set of encoding rules using encoding instructions. This document specifies the ASN.X representation for EncodingInstructionAssignmentList and EncodingInstruction as they are defined for the XML Encoding Rules (XER) [X.693][X.693-1]. ASN.X is defined in terms of rules for translating from an ASN.1 specification. This does not preclude an ASN.X document being written directly without a pre-existing ASN.1 specification, however such an ASN.X document is considered valid if and only if thereexistsexists, inprincipleprinciple, an ASN.1 specificationwhichthat when translated would yield the ASN.X document. By design, an ASN.X document is also the Robust XML Encoding Rules (RXER) [RXER] encoding of an ASN.1 abstract value. The ASN.1 type definitions for such abstract values, insofar as they pertain to the ASN.1 basic notation, are provided elsewhere [ASN.X], however this document provides the ASN.1 type definitions for representing XER encoding instructions as abstract values. These definitions appear in Appendix A. The ASN.X translation of the ASN.1 module in Appendix A is presented in Appendix B. The General Considerations of the specification for ASN.X [ASN.X] also apply here. 2. Conventions The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED" and "MAY" in this document are to be interpreted as described in, BCP 14, RFC 2119 [BCP14]. The key word "OPTIONAL" is exclusively used with its ASN.1 meaning.Legg Expires 14 May 2006 [Page 4] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005A reference to an ASN.1 production [X.680] (e.g., Type, NamedType) is a reference to the text in an ASN.1 specification corresponding to Legg Expires 20 April 2007 [Page 3] INTERNET-DRAFT ASN.X: XER Encoding Instructions October 20, 2006 that production. The description of the translation of XER encoding instructions into ASN.X makes use of definitions from the XML Information Set (Infoset) [ISET]. In particular, information item property namesare presented perfollow theInfoset,Infoset convention of being shown in square brackets, e.g., [local name]. In the sections that follow, "information item" will be abbreviated to "item", e.g., "element information item" is abbreviated to "element item". Element items will be referred to by their [local name] in angle brackets, e.g., "the <name> element item" means the element item with the [local name] "name". Attribute items will be referred to by their [local name], e.g., "the name attribute item" means the attribute item with the [local name] "name". Code points for characters [UNICODE] are expressed using the Unicode convention U+n, where n is four to six hexadecimal digits, e.g., the space character is U+0020. 3.EncodingInstructionAssignmentList Translation As describedPreprocessing of ImportedTypesIdentification Interpretation of an ImportedTypesIdentification depends on a SymbolList in thespecification for ASN.X [ASN.X], the translationImports of a module, but a SymbolList does not have a direct translation into ASN.X. A module containing an ImportedTypesIdentification must be preprocessed so that each ImportedTypesIdentification has the intended effect. If an EncodingInstruction in anEncodingControlSection forXER EncodingInstructionAssignmentList has a Targets that is anelement item withImportedTypesIdentification then each Type affected by the[local name] "XER". The translation ofImportedTypesIdentification MUST be replaced by an EncodingPrefixedType where theEncodingInstructionAssignmentListType insuch an EncodingControlSection determinesthecontent ofEncodingPrefixedType is the<XER> element item. An element item withoriginal Type and the[local name] "annotation" MAY be added toEncodingPrefix contains the[children] ofEncodingInstruction minus the<XER> element item.TargetList. The ImportedTypesIdentification SHALL be removed. If theEncodingInstructionAssignmentList contains anEncodingInstructionthat is a PositiveInstruction that is a GlobalDefaultsInstruction wherein theDefaultSetting is "MODIFIED- ENCODINGS"EncodingInstructionAssignmentList has no other Targets then it MUST be removed from the EncodingInstructionAssignmentList. 4. EncodingInstructionAssignmentList Translation As described in the specification for ASN.X [ASN.X], the translation of anattributeEncodingControlSection for XER is an element item with the [local name]"modifiedEncodings" and [normalized value] "true" or "1" SHALL be added to"XER". The translation of the[attributes]EncodingInstructionAssignmentList in such an EncodingControlSection determines the content of the <XER> elementitem, otherwise an attributeitem. An element item with the [local name]"modifiedEncodings" and [normalized value] "false" or "0""annotation" MAY be added to the[attributes][children] of the <XER> element item.If the EncodingInstructionAssignmentList contains an EncodingInstruction that is a PositiveInstruction that is a GlobalDefaultsInstruction where the DefaultSetting is a ControlNamespace then theLegg Expires 20 April 2007 [Page 4] INTERNET-DRAFT ASN.X: XER Encoding Instructions October 20, 2006 The translation of each EncodingInstruction in theControlNamespaceEncodingInstructionAssignmentList SHALL beaddedappended to the [children] of the <XER> element item. 5. EncodingInstruction Translation The translation ofa ControlNamespacean EncodingInstruction for XER can appear in the translation of an EncodingInstructionAssignmentList (see the previous section) or an EncodingPrefix. The translation for an EncodingPrefix is described by the specification for ASN.X [ASN.X]. The translation of an EncodingInstruction in an EncodingInstructionAssignmentList for XER is an elementitemwith theLegg Expires 14 May 2006 [Page 5] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005[local name]"controlNamespace". An attribute item with"targettedInstruction". The translation of the[local name] "name"PositiveInstruction or NegatingInstruction in the EncodingInstruction SHALL be added to the[attributes][children] of the<controlNamespace><targettedInstruction> element item. The[normalized value]translation ofthis attribute item is the Uniform Resource Identifier (URI) [URI] intheQuotedURI inTargetList within theControlNamespace. Ifencoding instruction SHALL be appended to theControlNamespace contains a Prefix then an attribute item with the [local name] "prefix" SHALL be added to the [attributes][children] of the<controlNamespace><targettedInstruction> element item. Aside: The[normalized value] of this attribute item is the NCName in the QuotedNCName in the Prefix. The translation of eachTargetList appears within an EncodingInstruction inthean EncodingInstructionAssignmentList,excluding any GlobalDefaultsInstruction, is appended tobut its ASN.X translation appears immediately after the[children]translation of the<XER> element item.EncodingInstruction rather than within it. Example ENCODING-CONTROL XER GLOBAL-DEFAULTS MODIFIED-ENCODINGSGLOBAL-DEFAULTS CONTROL-NAMESPACE "http://example.com" PREFIX "ex" <XER modifiedEncodings="true"> <controlNamespace name="http://example.com" prefix="ex"/>ATTRIBUTE MyType <encodingControls> <XER> <targettedInstruction> <globalDefaults> <modifiedEncodings/> </globalDefaults> </targettedInstruction> <targettedInstruction> <attribute/> <target type="MyType"/> </targettedInstruction> </XER>4. EncodingInstruction Translation</encodingControls> The translation of an EncodingInstruction for XERcan appearinthe translation of an EncodingInstructionAssignmentList (see the previous section) or an EncodingPrefix. The translation foran EncodingPrefix isdescribed by the specification for ASN.X [ASN.X]. The translation of an EncodingInstruction for XER isthe translation of the contained PositiveInstruction or NegatingInstruction. Legg Expires 20 April 2007 [Page 5] INTERNET-DRAFT ASN.X: XER Encoding Instructions October 20, 2006 Aside: The TargetList within an EncodingInstruction in an EncodingPrefix is required to be empty and has no ASN.X translation in this context. The translation of a PositiveInstruction is the translation of the contained AnyAttributeInstruction, AnyElementInstruction, AttributeInstruction, Base64Instruction, DecimalInstruction, DefaultForEmptyInstruction, EmbedValuesInstruction, GlobalDefaultsInstruction, ListInstruction, NameInstruction, NamespaceInstruction, PIOrCommentInstruction, TextInstruction, UntaggedInstruction, UseNilInstruction, UseNumberInstruction, UseOrderInstruction, UseQNameInstruction, UseTypeInstruction, UseUnionInstruction or WhitespaceInstruction.ASIDE: A GlobalDefaultsInstruction is ignored here. It is considered in Section 4. Legg Expires 14 May 2006 [Page 6] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005The translation of a NegatingInstruction that is an ElementInstruction is the translation of that ElementInstruction. The translation of a NegatingInstruction that is not an ElementInstruction is an element itemwithwhere the [local name]"not". Theis the concatenation of "not-" and the [local name] that would be used by the translation of the PositiveInstruction in theNegatingInstruction SHALL beNegatingInstruction. No items are added to the [attributes] or [children] of the<not>elementitem. 4.1. TargetList Translation The TargetList production is common to allitem resulting from theencoding instructions. Thetranslation of aTargetList is the concatenation of the translations of each of the contained Targets.NegatingInstruction. Example [XER:NOT ATTRIBUTE] MyType <type> <prefixed> <XER><not-attribute/></XER> <type ref="MyType"/> </prefixed> </type> 5.1. AnyAttributesInstruction Translation The translation ofa Targetsan AnyAttributesInstruction is an element item with the [local name]"target". The content of the <target> element item"anyAttributes". If a NamespaceRestriction is present, then the translation of thecontained TypeIdentification, BuiltInTypeIdentification, IdentifiersInContext or ImportedTypesIdentification. 4.1.1. TypeIdentificationNamespaceRestriction is added to the [children] of the <anyAttributes> element item. Example ANY-ATTRIBUTES FROM "http://example.com" ABSENT <anyAttributes> Legg Expires 20 April 2007 [Page 6] INTERNET-DRAFT ASN.X: XER Encoding Instructions October 20, 2006 <namespace>http://example.com</namespace> <local/> </anyAttributes> 5.1.1. NamespaceRestriction Translation The NamespaceRestriction production is common to AnyAttributesInstruction and AnyElementInstruction. The translation of aTypeIdentificationNamespaceRestriction of the"ALL""FROM URIList" form is an element item with the [local name]"allTypes", otherwise the translation of a TypeIdentification is the translation of the ModuleAndTypeReference followed by the"from". The translation of each QuotedURIorAbsent in theComponentReference, if present, followed byURIList is appended to thetranslation[children] of theQualifyingInformationPart, if present.<from> element item. The translation of aModuleAndTypeReferenceNamespaceRestriction of the "EXCEPT URIList" form is anattributeelement item with the [local name]"type"."except". The[normalized value]translation ofthis attribute item iseach QuotedURIorAbsent in thequalified name [XMLNS10] correspondingURIList is appended to thetypereference in the ModuleAndTypeReference (see Section 5.1[children] of[ASN.X]).the <except> element item. The translation of aComponentReferenceQuotedURIorAbsent that is a QuotedURI is an element item with the [local name]"component" and, if"namespace". The sequence of character items for thefinal ComponentIdURI in theComponentIdList inQuotedURI is added to theComponentReference[children] of the <namespace> element item. The translation of a QuotedURIorAbsent of the "ABSENT" form is"ALL",an element item with the [local name]"allTextuallyPresent"."local". 5.2. AnyElementInstruction Translation The[children] propertytranslation ofthe <component>an AnyElementInstruction is an element itemis set towith thesequence of character items for[local name] "anyElement". If a"/" (U+002F) separated list ofNamespaceRestriction is present, then thetranslationstranslation of theComponentId instances, excluding "ALL" if present. Leading and/or trailing white space character items MAY beNamespaceRestriction is added to the [children] of the<component><anyElement> element item.White space character items MAY be added immediately before and/or after any character5.3. AttributeInstruction Translation The translation of an AttributeInstruction is an element itemforwith the"/" character. Legg[local name] "attribute". Example ATTRIBUTE <attribute/> 5.4. Base64Instruction Translation The translation of a Base64Instruction is an element item with the Legg Expires14 May 200620 April 2007 [Page 7] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 If a ComponentId identifies the Type in a NamedType then the translation of the ComponentId is the RXER character data translation [RXER] of the effective name [RXEREI] of the NamedType. If the NamedType is subject to an RXER ATTRIBUTE or ATTRIBUTE-REF encoding instruction [RXEREI] then a "@" (U+0040) character is prefixed to the translation. If a ComponentId identifies a Type that is not in a NamedType (the component type for a SEQUENCE OF or SET OF type) then theOctober 20, 2006 [local name] "base64". 5.5. DecimalInstruction Translation The translation ofthe ComponentId is the character string "item". If a ComponentId does not identifyaType and the ComponentIdDecimalInstruction is anidentifier thenelement item with the [local name] "decimal". 5.6. DefaultForEmptyInstruction Translation The translation ofthe ComponentId is the identifier. IfaComponentId does not identify a Type and the ComponentIdDefaultForEmptyInstruction is"*" thenan element item with the [local name] "defaultForEmpty". The translation of theComponentId isValue in thecharacter string "item". The <component> element item is required toDefaultForEmptyInstruction SHALL beself-contained [RXER]. ASIDE: An element item is self-contained if all namespace prefixes used byadded to theelement item and its contents are declared within[children] or [attributes] of the <defaultForEmpty> element item. Example DEFAULT-FOR-EMPTY AS "unspecified" <defaultForEmpty literalValue="unspecified"/> 5.7. ElementInstruction Translation The translation ofa QualifyingInformationPartan ElementInstruction is an element item with thetranslation of the contained QualifyingInformation.[local name] "element". 5.8. EmbedValuesInstruction Translation The translation ofa QualifyingInformation of the "identifier" forman EmbedValuesInstruction is an element item with the [local name]"identifier". An attribute"embedValues". 5.9. GlobalDefaultsInstruction Translation The translation of a GlobalDefaultsInstruction is an element item with the [local name]"name""globalDefaults". If the DefaultSetting in the GlobalDefaultsInstruction is "MODIFIED- ENCODINGS", then an element item with the [local name] "modifiedEncodings" SHALL be added to the[attributes][children] of the<identifier><globalDefaults> element item. If theModuleTypeAndReference and ComponentReference (if present) identify a BIT STRING, ENUMERATED, or INTEGER type whereDefaultSetting in theassociated BitStringType, EnumeratedType or IntegerType (respectively)GlobalDefaultsInstruction issubject to an RXER VALUES encoding instructiona ControlNamespace, then the[normalized value]translation of theattribute item is the replacement name [RXEREI] for the identifier, otherwiseControlNamespace SHALL be added to the[normalized value] is[children] of theidentifier.<globalDefaults> element item. The translation of aQualifyingInformation of the "ALL" formControlNamespace is an element item with the [local name]"allIdentifiers". Examples Assume"controlNamespace". An attribute item with the [local name] "name" SHALL be added to the [attributes] of the <controlNamespace> element item. The [normalized value] of thistype assignment: MyType ::= SEQUENCE { a SEQUENCE OF CHOICE { b ENUMERATED { red, green, blue },Legg Expires14 May 200620 April 2007 [Page 8] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 c INTEGER } } MyType.a.*.ALL <target type="MyType"> <component> a / item </component> <allTextuallyPresent/> </target> MyType.a.*.b:ALL <target type="MyType"> <component> a /October 20, 2006 attribute item/ b </component> <allIdentifiers/> </target> 4.1.2. BuiltInTypeIdentification Translation The translation of a BuiltInTypeIdentificationis thetranslation of the BuiltInTypeName followed byUniform Resource Identifier (URI) [URI] in thetranslation ofQuotedURI in theBuiltInTypeQualifyingInformationPart, if present.ControlNamespace. If theBuiltInTypeName is "BIT STRING", "BOOLEAN", "CHARACTER STRING", "EMBEDDED PDV", "EXTERNAL", "GeneralizedTime", "INTEGER", "NULL", "ObjectDescriptor", "OBJECT IDENTIFIER", "OCTET STRING", "REAL", "RELATIVE-OID" or "UTCTime"ControlNamespace contains a Prefix, thenthe translation of the BuiltInTypeName isan attribute item with the [local name]"type"."prefix" SHALL be added to the [attributes] of the <controlNamespace> element item. The [normalized value] of this attribute item isa qualified name withthenamespace name being "http://xmled.info/ns/ASN.1" andNCName in thelocal part beingQuotedNCName in theBuiltInTypeName with any white space separators replaced by a single hyphen character (U+002D), e.g. BIT STRING becomes BIT-STRING. If the BuiltInTypeName isPrefix. Example GLOBAL-DEFAULTS CONTROL-NAMESPACE "http://example.com" PREFIX "ex" <globalDefaults> <controlNamespace name="http://example.com" prefix="ex"/> </globalDefaults> 5.10. ListInstruction Translation The translation of aRestrictedCharacterStringType thenListInstruction is an element item with the [local name] "list". 5.11. NameInstruction Translation The translation of a NameInstruction is an element item with theBuiltInTypeName[local name] "name". If the NewNameOrKeyword in the NameInstruction is a NewName, then an attribute item with the [local name]"type"."newName" SHALL be added to the [attributes] of the <name> element item. The [normalized value] of this attribute item isa qualified name with the namespace name being "http://xmled.info/ns/ASN.1" andthelocal part beingcharacter string value of theRestrictedCharacterStringType, i.e., BMPString, GeneralString, GraphicString, IA5String, ISO646String, NumericString, PrintableString, TeletexString, T61String, UniversalString, UTF8String, VideotexString or VisibleString.NewName. If theBuiltInTypeName is "CHOICE" then the translation ofNewNameOrKeyword in theBuiltInTypeNameNameInstruction is a Keyword, then anelementattribute item with the [local name]"choice"."conversion" SHALL be added to the [attributes] of the <name> element item. The [normalized value] of this attribute item is the keyword in the Keyword with all letters downcased, i.e., "capitalized", "uncapitalized", "uppercased" or "lowercased". Example NAME AS UNCAPITALIZED <name conversion="uncapitalized"/> NAME AS "category" <name newName="category"/> Legg Expires14 May 200620 April 2007 [Page 9] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 If the BuiltInTypeName is "ENUMERATED" then theOctober 20, 2006 5.12. NamespaceInstruction Translation The translation ofthe BuiltInTypeNamea NamespaceInstruction is an element item with the [local name]"enumerated"."namespace". Ifthe BuiltInTypeNamea NamespaceSpecification is"INSTANCE OF"present, thenthe translation of the BuiltInTypeName isanelementattribute item with the [local name]"instanceOf". If the BuiltInTypeName is "SEQUENCE" then"name" SHALL be added to thetranslation[attributes] of theBuiltInTypeName is an<namespace> element item. The [normalized value] of this attribute itemwith the [local name] "sequence". If the BuiltInTypeNameis"SEQUENCE OF" thenthetranslation ofURI in theBuiltInTypeNameQuotedURI in the NamespaceSpecification. If a Prefix is present in the NamespaceSpecification, then anelementattribute item with the [local name]"sequenceOf". If"prefix" SHALL be added to theBuiltInTypeName is "SET" then the translation[attributes] of theBuiltInTypeName is an<namespace> element item. The [normalized value] of this attribute itemwithis the[local name] "set". IfNCName in theBuiltInTypeName is "SET OF" thenQuotedNCName in the Prefix. Example NAMESPACE AS "http://example.com" PREFIX "ex" <namespace name="http://example.com" prefix="ex"/> 5.13. PIOrCommentInstruction Translation The translation ofthe BuiltInTypeNamea PIOrCommentInstruction is an element item with the [local name]"setOf". The translation of a BuiltInTypeQualifyingInformationPart is"piOrComment". An attribute item with thetranslation[local name] "text" SHALL be added to the [attributes] of thecontained BuiltInTypeQualifyingInformation.<piOrComment> element item. Thetranslation[normalized value] ofa BuiltInTypeQualifyingInformationthis attribute item is the character string value of the"identifier" form is an element item withRestrictedCharacterStringValue in the[local name] "identifier".PIOrCommentInstruction. An attribute item with the [local name]"name""position" SHALL be added to the [attributes] of the<identifier><piOrComment> element item. The [normalized value] of this attribute item is "beforeTag" if theactual identifier. The translation of a BuiltInTypeQualifyingInformationPart ofkeyword in the"ALL" formPosition in the PIOrCommentInstruction isan element item withBEFORE-TAG, "beforeValue" if the[local name] "allIdentifiers". Examples BOOLEAN:true <target type="asn1:BOOLEAN"> <identifier name="true"/> </target> ENUMERATED:ALL <target> <enumerated/> <allIdentifiers/> </target>keyword in the Position is BEFORE-VALUE, "afterTag" if the keyword in the Position is AFTER-TAG, or "afterValue" if the keyword in the Position is AFTER-VALUE. Example PI-OR-COMMENT AS "<!-- This is a comment. -->" BEFORE-TAG <piOrComment text="<!-- This is a comment. -->" position="beforeTag"/> Legg Expires14 May 200620 April 2007 [Page 10] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 4.1.3. IdentifiersInContextOctober 20, 2006 5.14. TextInstruction Translation The translation ofan IdentifiersInContexta TextInstruction is an element item with the [local name]"components"."text". Ifthe IdentifierLista TextToBeUsed is present in theIdentifiersInContext is not ofTextInstruction and the"ALL" or "COMPONENTS" form then, for each identifierNewNameOrKeyword in theIdentifierList,TextToBeUsed is a NewName, then anelementattribute item with thesame[local name](i.e., "attribute", "element", "group", "member" or "item") as the translation of the NamedType corresponding to the identifier"newName" SHALL beappendedadded to the[children][attributes] of the<components><text> element item.AnThe [normalized value] of this attribute itemwith the [local name] "name" SHALL be added to the [attributes] of each <attribute>, <element>, <content>, <member> or <item> element item, as appropriate. The [normalized value] of each of these attribute itemsis theRXERcharacterdata translation [RXER] of the effective name [RXEREI]string value of theNamedType corresponding to the identifier.NewName. If a TextToBeUsed is present in theIdentifierListTextInstruction and the NewNameOrKeyword in theIdentifiersInContextTextToBeUsed isof the "ALL" forma Keyword, then anelementattribute item with the [local name]"allTextuallyPresent""conversion" SHALL beappendedadded to the[children][attributes] of the<components><name> element item.IfThe [normalized value] of this attribute item is theIdentifierListkeyword in theIdentifiersInContext isKeyword with all letters downcased, i.e., "capitalized", "uncapitalized", "uppercased" or "lowercased". Examples TEXT AS UPPERCASED <text conversion="uppercased"/> TEXT AS "A4" <text newName="A4"/> 5.15. UntaggedInstruction Translation The translation ofthe "COMPONENTS" form thenan UntaggedInstruction is an element item with the [local name]"allFirstLevel" SHALL be appended to the [children]"untagged". 5.16. UseNilInstruction Translation The translation ofthe <components> element item. Ana UseNilInstruction is an element item with the [local name]"in" SHALL be appended to the [children] of the <components> element item."useNil". 5.17. UseNumberInstruction Translation Thecontenttranslation ofthe <in>a UseNumberInstruction is an element itemiswith the [local name] "useNumber". 5.18. UseOrderInstruction Translation The translation of a UseOrderInstruction is an element item with theTypeIdentification in the IdentifiersInContext. Example Assume this type assignment: MyType ::= SEQUENCE { field INTEGER, fieldAtt [RXER:NAME AS "field"][RXER:ATTRIBUTE] BOOLEAN } field, fieldAtt IN MyType <target> <components> <element name="field"/> <attribute name="field"/> <in type="MyType"/> </components>[local name] "useOrder". Legg Expires14 May 200620 April 2007 [Page 11] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 </target> 4.1.4. ImportedTypesIdentificationOctober 20, 2006 5.19. UseQNameInstruction Translation The translation ofan ImportedTypesIdentificationa UseQNameInstruction is an element item with the [local name]"allImportsFrom". An attribute"useQName". 5.20. UseTypeInstruction Translation The translation of a UseTypeInstruction is an element item with the [local name]"name" SHALL be added to the [attributes] of the <allImportsFrom> element item."useType". 5.21. UseUnionInstruction Translation The[normalized value]translation ofthis attribute item is the modulereference in the ImportedTypesIdentification. If the module identified by the modulereference hasanon-empty DefinitiveIdentifier in the ModuleIdentifier in its ModuleDefinition thenUseUnionInstruction is anattributeelement item with the [local name]"identifier" SHOULD be added to the [attributes] of the <allImportsFrom> element item."useUnion". 5.22. WhiteSpaceInstruction Translation The[normalized value] of this attribute item is the RXER character datatranslation of a WhiteSpaceInstruction is an element item with theOBJECT IDENTIFIER value indicated by the DefinitiveIdentifier.[local name] "whiteSpace". If a WhiteSpaceAction is present in themodule identified by the modulereference has an RXER SCHEMA-IDENTITY encoding instructionWhiteSpaceInstruction, thenanAn attribute item with the [local name]"schemaIdentity""action" SHALL be added to the [attributes] of the<allImportsFrom><whiteSpace> element item. The [normalized value] of this attribute item is thecharacter string specified bykeyword in theAnyURIValue ofWhiteSpaceAction in theSCHEMA-IDENTITY encoding instruction.WhiteSpaceInstruction with all letters downcased, i.e., "replace" or "collapse". ExampleALL IMPORTS FROM MyModule <allImportsFrom name="MyModule"/> 4.2. NamespaceRestrictionWHITESPACE COLLAPSE <whiteSpace action="collapse"/> 6. TargetList Translation TheNamespaceRestrictionTargetList production is common toAnyAttributesInstruction and AnyElementInstruction.all the encoding instructions. The translation of aNamespaceRestriction of the "FROM URIList" formTargetList isan element item withthe[local name] "from". The translationconcatenation ofeach QuotedURIorAbsent in the URIList is appended tothe[children]translations of each of the<from> element item.contained Targets. The translation of aNamespaceRestriction of the "EXCEPT URIList" formTargets is an element item with the [local name]"except"."target". The translation ofeach QuotedURIorAbsent intheURIList is appendedcontained TypeIdentification, BuiltInTypeIdentification or IdentifiersInContext SHALL be added to the [children] and/or [attributes] of the<except><target> element item.The translation of a QuotedURIorAbsentAside: A Targets that isa QuotedURI isan ImportedTypesIdentification will have been removed by the preprocessing described in Section 3. Legg Expires14 May 200620 April 2007 [Page 12] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 element item with the [local name] "namespace". The sequence of character items for the URI in the QuotedURI is added to the [children] of the <namespace> element item.October 20, 2006 6.1. TypeIdentification Translation The translation of aQuotedURIorAbsentTypeIdentification of the"ABSENT""ALL" form is an element item with the [local name]"local". 4.3. AnyAttributesInstruction Translation The"allTypes", otherwise the translation ofan AnyAttributesInstructiona TypeIdentification isan element item withthe[local name] "anyAttributes". Thetranslation of theTargetList in the AnyAttributesInstruction SHALL be added to the [children] of the <anyAttributes> element item. If a NamespaceRestriction is present thenModuleAndTypeReference followed by the translation of theNamespaceRestriction is appended toComponentReference, if present, followed by the[children]translation of the<anyAttributes> element item. Example ANY-ATTRIBUTES FROM "http://example.com" ABSENT <anyAttributes> <namespace>http://example.com</namespace> <local/> </anyAttributes> 4.4. AnyElementInstruction TranslationQualifyingInformationPart, if present. The translation ofan AnyElementInstructiona ModuleAndTypeReference is anelementattribute item with the [local name]"anyElement"."type". Thetranslation of the TargetList in the AnyElementInstruction SHALL be added to the [children][normalized value] ofthe <anyElement> element item. If a NamespaceRestrictionthis attribute item ispresent thenthetranslation of the NamespaceRestriction is appendedqualified name [XMLNS10] corresponding to the[children]typereference in the ModuleAndTypeReference (see Section 5.1 of the<anyElement> element item. 4.5. AttributeInstruction Translationspecification for ASN.X [ASN.X]). The translation ofan AttributeInstructiona ComponentReference is an element item with the [local name]"attribute". The translation of"component" and, if theTargetListfinal ComponentId in theAttributeInstruction SHALL be added to the [children] ofComponentIdList in the<attribute> element item. Example ATTRIBUTE <attribute/> Legg Expires 14 May 2006 [Page 13] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 4.6. Base64Instruction Translation The translation of a Base64InstructionComponentReference is "ALL", an element item with the [local name]"base64"."allTextuallyPresent". Thetranslation of the TargetList in the Base64Instruction SHALL be added to the[children] property of the<base64> element item. 4.7. DecimalInstruction Translation The translation of a DecimalInstruction is an<component> element itemwithis set to the[local name] "decimal". The translationsequence of character items for a "/" (U+002F) separated list of theTargetList intranslations of theDecimalInstruction SHALLComponentId instances, excluding "ALL" if present. Leading and/or trailing white space character items MAY be added to the [children] of the<decimal><component> element item.4.8. DefaultForEmptyInstruction Translation The translation of a DefaultForEmptyInstruction is an elementWhite space character items MAY be added immediately before and/or after any character itemwithfor the "/" character. If a ComponentId identifies the Type in a NamedType, then the[local name] "defaultForEmpty". Thetranslation of theTargetList inComponentId is theDefaultForEmptyInstruction SHALL be added toRXER character data translation [RXER] of the[children]effective name [RXEREI] of the<defaultForEmpty> element item.NamedType. If theValueNamedType ispresent insubject to an RXER ATTRIBUTE or ATTRIBUTE-REF encoding instruction [RXEREI], then a "@" (U+0040) character is prefixed to theDefaultForEmptyInstructiontranslation. If a ComponentId identifies a Type that is not in a NamedType (the component type for a SEQUENCE OF or SET OF type), then the translation of theValueComponentId isappended tothecontent ofcharacter string "item". If a ComponentId does not identify a Type and the<defaultForEmpty> element item. Example DEFAULT-FOR-EMPTY AS "unspecified" <defaultForEmpty literalValue="unspecified"/> 4.9. ElementInstruction Translation The translation of an ElementInstructionComponentId is anelement item withidentifier, then the[local name] "element". Thetranslation of theTargetList in the ElementInstruction SHALL be added toComponentId is the[children] ofidentifier. If a ComponentId does not identify a Type and the<element> element item. 4.10. EmbedValuesInstruction Translation The translation of an EmbedValuesInstructionComponentId isan element item with"*", then the[local name] "embedValues". Thetranslation of theTargetList in the EmbedValuesInstruction SHALL be added to the [children] ofComponentId is the<embedValues> element item. 4.11. ListInstruction Translationcharacter string "item". Thetranslation of a ListInstruction is an<component> element itemwith the [local name] "list". The translation of the TargetList in theis required to be self-contained [RXER]. Legg Expires14 May 200620 April 2007 [Page14]13] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 ListInstruction SHALL be added toOctober 20, 2006 Aside: An element item is self-contained if all namespace prefixes used by the[children] ofelement item and its contents are declared within the<list>element item.4.12. NameInstruction TranslationThe translation of aNameInstructionQualifyingInformationPart isan element item withthe[local name] "name". Thetranslation of theTargetList in the NameInstruction SHALL be added to the [children]contained QualifyingInformation. The translation ofthe <name> element item. IfaNewNameOrKeyword is present in the NameInstruction andQualifyingInformation of theNewNameOrKeyword"identifier" form isa NewName thenan element item with the [local name] "identifier". An attribute item with the [local name]"newName""name" SHALL be added to the [attributes] of the<name><identifier> element item.The [normalized value] of this attribute item is the character string value of the NewName.Ifa NewNameOrKeyword is present intheNameInstructionModuleTypeAndReference andthe NewNameOrKeyword isComponentReference (if present) identify aKeyword then an attribute item withBIT STRING, ENUMERATED, or INTEGER type where the[local name] "conversion" SHALL be addedassociated BitStringType, EnumeratedType or IntegerType (respectively) is subject to an RXER VALUES encoding instruction, then the[attributes] of the <name> element item. The[normalized value] ofthisthe attribute item is thekeyword inreplacement name [RXEREI] for theKeyword with all letters downcased, i.e., "capitalized", "uncapitalized", "uppercased" or "lowercased". Example NAME AS UNCAPITALIZED <name conversion="uncapitalized"/> NAME AS "category" <name newName="category"/> 4.13. NamespaceInstruction Translationidentifier, otherwise the [normalized value] is the identifier. The translation of aNamespaceInstructionQualifyingInformation of the "ALL" form is an element item with the [local name]"namespace"."allIdentifiers". Examples Assume this type assignment: MyType ::= SEQUENCE { a SEQUENCE OF CHOICE { b ENUMERATED { red, green, blue }, c INTEGER } } MyType.a.*.ALL <target type="MyType"> <component> a / item </component> <allTextuallyPresent/> </target> MyType.a.*.b:ALL <target type="MyType"> <component> a / item / b </component> <allIdentifiers/> </target> 6.2. BuiltInTypeIdentification Translation Legg Expires 20 April 2007 [Page 14] INTERNET-DRAFT ASN.X: XER Encoding Instructions October 20, 2006 The translation of a BuiltInTypeIdentification is theTargetList intranslation of theNamespaceInstruction SHALL be added toBuiltInTypeName followed by the[children]translation of the<namespace> element item.BuiltInTypeQualifyingInformationPart, if present. Ifa NamespaceSpecification is present then an attribute item withthe[local name] "name" SHALL be added toBuiltInTypeName is "BIT STRING", "BOOLEAN", "CHARACTER STRING", "EMBEDDED PDV", "EXTERNAL", "GeneralizedTime", "INTEGER", "NULL", "ObjectDescriptor", "OBJECT IDENTIFIER", "OCTET STRING", "REAL", "RELATIVE-OID" or "UTCTime", then the[attributes]translation of the<namespace> element item.BuiltInTypeName is an attribute item with the [local name] "type". The [normalized value] of this attribute item is a qualified name with theURI innamespace name being "urn:ietf:params:xml:ns:asnx" and theQuotedURI inlocal part being theNamespaceSpecification. IfBuiltInTypeName with any white space separators replaced by aPrefix is present insingle hyphen character (U+002D), e.g. BIT STRING becomes BIT-STRING. If theNamespaceSpecificationBuiltInTypeName is a RestrictedCharacterStringType, then the translation of the BuiltInTypeName is an attribute item with the [local name]"prefix" SHALL be added to the [attributes] of the <namespace> element item."type". The [normalized value]Legg Expires 14 May 2006 [Page 15] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005of this attribute item is a qualified name with theNCName innamespace name being "urn:ietf:params:xml:ns:asnx" and theQuotedNCName inlocal part being the RestrictedCharacterStringType, i.e., BMPString, GeneralString, GraphicString, IA5String, ISO646String, NumericString, PrintableString, TeletexString, T61String, UniversalString, UTF8String, VideotexString or VisibleString. If the BuiltInTypeName is "CHOICE", then thePrefix. Example NAMESPACE AS "http://example.com" PREFIX "ex" <namespace name="http://example.com" prefix="ex"/> 4.14. PIOrCommentInstruction Translation Thetranslation ofa PIOrCommentInstructionthe BuiltInTypeName is an element item with the [local name]"piOrComment". The translation of the TargetList in"choice". If thePIOrCommentInstruction SHALL be added toBuiltInTypeName is "ENUMERATED", then the[children]translation of the<piOrComment> element item. If a RestrictedCharacterStringValueBuiltInTypeName ispresent in the PIOrCommentInstruction thenanattributeelement item with the [local name]"text" SHALL be added to"enumerated". If the[attributes]BuiltInTypeName is "INSTANCE OF", then the translation of the<piOrComment>BuiltInTypeName is an elementitem. The [normalized value] of this attributeitem with the [local name] "instanceOf". If the BuiltInTypeName is "SEQUENCE", then thecharacter stringtranslation of theRestrictedCharacterStringValue. If a PositionBuiltInTypeName ispresent in the PIOrCommentInstruction thenanattributeelement item with the [local name]"position" SHALL be added to the [attributes] of the <piOrComment> element item. The [normalized value] of this attribute item is "beforeTag" if the keyword in"sequence". If thePositionBuiltInTypeName isBEFORE-TAG, "beforeValue" if"SEQUENCE OF", then thekeyword intranslation of thePositionBuiltInTypeName isBEFORE-VALUE, "afterTag" ifan element item with thekeyword in[local name] "sequenceOf". If thePositionBuiltInTypeName isAFTER-TAG, or "afterValue" if the keyword in"SET", then thePosition is AFTER-VALUE. Example PI-OR-COMMENT AS "<!-- This is a comment. -->" BEFORE-TAG <piOrComment text="<!-- This is a comment. -->" position="beforeTag"/> 4.15. TextInstruction Translation Thetranslation ofa TextInstructionthe BuiltInTypeName is an element item with the [local name]"text". The translation of the TargetList in the TextInstruction SHALL be added to the [children] of the <text> element item."set". Ifa TextToBeUsed is present intheTextInstruction andBuiltInTypeName is "SET OF", then theNewNameOrKeyword intranslation of theTextToBeUsedBuiltInTypeName isa NewName thenanattributeelement item with the [local name]"newName" SHALL be added to the"setOf". Legg Expires14 May 200620 April 2007 [Page16]15] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 [attributes] of the <text> element item.October 20, 2006 The[normalized value]translation ofthis attribute itema BuiltInTypeQualifyingInformationPart is thecharacter string valuetranslation of theNewName. Ifcontained BuiltInTypeQualifyingInformation. The translation of aTextToBeUsed is present in the TextInstruction and the NewNameOrKeyword inBuiltInTypeQualifyingInformation of theTextToBeUsed"identifier" form isa Keyword thenan element item with the [local name] "identifier". An attribute item with the [local name]"conversion""name" SHALL be added to the [attributes] of the<name><identifier> element item. The [normalized value] of this attribute item is thekeyword inactual identifier. The translation of a BuiltInTypeQualifyingInformationPart of theKeyword"ALL" form is an element item withall letters downcased, i.e., "capitalized", "uncapitalized", "uppercased" or "lowercased".the [local name] "allIdentifiers". ExamplesTEXT AS UPPERCASED <text conversion="uppercased"/> TEXT AS "A4" <text newName="A4"/> 4.16. UntaggedInstructionBOOLEAN:true <target xmlns:asnx="urn:ietf:params:xml:ns:asnx" type="asnx:BOOLEAN"> <identifier name="true"/> </target> ENUMERATED:ALL <target> <enumerated/> <allIdentifiers/> </target> 6.3. IdentifiersInContext Translation The translation of anUntaggedInstructionIdentifiersInContext is an element item with the [local name]"untagged". The translation of"components". If theTargetListIdentifierList in theUntaggedInstruction SHALL be added to the [children]IdentifiersInContext is not of the<untagged> element item. 4.17. UseNilInstruction Translation The translation of a UseNilInstruction is"ALL" or "COMPONENTS" form, then for each identifier in the IdentifierList, an element item with the same [local name]"useNil". The(i.e., "attribute", "element", "component", "group", "member" or "item") as the translation of theTargetList inNamedType corresponding to theUseNilInstructionidentifier SHALL beaddedappended to the [children] of the<useNil><components> element item.4.18. UseNumberInstruction Translation The translation of a UseNumberInstruction is an elementAn attribute item with the [local name]"useNumber". The translation of the TargetList in the UseNumberInstruction"name" SHALL be added to the[children][attributes] ofthe <useNumber>each <attribute>, <element>, <component>, <group>, <member> or <item> elementitem. 4.19. UseOrderInstruction Translationitem, as the case may be. Thetranslation[normalized value] ofa UseOrderInstructioneach of these attribute items isan element item withthe[local name] "useOrder". TheRXER character data translation [RXER] of theTargetList ineffective name [RXEREI] of theUseOrderInstruction SHALL be addedNamedType corresponding to the[children]identifier. If the IdentifierList in the IdentifiersInContext is of the<useOrder>"ALL" form, then an elementitem.item with the [local name] Legg Expires14 May 200620 April 2007 [Page17]16] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 4.20. UseQNameInstruction Translation The translation of a UseQNameInstruction is an element item with the [local name] "useQName". The translation of the TargetList in the UseQNameInstructionOctober 20, 2006 "allTextuallyPresent" SHALL beaddedappended to the [children] of the<useQName><components> element item.4.21. UseTypeInstruction Translation The translation of a UseTypeInstructionIf the IdentifierList in the IdentifiersInContext is of the "COMPONENTS" form, then an element item with the [local name]"useType". The translation of the TargetList in the UseTypeInstruction"allFirstLevel" SHALL beaddedappended to the [children] of the<useType><components> element item.4.22. UseUnionInstruction Translation The translation of a UseUnionInstruction is anAn element item with the [local name]"useUnion". The translation of the TargetList in the UseUnionInstruction"in" SHALL beaddedappended to the [children] of the<useUnion><components> element item.4.23. WhiteSpaceInstruction Translation The translation of a WhiteSpaceInstruction is an element item with the [local name] "whiteSpace".The translation of theTargetListTypeIdentification in theWhiteSpaceInstructionIdentifiersInContext SHALL be added to the [children] and/or [attributes] of the<whiteSpace><in> element item.If a WhiteSpaceActionExample Assume this type assignment: MyType ::= SEQUENCE { field INTEGER, fieldAtt [RXER:NAME AS "field"][RXER:ATTRIBUTE] BOOLEAN } field, fieldAtt IN MyType <target> <components> <element name="field"/> <attribute name="field"/> <in type="MyType"/> </components> </target> 7. Security Considerations The ASN.X translation of an XER encoding instruction ispresent insemantically equivalent to theWhiteSpaceInstruction thenoriginal XER encoding instruction. The security considerations that apply to anattribute itemapplication built from an original ASN.1 specification withthe [local name] "action" SHALL be addedXER encoding instructions apply equally to an application built from the[attributes]ASN.X translation of the<whiteSpace> element item. The [normalized value] of this attribute item isASN.1 specification. Syntax-based canonicalization for XML documents (e.g., Canonical XML [CXML]) depends on thekeyword inInfoset of an XML document being preserved. However, theWhiteSpaceAction with all letters downcased, i.e., "replace" or "collapse". Example WHITESPACE COLLAPSE <whiteSpace action="collapse"/> 5. Parameterized Definitions The translationInfoset representation of anASN.1 specification intoASN.X[ASN.X] replaces any DummyReference [X.683] or reference to a parameterized definition [X.683] withdocument (an abstract value of thedefinition expanded in-line. For example, a ParameterizedObjectModuleDefinition ASN.1 type) potentially changes if it isreplaced bydecoded and re-encoded, disrupting theObject onCanonical XML representation. To avoid this problem, ASN.X documents must be normalized prior to theright hand sideapplication ofthe referenced ParameterizedObjectAssignment.syntax-based canonicalization. Legg Expires14 May 200620 April 2007 [Page18]17] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 When a DummyReference or parameterized reference is replaced by the definition it references, the encoding control section applying to any nested type definitions may no longer accord withOctober 20, 2006 The normalization rules can be found in Section 5.12 of theoriginal ASN.1 specification. This section describes a procedurespecification foradding additional information to an ASN.XRXER [RXER]. 8. IANA Considerations This documentso that type definitions are interpreted with respect to the appropriate XER encoding control section. For convenience, the procedure is described as a pre-processing step in which the original ASN.1 specifications are annotated with additional encoding instructions, and an optional post-processing stephas no actions for IANA. 9. References 9.1. Normative References [BCP14] Bradner, S., "Key words for use inwhich redundant encoding instruction translations are removed. Implementations are not requiredRFCs toexplicitly perform the pre-processingIndicate Requirement Levels", BCP 14, RFC 2119, March 1997. [URI] Berners-Lee, T., Fielding, R. andpost-processing provided they produce the same net effect. 5.1. Pre-processing Step The pre-processing step requires two additional XER encoding instructions that are defined here. Note well: these encoding instructions are for translation purposes onlyL. Masinter, "Uniform Resource Identifiers (URI): Generic Syntax", STD 66, RFC 3986, January 2005. [RXER] Legg, S. andMUST NOT be used exceptD. Prager, "Robust XML Encoding Rules (RXER) for Abstract Syntax Notation One (ASN.1)", draft-legg-xed-rxer-xx.txt, a work in progress, October 2006. [RXEREI] Legg, S., "Encoding Instructions for thepre-processing stepRobust XML Encoding Rules (RXER)", draft-legg-xed-rxer-ei-xx.txt, a work inthe translationprogress, October 2006. [ASN.X] Legg, S., "Abstract Syntax Notation X (ASN.X)", draft-legg-xed-asd-xx.txt, a work in progress, October 2006. [X.680] ITU-T Recommendation X.680 (07/02) | ISO/IEC 8824-1, Information technology - Abstract Syntax Notation One (ASN.1): Specification ofan ASN.1 specification into ASN.X documents. The notationbasic notation. [X.680-1] ITU-T Recommendation X.680 (2002) Amendment 1 (10/03) | ISO/IEC 8824-1:2002/Amd 1:2004, Support forthe additionalEXTENDED-XER. [X.683] ITU-T Recommendation X.683 (07/02) | ISO/IEC 8824-4, Information technology - Abstract Syntax Notation One (ASN.1): Parameterization of ASN.1 specifications. [X.693-1] Amendment 1: (to ITU-T Rec. X.693 | ISO/IEC 8825-4) XER encoding instructionsis defined as follows: AssumeModuleInstruction ::= "ASSUME-MODULE" GlobalModuleReference ? AssumeReferenceInstruction ::= "ASSUME-REFERENCE" typereference The GlobalModuleReference and typereference productions are defined by the ASN.1 basic notation [X.680]. The ASSUME-MODULE encoding instruction (described by AssumeModuleInstruction) indicates that the prefixed typeandall nested types (excluding any types within the EncodingPrefixedType for a nested ASSUME-MODULE encoding instruction) are to be regarded as belonging to the nominated moduleEXTENDED-XER [XML10] Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E. andtherefore subject to its XER encoding control section. If no module is nominated then no XER encoding control section applies to the types. The ASSUME-REFERENCE encoding instruction (described by AssumeReferenceInstruction) indicates that the prefixed type is to be regarded as the right hand side of a ParameterizedTypeAssignment with the nominated reference name.F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fourth Edition)", W3C Recommendation, Legg Expires14 May 200620 April 2007 [Page19]18] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005October 20, 2006 http://www.w3.org/TR/2006/REC-xml-20060816, August 2006. [XML11] Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E., Yergeau, F., and J. Cowan, "Extensible Markup Language (XML) 1.1 (Second Edition)", W3C Recommendation, http://www.w3.org/TR/2006/REC-xml11-20060816, August 2006. [XMLNS10] Bray, T., Hollander, D., Layman, A., and R. Tobin, "Namespaces in XML 1.0 (Second Edition)", W3C Recommendation, http://www.w3.org/TR/2006/REC-xml-names-20060816, August 2006. [ISET] Cowan, J. and R. Tobin, "XML Information Set (Second Edition)", W3C Recommendation, http://www.w3.org/TR/2004/REC-xml-infoset-20040204, February 2004. [UNICODE] Theremainder of this section describes howUnicode Consortium, "The Unicode Standard, Version 4.0", Boston, MA, Addison-Wesley Developers Press, 2003. ISBN 0-321-18578-1. 9.2. Informative References [X.693] ITU-T Recommendation X.693 (12/01) | ISO/IEC 8825-4:2002, Information technology - ASN.1specifications are annotated with the ASSUME-REFERENCE and ASSUME-MODULEencodinginstructions before translation. The Type of each ParameterizedTypeAssignment (i.e., the Type immediately to the right hand side of the "::=") in a module with anrules: XML encodingcontrol sectionrules (XER) Appendix A. ASN.1 for XER Encoding Instruction Notation This appendix isprefixed with an ASSUME-REFERENCE encoding instruction.normative. XER-EncodingInstructionNotation { iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) xmled(21472) asnx(1) module(0) xer-ei-notation(3) } -- Copyright (C) Thetypereference in the ASSUME-REFERENCE encoding instructionInternet Society (2006). This version of -- this ASN.1 module isthe typereferencepart of RFC XXXX; see theParameterizedTypeAssignment. Each Type on or within the right hand side of a parameterized assignment (regardless of whether the module has an encoding control section for XER) that is not textually within another Type is prefixed with an ASSUME-MODULE encoding instruction. Where a Type is prefixed with both an ASSUME-REFERENCE and an ASSUME-MODULE encoding instruction, the ASSUME-MODULE encoding instruction is outermost. Each Type in an ActualParameter that is not textually within another Type in the same ActualParameter is prefixed with an ASSUME-MODULE encoding instruction. If the module in which an ASSUME-MODULE encoding instruction appears does not have an encoding control sectionRFC itself -- forXER then the GlobalModuleReference SHALL be absent from the encoding instruction, otherwise the GlobalModuleReference SHALL be present with the modulereference and DefinitiveIdentifier of the module. Example Suppose these two modules are about to be translated into ASN.X: ThisModulefull legal notices. DEFINITIONS RXER INSTRUCTIONS AUTOMATIC TAGS EXTENSIBILITY IMPLIED ::= BEGIN IMPORTSThatTypeA FROM ThatModule; ThisTypeA ::= ThatTypeA { ENUMERATED { stop, go } } ThisTypeB { TypeParam } ::= SEQUENCE { component TypeParam } ThisTypeC ::= ThisTypeB { BOOLEAN } ENCODING-CONTROL XER MODIFIED-ENCODINGSAnyURI, Legg Expires14 May 200620 April 2007 [Page20]19] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 END ThatModule DEFINITIONS AUTOMATIC TAGS ::= BEGIN ThatTypeA { TypeParam } ::= SEQUENCE { component TypeParam } ThatTypeB ::= ThatTypeAOctober 20, 2006 NCName FROM AdditionalBasicDefinitions {BOOLEANiso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) xmled(21472) asnx(1) module(0) basic(0) }END These modules look like the following after pre-processing: ThisModule DEFINITIONS AUTOMATIC TAGS ::= BEGIN IMPORTS ThatTypeAAnnotation, Value FROMThatModule; ThisTypeA ::= ThatTypeA { [XER:ASSUME-MODULE ThisModule] ENUMERATEDAbstractSyntaxNotation-X {stop, go }iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) xmled(21472) asnx(1) module(0) notation(1) }ThisTypeBTargetList FROM TargetListNotation {TypeParamiso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) xmled(21472) asnx(1) module(0) target-list-notation(4) } ; XER-EncodingInstructionAssignmentList ::=[XER:ASSUME-MODULE ThisModule] [XER:ASSUME-REFERENCE ThisTypeB]SEQUENCE {component TypeParamannotation Annotation OPTIONAL, instructions [GROUP] XER-TargettedEncodingInstructions }ThisTypeCXER-TargettedEncodingInstructions ::=ThisTypeB { [XER:ASSUME-MODULE ThisModule] BOOLEAN } ENCODING-CONTROL XER MODIFIED-ENCODINGS END ThatModule DEFINITIONS AUTOMATIC TAGSSEQUENCE SIZE (1..MAX) OF targettedInstruction XER-TargettedEncodingInstruction XER-TargettedEncodingInstruction ::=BEGIN ThatTypeASEQUENCE {TypeParaminstruction [GROUP] XER-GeneralEncodingInstruction, targetList [GROUP] TargetList OPTIONAL } XER-EncodingInstruction ::=[XER:ASSUME-MODULE] SEQUENCEXER-GeneralEncodingInstruction (WITH COMPONENTS {component TypeParam } ThatTypeB..., globalDefaults ABSENT }) XER-GeneralEncodingInstruction ::=ThatTypeA[SINGULAR-INSERTIONS] CHOICE {[XER:ASSUME-MODULE] BOOLEAN } ENDanyAttributes XER-WildcardInstruction, not-anyAttributes XER-NegatingInstruction, anyElement XER-WildcardInstruction, not-anyElement XER-NegatingInstruction, attribute XER-SimpleInstruction, not-attribute XER-NegatingInstruction, base64 XER-SimpleInstruction, not-base64 XER-NegatingInstruction, decimal XER-SimpleInstruction, not-decimal XER-NegatingInstruction, defaultForEmpty XER-DefaultForEmptyInstruction, not-defaultForEmpty XER-NegatingInstruction, Legg Expires14 May 2006 [Page 21] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 5.2. Translation Step Following the pre-processing step, all the ASN.1 modules are translated as normal [ASN.X]. The ASSUME-MODULE and ASSUME-REFERENCE encoding instructions have translations into ASN.X. The translation of an AssumeModuleInstruction is an element item with the [local name] "assumeModule". If the GlobalModuleReference is present then an attribute item with the [local name] "name" SHALL be added to the [attributes] of the <assumeModule> element item. The [normalized value] of this attribute item is the modulereference in the GlobalModuleReference. If the GlobalModuleReference is present and the AssignedIdentifier is not empty then an attribute item with the [local name] "identifier" SHALL be added to the [attributes] of the <assumeModule> element item. The [normalized value] of this attribute item is the RXER [RXER] encoding of the AssignedIdentifier. If the GlobalModuleReference is present and the referenced module has an RXER SCHEMA-IDENTITY encoding instruction then an attribute item with the [local name] "schemaIdentity" SHALL be added to the [attributes] of the <assumeModule> element item. The [normalized value] of this attribute item is the character string specified by the AnyURIValue of the SCHEMA-IDENTITY encoding instruction. If the GlobalModuleReference is absent then the <assumeModule> element item is said to reference no module. The translation of an AssumeReferenceInstruction is an element item with the [local name] "assumeReference". An attribute item with the [local name] "name" SHALL be added to the [attributes] of the <assumeReference> element item. The [normalized value] of this attribute item is the typereference. The <assumeModule> and <assumeReference> element items SHOULD NOT be used in original specifications written in ASN.X (i.e, in ASN.X documents that are not the result of translating an original ASN.1 specification). Example Continuing the example from the previous section, the translated modules look like the following: <asn1:module xmlns:asn1="http://xmled.info/ns/ASN.1" name="ThisModule"> Legg Expires 14 May 2006 [Page 22] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 <namedType name="ThisTypeA"> <type> <prefixed> <XER><assumeModule/></XER> <type> <sequence> <element name="component"> <type> <prefixed> <XER><assumeModule name="ThisModule"/></XER> <type> <enumerated> <enumeration name="stop"/> <enumeration name="go"/> </enumerated> </type> </prefixed> </type> </element> </sequence> </type> </prefixed> </type> </namedType> <namedType name="ThisTypeC"> <type> <prefixed> <XER> <assumeModule name="ThisModule"/> <assumeReference name="ThisTypeB"/> </XER> <type> <sequence> <element name="component"> <type> <prefixed> <XER><assumeModule name="ThisModule"/></XER> <type ref="asn1:BOOLEAN"/> </prefixed> </type> </element> </sequence> </type> </prefixed> </type> </namedType> Legg Expires 14 May 2006 [Page 23] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 <encodingControls> <XER modifiedEncodings="true"/> </encodingControls> </asn1:module> <asn1:module xmlns:asn1="http://xmled.info/ns/ASN.1" name="ThatModule"> <namedType name="ThatTypeB"> <type> <prefixed> <XER><assumeModule/></XER> <type> <sequence> <element name="component"> <type> <prefixed> <XER><assumeModule/></XER> <type ref="asn1:BOOLEAN"/> </prefixed> </type> </element> </sequence> </type> </prefixed> </type> </namedType> </asn1:module> 5.3. Post-processing Step In the post-processing step, redundant <assumeModule> element items may be removed. Definition: The superior element item for an <assumeModule> element, if it exists, is the nearest preceding <assumedModule> element item with the same, or an enclosing, grandparent <prefixed> element item. An <assumedModule> element item MAY be removed if: (a) it has a superior element item and both element items reference the same module, or both element items reference no module, or (b) it does not have a superior element item and it appears in the translation of the module it references, or Legg Expires 14 May 2006 [Page 24] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 (c) it does not have a superior element item and it references no module and it appears in the translation of a module that does not have an encoding control section for XER. If a removed <assumedModule> element item is the last child element item of an <XER> element item then the <XER> element item MUST be removed. If the removal of an <XER> element item causes a <prefixed> element item to have only a <type> child element item then the <type> parent element item of the <prefixed> element item SHALL be replaced by the <type> child element item of the <prefixed> element item. If the removal of an <XER> element item causes a <prefixed> element item to have no child element items then an attribute item with the [local name] "ref" SHALL be added to the <type> parent element item of the <prefixed> element item. The [normalized value] of this attribute item is the [normalized value] of the type attribute item of the <prefixed> element item. The <prefixed> element item SHALL be removed. If appropriate for the context, the <type> element item (an element form translation of a type reference) MAY be replaced by the equivalent attribute form translation [ASN.X]. Example Continuing the example from the previous section, the translated modules may be post-processed to the following: <asn1:module xmlns:asn1="http://xmled.info/ns/ASN.1" name="ThisModule"> <namedType name="ThisTypeA"> <type> <prefixed> <XER><assumeModule/></XER> <type> <sequence> <element name="component"> <type> <prefixed> <XER><assumeModule name="ThisModule"/></XER> <type> <enumerated> <enumeration name="stop"/> <enumeration name="go"/> </enumerated> </type> </prefixed> Legg Expires 14 May 2006 [Page 25] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 </type> </element> </sequence> </type> </prefixed> </type> </namedType> <namedType name="ThisTypeC"> <type> <prefixed> <XER><assumeReference name="ThisTypeB"/></XER> <type> <sequence> <element name="component" type="asn1:BOOLEAN"/> </sequence> </type> </prefixed> </type> </namedType> <encodingControls> <XER modifiedEncodings="true"/> </encodingControls> </asn1:module> <asn1:module xmlns:asn1="http://xmled.info/ns/ASN.1" name="ThatModule"> <namedType name="ThatTypeB"> <type> <sequence> <element name="component" type="asn1:BOOLEAN"/> </sequence> </type> </namedType> </asn1:module> 6. Security Considerations The ASN.X translation of an XER encoding instruction is semantically equivalent to the original XER encoding instruction. The security considerations that apply to an application built from an original ASN.1 specification with XER encoding instructions apply equally to an application built from the ASN.X translation of the ASN.1 specification. Legg Expires 14 May 2006 [Page 26] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 An ASN.X document can be re-encoded using any set of canonical encoding rules for ASN.1. Before such re-encoding it is necessary to normalize abstract values of the AnyType ASN.1 type [RXER]. The underlying ASN.1 type for the <component> element in the ASN.1 for XER Encoding Instruction Notation is AnyType. The normalization rules can be found in Section 4.1.2 of the specification for RXER [RXER]. Syntax-based canonicalization for XML documents (e.g., Canonical XML [CXML]) depends on the Infoset of an XML document being preserved. However, the Infoset representation of an ASN.X document (an abstract value of the ModuleDefinition ASN.1 type) potentially changes if it is decoded and re-encoded, disrupting the Canonical XML representation. To avoid this problem, ASN.X documents must be normalized prior to the application of syntax-based canonicalization. The normalization rules can be found in Section 5.12 of the specification for RXER [RXER]. 7. IANA Considerations This document has no actions for IANA. Appendix A. ASN.1 for XER Encoding Instruction Notation This appendix is normative. XER-EncodingInstructionNotation { iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) xmled(21472) asn1(1) module(0) xer-ei-notation(3) } -- Copyright (C) The Internet Society 2005. This version of -- this ASN.1 module is part of RFC XXXX; see the RFC itself -- for full legal notices. DEFINITIONS RXER INSTRUCTIONS AUTOMATIC TAGS EXTENSIBILITY IMPLIED ::= BEGIN IMPORTS AnyType, AnyURI, NCName, QName FROM AdditionalBasicDefinitions { iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) Legg Expires 14 May 2006 [Page 27] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 xmled(21472) asn1(1) module(0) basic(0) } ModuleReference, DefinitiveIdentifier, Annotation, TypeReference, Value FROM AbstractSyntaxNotation-X { iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) xmled(21472) asn1(1) module(0) notation(1) } ; -- An XER encoding instruction in a type prefix -- must have an empty TargetList. XER-EncodingInstruction ::= XER-GeneralEncodingInstruction (WITH COMPONENTS { ..., positive (WITH COMPONENTS { ..., anyAttributes (WITH COMPONENTS { ..., targetList ABSENT }), anyElement (WITH COMPONENTS { ..., targetList ABSENT }), attribute (WITH COMPONENTS { ..., targetList ABSENT }), base64 (WITH COMPONENTS { ..., targetList ABSENT }), decimal (WITH COMPONENTS { ..., targetList ABSENT }), defaultForEmpty (WITH COMPONENTS { ..., targetList ABSENT }), embedValues (WITH COMPONENTS { ..., targetList ABSENT }), list (WITH COMPONENTS { ..., targetList ABSENT }), name (WITH COMPONENTS { ..., targetList ABSENT }), namespace (WITH COMPONENTS { ..., targetList ABSENT }), piOrComment (WITH COMPONENTS { ..., targetList ABSENT }), text (WITH COMPONENTS { ..., targetList ABSENT }), untagged (WITH COMPONENTS { ..., targetList ABSENT }), useNumber (WITH COMPONENTS { ..., targetList ABSENT }), useOrder (WITH COMPONENTS { ..., targetList ABSENT }), useQName (WITH COMPONENTS { ..., targetList ABSENT }), useType (WITH COMPONENTS { ..., targetList ABSENT }), useUnion (WITH COMPONENTS { ..., targetList ABSENT }), whiteSpace (WITH COMPONENTS { ..., targetList ABSENT }) }), not (WITH COMPONENTS { ..., anyAttributes (WITH COMPONENTS { ..., targetList ABSENT }), anyElement (WITH COMPONENTS { ..., targetList ABSENT }), attribute (WITH COMPONENTS { ..., targetList ABSENT }), base64 (WITH COMPONENTS { ..., targetList ABSENT }), decimal (WITH COMPONENTS { ..., targetList ABSENT }), defaultForEmpty (WITH COMPONENTS { ..., targetList ABSENT }), embedValues (WITH COMPONENTS { ..., targetList ABSENT }), list (WITH COMPONENTS { ..., targetList ABSENT }), name (WITH COMPONENTS { ..., targetList ABSENT }), namespace (WITH COMPONENTS { ..., targetList ABSENT }), Legg Expires 14 May 2006 [Page 28] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 piOrComment (WITH COMPONENTS { ..., targetList ABSENT }), text (WITH COMPONENTS { ..., targetList ABSENT }), untagged (WITH COMPONENTS { ..., targetList ABSENT }), useNil (WITH COMPONENTS { ..., targetList ABSENT }), useNumber (WITH COMPONENTS { ..., targetList ABSENT }), useOrder (WITH COMPONENTS { ..., targetList ABSENT }), useQName (WITH COMPONENTS { ..., targetList ABSENT }), useType (WITH COMPONENTS { ..., targetList ABSENT }), useUnion (WITH COMPONENTS { ..., targetList ABSENT }), whiteSpace (WITH COMPONENTS { ..., targetList ABSENT }) }), element (WITH COMPONENTS { ..., targetList ABSENT }) }) XER-EncodingInstructionAssignmentList ::= [HOLLOW-INSERTIONS] SEQUENCE { annotation Annotation OPTIONAL, modifiedEncodings [ATTRIBUTE] BOOLEAN DEFAULT FALSE, controlNamespace XER-ControlNamespace OPTIONAL, instructions [GROUP] XER-ECS-EncodingInstructions OPTIONAL } (WITH COMPONENTS { ..., modifiedEncodings (TRUE) } | WITH COMPONENTS { ..., controlNamespace PRESENT } | WITH COMPONENTS { ..., instructions PRESENT }) XER-ControlNamespace ::= SEQUENCE { name [ATTRIBUTE] AnyURI, prefix [ATTRIBUTE] NCName OPTIONAL } XER-ECS-EncodingInstructions ::= SEQUENCE SIZE (1..MAX) OF instruction [GROUP] XER-ECS-EncodingInstruction -- An XER encoding instruction in an encoding control section -- must not have an empty TargetList. XER-ECS-EncodingInstruction ::= XER-GeneralEncodingInstruction (WITH COMPONENTS { ..., positive (WITH COMPONENTS { ..., anyAttributes (WITH COMPONENTS { ..., targetList PRESENT }), anyElement (WITH COMPONENTS { ..., targetList PRESENT }), attribute (WITH COMPONENTS { ..., targetList PRESENT }), base64 (WITH COMPONENTS { ..., targetList PRESENT }), decimal (WITH COMPONENTS { ..., targetList PRESENT }), defaultForEmpty (WITH COMPONENTS { ..., targetList PRESENT }), embedValues (WITH COMPONENTS { ..., targetList PRESENT }), list (WITH COMPONENTS { ..., targetList PRESENT }), name (WITH COMPONENTS { ..., targetList PRESENT }), namespace (WITH COMPONENTS { ..., targetList PRESENT }), piOrComment (WITH COMPONENTS { ..., targetList PRESENT }), Legg Expires 14 May 2006 [Page 29] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 text (WITH COMPONENTS { ..., targetList PRESENT }), untagged (WITH COMPONENTS { ..., targetList PRESENT }), useNil (WITH COMPONENTS { ..., targetList PRESENT }), useNumber (WITH COMPONENTS { ..., targetList PRESENT }), useOrder (WITH COMPONENTS { ..., targetList PRESENT }), useQName (WITH COMPONENTS { ..., targetList PRESENT }), useType (WITH COMPONENTS { ..., targetList PRESENT }), useUnion (WITH COMPONENTS { ..., targetList PRESENT }), whiteSpace (WITH COMPONENTS { ..., targetList PRESENT }) }), not (WITH COMPONENTS { ..., anyAttributes (WITH COMPONENTS { ..., targetList PRESENT }), anyElement (WITH COMPONENTS { ..., targetList PRESENT }), attribute (WITH COMPONENTS { ..., targetList PRESENT }), base64 (WITH COMPONENTS { ..., targetList PRESENT }), decimal (WITH COMPONENTS { ..., targetList PRESENT }), defaultForEmpty (WITH COMPONENTS { ..., targetList PRESENT }), embedValues (WITH COMPONENTS { ..., targetList PRESENT }), list (WITH COMPONENTS { ..., targetList PRESENT }), name (WITH COMPONENTS { ..., targetList PRESENT }), namespace (WITH COMPONENTS { ..., targetList PRESENT }), piOrComment (WITH COMPONENTS { ..., targetList PRESENT }), text (WITH COMPONENTS { ..., targetList PRESENT }), untagged (WITH COMPONENTS { ..., targetList PRESENT }), useNil (WITH COMPONENTS { ..., targetList PRESENT }), useNumber (WITH COMPONENTS { ..., targetList PRESENT }), useOrder (WITH COMPONENTS { ..., targetList PRESENT }), useQName (WITH COMPONENTS { ..., targetList PRESENT }), useType (WITH COMPONENTS { ..., targetList PRESENT }), useUnion (WITH COMPONENTS { ..., targetList PRESENT }), whiteSpace (WITH COMPONENTS { ..., targetList PRESENT }) }), element (WITH COMPONENTS { ..., targetList PRESENT }), assumeReference ABSENT, assumeModule ABSENT }) XER-GeneralEncodingInstruction ::= [NO-INSERTIONS] CHOICE { positive [GROUP] XER-PositiveInstruction (WITH COMPONENTS { ..., defaultForEmpty (WITH COMPONENTS { ..., value PRESENT }), name (WITH COMPONENTS { ..., newNameOrKeyword PRESENT }), piOrComment (WITH COMPONENTS { ..., text PRESENT, position PRESENT }), whiteSpace (WITH COMPONENTS { ..., action PRESENT }) }), not XER-NegatingInstruction, Legg Expires 14 May 2006 [Page 30] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 element XER-ElementInstruction, assumeReference XER-AssumeReferenceInstruction, assumeModule XER-AssumeModuleInstruction } XER-PositiveInstruction ::= [SINGULAR-INSERTIONS] CHOICE { anyAttributes XER-AnyAttributesInstruction, anyElement XER-AnyElementInstruction, attribute XER-AttributeInstruction, base64 XER-Base64Instruction, decimal XER-DecimalInstruction, defaultForEmpty XER-DefaultForEmptyInstruction, embedValues XER-EmbedValuesInstruction, list XER-ListInstruction, name XER-NameInstruction, namespace XER-NamespaceInstruction, piOrComment XER-PIOrCommentInstruction, text XER-TextInstruction, untagged XER-UntaggedInstruction, useNil XER-UseNilInstruction, useNumber XER-UseNumberInstruction, useOrder XER-UseOrderInstruction, useQName XER-UseQNameInstruction, useType XER-UseTypeInstruction, useUnion XER-UseUnionInstruction, whiteSpace XER-WhiteSpaceInstruction } XER-NegatingInstruction ::= XER-PositiveInstruction (WITH COMPONENTS { ..., anyAttributes (WITH COMPONENTS { targetList OPTIONAL }), anyElement (WITH COMPONENTS { targetList OPTIONAL }), defaultForEmpty (WITH COMPONENTS { targetList OPTIONAL }), name (WITH COMPONENTS { targetList OPTIONAL }), namespace (WITH COMPONENTS { targetList OPTIONAL }), piOrComment (WITH COMPONENTS { targetList OPTIONAL }), text (WITH COMPONENTS { targetList OPTIONAL }), whiteSpace (WITH COMPONENTS { targetList OPTIONAL }) }) XER-TargetList ::= SEQUENCE SIZE (1..MAX) OF target XER-Targets XER-Targets ::= [NO-INSERTIONS] CHOICE { allTypes NULL, identifiedTypes [GROUP] XER-QualifiedTypeIdentification, components XER-IdentifiersInContext, allImportsFrom XER-ImportedTypesIdentification } Legg Expires 14 May 2006 [Page 31] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 -- TypeIdentification and BuiltInTypeIdentification XER-QualifiedTypeIdentification ::= [HOLLOW-INSERTIONS] SEQUENCE { types [GROUP] [SINGULAR-INSERTIONS] CHOICE { specificType [GROUP] XER-SpecificTypeIdentification, choice NULL, enumerated NULL, instanceOf NULL, sequence NULL, sequenceOf NULL, set NULL, setOf NULL }, qualification [GROUP] XER-QualifyingInformationPart OPTIONAL } XER-SpecificTypeIdentification ::= [HOLLOW-INSERTIONS] SEQUENCE { type [ATTRIBUTE] QName, component AnyType OPTIONAL, allTextuallyPresent NULL OPTIONAL } XER-QualifyingInformationPart ::= [NO-INSERTIONS] CHOICE { allIdentifiers NULL, identifier SEQUENCE { name [ATTRIBUTE] NCName } } XER-IdentifiersInContext ::= SEQUENCE { identifiers [GROUP] XER-IdentifierList, in CHOICE { allTypes NULL, specificType [GROUP] XER-SpecificTypeIdentification } } XER-IdentifierList ::= [NO-INSERTIONS] CHOICE { allTextuallyPresent NULL, allFirstLevel NULL, list [GROUP] XER-IdentifiedComponents } XER-IdentifiedComponents ::= SEQUENCE SIZE (1..MAX) OF component [GROUP] XER-IdentifiedComponent XER-IdentifiedComponent ::= [SINGULAR-INSERTIONS] CHOICE { attribute XER-GenericIdentifiedComponent, element XER-GenericIdentifiedComponent, Legg Expires 14 May 2006 [Page 32] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 group XER-GenericIdentifiedComponent, member XER-GenericIdentifiedComponent, item XER-GenericIdentifiedComponent } XER-GenericIdentifiedComponent ::= SEQUENCE { name [ATTRIBUTE] QName } XER-ImportedTypesIdentification ::= SEQUENCE { name [ATTRIBUTE] ModuleReference, identifier [ATTRIBUTE] DefinitiveIdentifier OPTIONAL, schemaIdentity [ATTRIBUTE] AnyURI OPTIONAL } XER-WildcardInstruction ::= SEQUENCE { targetList [GROUP] XER-TargetList OPTIONAL, namespaceRestriction [GROUP] XER-NamespaceRestriction OPTIONAL } XER-NamespaceRestriction ::= [NO-INSERTIONS] CHOICE { from XER-URIList, except XER-URIList } XER-URIList ::= SEQUENCE SIZE(1..MAX) OF uriOrAbsent [GROUP] XER-QuotedURIorAbsent XER-QuotedURIorAbsent ::= [SINGULAR-INSERTIONS] CHOICE { namespace AnyURI, local NULL } XER-AnyAttributesInstruction ::= XER-WildcardInstruction XER-AnyElementInstruction ::= XER-WildcardInstruction XER-SimpleInstruction ::= SEQUENCE { targetList [GROUP] XER-TargetList OPTIONAL } XER-AttributeInstruction ::= XER-SimpleInstruction XER-Base64Instruction ::= XER-SimpleInstruction XER-DecimalInstruction ::= XER-SimpleInstruction XER-DefaultForEmptyInstruction ::= SEQUENCE { Legg Expires 14 May 2006 [Page 33] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 targetList [GROUP] XER-TargetList OPTIONAL, value [GROUP] [NO-INSERTIONS] Value OPTIONAL } XER-ElementInstruction ::= XER-SimpleInstruction XER-EmbedValuesInstruction ::= XER-SimpleInstruction XER-ListInstruction ::= XER-SimpleInstruction XER-NameInstruction ::= SEQUENCE { targetList [GROUP] XER-TargetList OPTIONAL, newNameOrKeyword [GROUP] XER-NewNameOrKeyword OPTIONAL } XER-NewNameOrKeyword ::= [NO-INSERTIONS] CHOICE { newName [ATTRIBUTE] UTF8String, conversion [ATTRIBUTE] XER-Conversion } XER-Conversion ::= ENUMERATED { capitalized (0), uncapitalized (1), uppercased (2), lowercased (3) } XER-NamespaceInstruction ::= SEQUENCE { targetList [GROUP] XER-TargetList OPTIONAL, namespace [GROUP] XER-NamespaceSpecification OPTIONAL } XER-NamespaceSpecification ::= [NO-INSERTIONS] SEQUENCE { name [ATTRIBUTE] AnyURI, prefix [ATTRIBUTE] NCName OPTIONAL } XER-PIOrCommentInstruction ::= SEQUENCE { targetList [GROUP] XER-TargetList OPTIONAL, text [ATTRIBUTE] UTF8String OPTIONAL, position [ATTRIBUTE] XER-Position OPTIONAL } XER-Position ::= ENUMERATED { beforeTag (0), beforeValue (1), afterValue (2), afterTag (3) Legg Expires 14 May 2006 [Page 34] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 } XER-TextInstruction ::= SEQUENCE { targetList [GROUP] XER-TargetList OPTIONAL, newNameOrKeyword [GROUP] XER-NewNameOrKeyword OPTIONAL } XER-UntaggedInstruction ::= XER-SimpleInstruction XER-UseNilInstruction ::= XER-SimpleInstruction XER-UseNumberInstruction ::= XER-SimpleInstruction XER-UseOrderInstruction ::= XER-SimpleInstruction XER-UseQNameInstruction ::= XER-SimpleInstruction XER-UseTypeInstruction ::= XER-SimpleInstruction XER-UseUnionInstruction ::= XER-SimpleInstruction XER-WhiteSpaceInstruction ::= SEQUENCE { targetList [GROUP] XER-TargetList OPTIONAL, action [ATTRIBUTE] XER-WhiteSpaceAction OPTIONAL } XER-WhiteSpaceAction ::= ENUMERATED { replace (0), collapse (1) } XER-AssumeReferenceInstruction ::= SEQUENCE { name [ATTRIBUTE] TypeReference } XER-AssumeModuleInstruction ::= SEQUENCE { name [ATTRIBUTE] ModuleReference, identifier [ATTRIBUTE] DefinitiveIdentifier OPTIONAL, schemaIdentity [ATTRIBUTE] AnyURI OPTIONAL } ENCODING-CONTROL RXER SCHEMA-IDENTITY "http://xmled.info/id/ASN.1/XER-EncodingInstructionNotation" TARGET-NAMESPACE "http://xmled.info/ns/ASN.1" END Legg Expires 14 May 2006 [Page 35] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 Appendix B. ASN.X for XER Encoding Instruction Notation This appendix is non-normative. <?xml version="1.0"?> <asn1:module xmlns:asn1="http://xmled.info/ns/ASN.1" xmlns:asnx="http://xmled.info/ns/ASN.1" name="XER-EncodingInstructionNotation" identifier="1.3.6.1.4.1.21472.1.0.3" schemaIdentity= "http://xmled.info/id/ASN.1/XER-EncodingInstructionNotation" xmlns:xer="http://xmled.info/ns/ASN.1" targetNamespace="http://xmled.info/ns/ASN.1" extensibilityImplied="true"> <annotation> Copyright (C) The Internet Society 2005. This version of this ASN.X module is part of RFC XXXX; see the RFC itself for full legal notices. </annotation> <import name="AbstractSyntaxNotation-X" identifier="1.3.6.1.4.1.21472.1.0.1" schemaIdentity= "http://xmled.info/id/ASN.1/AbstractSyntaxNotation-X" namespace="http://xmled.info/ns/ASN.1"/> <namedType name="XER-EncodingInstruction"> <type> <constrained type="xer:XER-GeneralEncodingInstruction"> <withComponents partial="true"> <group name="positive"> <withComponents partial="true"> <element name="anyAttributes"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="anyElement"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="attribute"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> Legg Expires 14 May 2006 [Page 36] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 </element> <element name="base64"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="decimal"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="defaultForEmpty"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="embedValues"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="list"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="name"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="namespace"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="piOrComment"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="text"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="untagged"> <withComponents partial="true"> Legg Expires 14 May 2006 [Page 37] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 <group name="targetList" use="absent"/> </withComponents> </element> <element name="useNumber"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="useOrder"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="useQName"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="useType"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="useUnion"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="whiteSpace"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> </withComponents> </group> <element name="not"> <withComponents partial="true"> <element name="anyAttributes"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="anyElement"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="attribute"> Legg Expires 14 May 2006 [Page 38] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="base64"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="decimal"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="defaultForEmpty"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="embedValues"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="list"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="name"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="namespace"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="piOrComment"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="text"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> Legg Expires 14 May 2006 [Page 39] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 </element> <element name="untagged"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="useNil"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="useNumber"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="useOrder"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="useQName"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="useType"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="useUnion"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> <element name="whiteSpace"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> </withComponents> </element> <element name="element"> <withComponents partial="true"> <group name="targetList" use="absent"/> </withComponents> </element> Legg Expires 14 May 2006 [Page 40] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 </withComponents> </constrained> </type> </namedType> <namedType name="XER-EncodingInstructionAssignmentList"> <type insertions="hollow"> <constrained> <type> <sequence> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <optional> <attribute name="modifiedEncodings" type="asn1:BOOLEAN"/> <default literalValue="false"/> </optional> <optional> <element name="controlNamespace" type="xer:XER-ControlNamespace"/> </optional> <optional> <group name="instructions" type="xer:XER-ECS-EncodingInstructions"/> </optional> </sequence> </type> <union> <withComponents partial="true"> <attribute name="modifiedEncodings"> <literalValue>true</literalValue> </attribute> </withComponents> <withComponents partial="true"> <element name="controlNamespace" use="present"/> </withComponents> <withComponents partial="true"> <group name="instructions" use="present"/> </withComponents> </union> </constrained> </type> </namedType> <namedType name="XER-ControlNamespace"> <type> <sequence> <attribute name="name" type="asn1:AnyURI"/> Legg Expires 14 May 200620 April 2007 [Page41]20] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 <optional> <attribute name="prefix" type="asn1:NCName"/> </optional> </sequence> </type> </namedType> <namedType name="XER-ECS-EncodingInstructions"> <type> <sequenceOf minSize="1"> <group name="instruction" type="xer:XER-ECS-EncodingInstruction"/> </sequenceOf> </type> </namedType> <namedType name="XER-ECS-EncodingInstruction"> <type> <constrained type="xer:XER-GeneralEncodingInstruction"> <withComponents partial="true"> <group name="positive"> <withComponents partial="true"> <element name="anyAttributes"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="anyElement"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="attribute"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="base64"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="decimal"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="defaultForEmpty"> Legg Expires 14 MayOctober 20, 2006[Page 42] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="embedValues"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="list"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="name"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="namespace"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="piOrComment"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="text"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="untagged"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="useNil"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="useNumber"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents>embedValues XER-SimpleInstruction, not-embedValues XER-NegatingInstruction, globalDefaults XER-GlobalDefaultsInstruction, list XER-SimpleInstruction, not-list XER-NegatingInstruction, name XER-NameInstruction, not-name XER-NegatingInstruction, namespace XER-NamespaceInstruction, not-namespace XER-NegatingInstruction, piOrComment XER-PIOrCommentInstruction, not-piOrComment XER-NegatingInstruction, text XER-TextInstruction, not-text XER-NegatingInstruction, untagged XER-SimpleInstruction, not-untagged XER-NegatingInstruction, element XER-NegatingInstruction, useNil XER-SimpleInstruction, not-useNil XER-NegatingInstruction, useNumber XER-SimpleInstruction, not-useNumber XER-NegatingInstruction, useOrder XER-SimpleInstruction, not-useOrder XER-NegatingInstruction, useQName XER-SimpleInstruction, not-useQName XER-NegatingInstruction, useType XER-SimpleInstruction, not-useType XER-NegatingInstruction, useUnion XER-SimpleInstruction, not-useUnion XER-NegatingInstruction, whiteSpace XER-WhiteSpaceInstruction, not-whiteSpace XER-NegatingInstruction } XER-SimpleInstruction ::= SEQUENCE { } XER-NegatingInstruction ::= XER-SimpleInstruction XER-WildcardInstruction ::= SEQUENCE { namespaceRestriction [GROUP] XER-NamespaceRestriction OPTIONAL } XER-NamespaceRestriction ::= [NO-INSERTIONS] CHOICE { from XER-URIList, except XER-URIList } XER-URIList ::= SEQUENCE SIZE(1..MAX) OF uriOrAbsent [GROUP] XER-QuotedURIorAbsent Legg Expires14 May 200620 April 2007 [Page43]21] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 </element> <element name="useOrder"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="useQName"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="useType"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="useUnion"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="whiteSpace"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> </withComponents> </group> <element name="not"> <withComponents partial="true"> <element name="anyAttributes"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="anyElement"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="attribute"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="base64"> <withComponents partial="true"> <group name="targetList" use="present"/> Legg Expires 14 MayOctober 20, 2006[Page 44] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 </withComponents> </element> <element name="decimal"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="defaultForEmpty"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="embedValues"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="list"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="name"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="namespace"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="piOrComment"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="text"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="untagged"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="useNil">XER-QuotedURIorAbsent ::= [SINGULAR-INSERTIONS] CHOICE { namespace AnyURI, local NULL } XER-DefaultForEmptyInstruction ::= SEQUENCE { value [GROUP] Value } XER-GlobalDefaultsInstruction ::= SEQUENCE { defaultSetting [GROUP] [SINGULAR-INSERTIONS] CHOICE { modifiedEncodings NULL, controlNamespace XER-ControlNamespace } } XER-ControlNamespace ::= SEQUENCE { name [ATTRIBUTE] AnyURI, prefix [ATTRIBUTE] NCName OPTIONAL } XER-NameInstruction ::= SEQUENCE { newNameOrKeyword [GROUP] XER-NewNameOrKeyword } XER-NewNameOrKeyword ::= [NO-INSERTIONS] CHOICE { newName [ATTRIBUTE] UTF8String, conversion [ATTRIBUTE] XER-Conversion } XER-Conversion ::= ENUMERATED { capitalized (0), uncapitalized (1), uppercased (2), lowercased (3) } XER-NamespaceInstruction ::= SEQUENCE { namespace [GROUP] XER-NamespaceSpecification OPTIONAL } XER-NamespaceSpecification ::= [HOLLOW-INSERTIONS] SEQUENCE { name [ATTRIBUTE] AnyURI, prefix [ATTRIBUTE] NCName OPTIONAL } XER-PIOrCommentInstruction ::= SEQUENCE { text [ATTRIBUTE] UTF8String, Legg Expires14 May 200620 April 2007 [Page45]22] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="useNumber"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="useOrder"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="useQName"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="useType"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="useUnion"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="whiteSpace"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> </withComponents> </element> <element name="element"> <withComponents partial="true"> <group name="targetList" use="present"/> </withComponents> </element> <element name="assumeReference" use="absent"/> <element name="assumeModule" use="absent"/> </withComponents> </constrained> </type> </namedType> Legg Expires 14 MayOctober 20, 2006[Page 46] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 <namedType name="XER-GeneralEncodingInstruction"> <type insertions="none"> <choice> <group name="positive"> <type> <constrained type="xer:XER-PositiveInstruction"> <withComponents partial="true"> <element name="defaultForEmpty"> <withComponents partial="true"> <group name="value" use="present"/> </withComponents> </element> <element name="name"> <withComponents partial="true"> <group name="newNameOrKeyword" use="present"/> </withComponents> </element> <element name="piOrComment"> <withComponents partial="true"> <attribute name="text" use="present"/> <attribute name="position" use="present"/> </withComponents> </element> <element name="whiteSpace"> <withComponents partial="true"> <attribute name="action" use="present"/> </withComponents> </element> </withComponents> </constrained> </type> </group> <element name="not" type="xer:XER-NegatingInstruction"/> <element name="element" type="xer:XER-ElementInstruction"/> <element name="assumeReference" type="xer:XER-AssumeReferenceInstruction"/> <element name="assumeModule" type="xer:XER-AssumeModuleInstruction"/> </choice> </type> </namedType> <namedType name="XER-PositiveInstruction"> <type insertions="singular"> <choice> <element name="anyAttributes" type="xer:XER-AnyAttributesInstruction"/> <element name="anyElement" type="xer:XER-AnyElementInstruction"/>position [ATTRIBUTE] XER-Position } XER-Position ::= ENUMERATED { beforeTag (0), beforeValue (1), afterValue (2), afterTag (3) } XER-TextInstruction ::= SEQUENCE { newNameOrKeyword [GROUP] XER-NewNameOrKeyword OPTIONAL } XER-WhiteSpaceInstruction ::= SEQUENCE { action [ATTRIBUTE] XER-WhiteSpaceAction } XER-WhiteSpaceAction ::= ENUMERATED { replace (0), collapse (1) } ENCODING-CONTROL RXER SCHEMA-IDENTITY "urn:oid:1.3.6.1.4.1.21472.1.0.3" TARGET-NAMESPACE "urn:ietf:params:xml:ns:asnx" PREFIX "asnx" END Appendix B. ASN.1 for Target List Notation This appendix is normative. TargetListNotation { iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) xmled(21472) asnx(1) module(0) target-list-notation(4) } -- Copyright (C) The Internet Society (2006). This version of -- this ASN.1 module is part of RFC XXXX; see the RFC itself -- for full legal notices. DEFINITIONS RXER INSTRUCTIONS AUTOMATIC TAGS EXTENSIBILITY IMPLIED ::= BEGIN Legg Expires14 May20 April 2007 [Page 23] INTERNET-DRAFT ASN.X: XER Encoding Instructions October 20, 2006 IMPORTS Markup, NCName, QName FROM AdditionalBasicDefinitions { iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) xmled(21472) asnx(1) module(0) basic(0) } ; TargetList ::= SEQUENCE SIZE (1..MAX) OF target Targets Targets ::= [NO-INSERTIONS] CHOICE { allTypes NULL, identifiedTypes [GROUP] QualifiedTypeIdentification, components IdentifiersInContext, allImportsFrom SEQUENCE { } -- allImportsFrom is not used in this version } -- TypeIdentification and BuiltInTypeIdentification QualifiedTypeIdentification ::= [HOLLOW-INSERTIONS] SEQUENCE { types [GROUP] [SINGULAR-INSERTIONS] CHOICE { specificType [GROUP] SpecificTypeIdentification, choice NULL, enumerated NULL, instanceOf NULL, sequence NULL, sequenceOf NULL, set NULL, setOf NULL }, qualification [GROUP] QualifyingInformationPart OPTIONAL } SpecificTypeIdentification ::= [HOLLOW-INSERTIONS] SEQUENCE { type [ATTRIBUTE] QName, component Markup OPTIONAL, allTextuallyPresent NULL OPTIONAL } QualifyingInformationPart ::= [NO-INSERTIONS] CHOICE { allIdentifiers NULL, identifier SEQUENCE { name [ATTRIBUTE] NCName } } Legg Expires 20 April 2007 [Page47]24] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 <element name="attribute" type="xer:XER-AttributeInstruction"/> <element name="base64" type="xer:XER-Base64Instruction"/> <element name="decimal" type="xer:XER-DecimalInstruction"/> <element name="defaultForEmpty" type="xer:XER-DefaultForEmptyInstruction"/> <element name="embedValues" type="xer:XER-EmbedValuesInstruction"/> <element name="list" type="xer:XER-ListInstruction"/> <element name="name" type="xer:XER-NameInstruction"/> <element name="namespace" type="xer:XER-NamespaceInstruction"/> <element name="piOrComment" type="xer:XER-PIOrCommentInstruction"/> <element name="text" type="xer:XER-TextInstruction"/> <element name="untagged" type="xer:XER-UntaggedInstruction"/> <element name="useNil" type="xer:XER-UseNilInstruction"/> <element name="useNumber" type="xer:XER-UseNumberInstruction"/> <element name="useOrder" type="xer:XER-UseOrderInstruction"/> <element name="useQName" type="xer:XER-UseQNameInstruction"/> <element name="useType" type="xer:XER-UseTypeInstruction"/> <element name="useUnion" type="xer:XER-UseUnionInstruction"/> <element name="whiteSpace" type="xer:XER-WhiteSpaceInstruction"/> </choice> </type> </namedType> <namedType name="XER-NegatingInstruction"> <type> <constrained type="xer:XER-PositiveInstruction"> <withComponents partial="true"> <element name="anyAttributes"> <withComponents> <group name="targetList" use="optional"/> </withComponents> </element> <element name="anyElement"> <withComponents> <group name="targetList" use="optional"/> </withComponents> </element> <element name="defaultForEmpty"> <withComponents> <group name="targetList" use="optional"/> </withComponents> </element> <element name="name"> <withComponents> <group name="targetList" use="optional"/> </withComponents>October 20, 2006 IdentifiersInContext ::= SEQUENCE { identifiers [GROUP] IdentifierList, in CHOICE { allTypes NULL, specificType [GROUP] SpecificTypeIdentification } } IdentifierList ::= [NO-INSERTIONS] CHOICE { list [GROUP] IdentifiedComponents, allTextuallyPresent NULL, allFirstLevel NULL } IdentifiedComponents ::= SEQUENCE SIZE (1..MAX) OF identifiedComponent [GROUP] IdentifiedComponent IdentifiedComponent ::= [SINGULAR-INSERTIONS] CHOICE { component GenericIdentifiedComponent, element GenericIdentifiedComponent, attribute GenericIdentifiedComponent, group GenericIdentifiedComponent, member GenericIdentifiedComponent, item GenericIdentifiedComponent } GenericIdentifiedComponent ::= SEQUENCE { name [ATTRIBUTE] QName } ENCODING-CONTROL RXER SCHEMA-IDENTITY "urn:oid:1.3.6.1.4.1.21472.1.0.4" TARGET-NAMESPACE "urn:ietf:params:xml:ns:asnx" PREFIX "tln" END Appendix C. ASN.X for XER Encoding Instruction Notation This appendix is non-normative. <?xml version="1.0"?> <asnx:module xmlns:asnx="urn:ietf:params:xml:ns:asnx" xmlns:tln="urn:ietf:params:xml:ns:asnx" name="XER-EncodingInstructionNotation" identifier="1.3.6.1.4.1.21472.1.0.3" schemaIdentity="urn:oid:1.3.6.1.4.1.21472.1.0.3" targetNamespace="urn:ietf:params:xml:ns:asnx" Legg Expires14 May 200620 April 2007 [Page48]25] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 </element> <element name="namespace"> <withComponents> <group name="targetList" use="optional"/> </withComponents> </element> <element name="piOrComment"> <withComponents> <group name="targetList" use="optional"/> </withComponents> </element> <element name="text"> <withComponents> <group name="targetList" use="optional"/> </withComponents> </element>October 20, 2006 targetPrefix="asnx" extensibilityImplied="true"> <annotation> Copyright (C) The Internet Society (2006). This version of this ASN.X module is part of RFC XXXX; see the RFC itself for full legal notices. </annotation> <import name="AbstractSyntaxNotation-X" identifier="1.3.6.1.4.1.21472.1.0.1" schemaIdentity="urn:oid:1.3.6.1.4.1.21472.1.0.1" namespace="urn:ietf:params:xml:ns:asnx"/> <import name="TargetListNotation" identifier="1.3.6.1.4.1.21472.1.0.4" schemaIdentity="urn:oid:1.3.6.1.4.1.21472.1.0.4" namespace="urn:ietf:params:xml:ns:asnx"/> <namedType name="XER-EncodingInstructionAssignmentList"> <type> <sequence> <optional> <elementname="whiteSpace"> <withComponents>name="annotation" type="asnx:Annotation"/> </optional> <groupname="targetList" use="optional"/> </withComponents> </element> </withComponents> </constrained>name="instructions" type="asnx:XER-TargettedEncodingInstructions"/> </sequence> </type> </namedType> <namedTypename="XER-TargetList">name="XER-TargettedEncodingInstructions"> <type> <sequenceOf minSize="1"> <elementname="target" type="xer:XER-Targets"/>name="targettedInstruction" type="asnx:XER-TargettedEncodingInstruction"/> </sequenceOf> </type> </namedType> <namedTypename="XER-Targets"> <type insertions="none"> <choice> <element name="allTypes" type="asn1:NULL"/>name="XER-TargettedEncodingInstruction"> <type> <sequence> <groupname="identifiedTypes" type="xer:XER-QualifiedTypeIdentification"/> <element name="components" type="xer:XER-IdentifiersInContext"/> <element name="allImportsFrom" type="xer:XER-ImportedTypesIdentification"/> </choice> </type> </namedType> <namedType name="XER-QualifiedTypeIdentification">name="instruction" type="asnx:XER-GeneralEncodingInstruction"/> <optional> <group name="targetList" type="tln:TargetList"/> </optional> Legg Expires14 May 200620 April 2007 [Page49]26] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 <type insertions="hollow"> <sequence> <group name="types"> <typeOctober 20, 2006 </sequence> </type> </namedType> <namedType name="XER-EncodingInstruction"> <type> <constrained type="asnx:XER-GeneralEncodingInstruction"> <withComponents partial="true"> <element name="globalDefaults" use="absent"/> </withComponents> </constrained> </type> </namedType> <namedType name="XER-GeneralEncodingInstruction"> <type> <choice insertions="singular"><choice> <group name="specificType" type="xer:XER-SpecificTypeIdentification"/><elementname="choice" type="asn1:NULL"/>name="anyAttributes" type="asnx:XER-WildcardInstruction"/> <elementname="enumerated" type="asn1:NULL"/>name="not-anyAttributes" type="asnx:XER-NegatingInstruction"/> <elementname="instanceOf" type="asn1:NULL"/>name="anyElement" type="asnx:XER-WildcardInstruction"/> <elementname="sequence" type="asn1:NULL"/>name="not-anyElement" type="asnx:XER-NegatingInstruction"/> <elementname="sequenceOf" type="asn1:NULL"/>name="attribute" type="asnx:XER-SimpleInstruction"/> <elementname="set" type="asn1:NULL"/>name="not-attribute" type="asnx:XER-NegatingInstruction"/> <elementname="setOf" type="asn1:NULL"/> </choice> </type> </group> <optional> <group name="qualification" type="xer:XER-QualifyingInformationPart"/> </optional> </sequence> </type> </namedType> <namedType name="XER-SpecificTypeIdentification"> <type insertions="hollow"> <sequence> <attribute name="type" type="asn1:QName"/> <optional>name="base64" type="asnx:XER-SimpleInstruction"/> <elementname="component" type="asn1:AnyType"/> </optional> <optional>name="not-base64" type="asnx:XER-NegatingInstruction"/> <elementname="allTextuallyPresent" type="asn1:NULL"/> </optional> </sequence> </type> </namedType> <namedType name="XER-QualifyingInformationPart"> <type insertions="none"> <choice>name="decimal" type="asnx:XER-SimpleInstruction"/> <elementname="allIdentifiers" type="asn1:NULL"/>name="not-decimal" type="asnx:XER-NegatingInstruction"/> <element name="defaultForEmpty" type="asnx:XER-DefaultForEmptyInstruction"/> <element name="not-defaultForEmpty" type="asnx:XER-NegatingInstruction"/> <element name="embedValues" type="asnx:XER-SimpleInstruction"/> <element name="not-embedValues" type="asnx:XER-NegatingInstruction"/> <element name="globalDefaults" type="asnx:XER-GlobalDefaultsInstruction"/> <element name="list" type="asnx:XER-SimpleInstruction"/> <element name="not-list" type="asnx:XER-NegatingInstruction"/> <elementname="identifier"> <type> <sequence> <attributename="name"type="asn1:NCName"/> </sequence>type="asnx:XER-NameInstruction"/> <element name="not-name" type="asnx:XER-NegatingInstruction"/> <element name="namespace" type="asnx:XER-NamespaceInstruction"/> <element name="not-namespace" type="asnx:XER-NegatingInstruction"/> <element name="piOrComment" Legg Expires14 May 200620 April 2007 [Page50]27] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 </type> </element> </choice> </type> </namedType> <namedType name="XER-IdentifiersInContext"> <type> <sequence> <group name="identifiers" type="xer:XER-IdentifierList"/>October 20, 2006 type="asnx:XER-PIOrCommentInstruction"/> <elementname="in"> <type> <choice>name="not-piOrComment" type="asnx:XER-NegatingInstruction"/> <elementname="allTypes" type="asn1:NULL"/> <group name="specificType" type="xer:XER-SpecificTypeIdentification"/> </choice> </type> </element> </sequence> </type> </namedType> <namedType name="XER-IdentifierList"> <type insertions="none"> <choice>name="text" type="asnx:XER-TextInstruction"/> <elementname="allTextuallyPresent" type="asn1:NULL"/>name="not-text" type="asnx:XER-NegatingInstruction"/> <elementname="allFirstLevel" type="asn1:NULL"/> <group name="list" type="xer:XER-IdentifiedComponents"/> </choice> </type> </namedType> <namedType name="XER-IdentifiedComponents"> <type> <sequenceOf minSize="1"> <group name="component" type="xer:XER-IdentifiedComponent"/> </sequenceOf> </type> </namedType> <namedType name="XER-IdentifiedComponent"> <type insertions="singular"> <choice>name="untagged" type="asnx:XER-SimpleInstruction"/> <element name="not-untagged" type="asnx:XER-NegatingInstruction"/> <element name="element" type="asnx:XER-NegatingInstruction"/> <element name="useNil" type="asnx:XER-SimpleInstruction"/> <element name="not-useNil" type="asnx:XER-NegatingInstruction"/> <element name="useNumber" type="asnx:XER-SimpleInstruction"/> <elementname="attribute" type="xer:XER-GenericIdentifiedComponent"/>name="not-useNumber" type="asnx:XER-NegatingInstruction"/> <elementname="element" type="xer:XER-GenericIdentifiedComponent"/> Legg Expires 14 May 2006 [Page 51] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005name="useOrder" type="asnx:XER-SimpleInstruction"/> <elementname="group" type="xer:XER-GenericIdentifiedComponent"/>name="not-useOrder" type="asnx:XER-NegatingInstruction"/> <elementname="member" type="xer:XER-GenericIdentifiedComponent"/>name="useQName" type="asnx:XER-SimpleInstruction"/> <elementname="item" type="xer:XER-GenericIdentifiedComponent"/>name="not-useQName" type="asnx:XER-NegatingInstruction"/> <element name="useType" type="asnx:XER-SimpleInstruction"/> <element name="not-useType" type="asnx:XER-NegatingInstruction"/> <element name="useUnion" type="asnx:XER-SimpleInstruction"/> <element name="not-useUnion" type="asnx:XER-NegatingInstruction"/> <element name="whiteSpace" type="asnx:XER-WhiteSpaceInstruction"/> <element name="not-whiteSpace" type="asnx:XER-NegatingInstruction"/> </choice> </type> </namedType> <namedTypename="XER-GenericIdentifiedComponent">name="XER-SimpleInstruction"> <type><sequence> <attribute name="name" type="asn1:QName"/> </sequence><sequence/> </type> </namedType> <namedTypename="XER-ImportedTypesIdentification"> <type> <sequence> <attribute name="name" type="asnx:ModuleReference"/> <optional> <attribute name="identifier" type="asnx:DefinitiveIdentifier"/> </optional> <optional> <attribute name="schemaIdentity" type="asn1:AnyURI"/> </optional> </sequence> </type> </namedType>name="XER-NegatingInstruction" type="asnx:XER-SimpleInstruction"/> <namedType name="XER-WildcardInstruction"> <type> <sequence> <optional> <groupname="targetList" type="xer:XER-TargetList"/> </optional> <optional> <groupname="namespaceRestriction"type="xer:XER-NamespaceRestriction"/>type="asnx:XER-NamespaceRestriction"/> Legg Expires 20 April 2007 [Page 28] INTERNET-DRAFT ASN.X: XER Encoding Instructions October 20, 2006 </optional> </sequence> </type> </namedType> <namedType name="XER-NamespaceRestriction"><type<type> <choice insertions="none"><choice><element name="from"type="xer:XER-URIList"/> Legg Expires 14 May 2006 [Page 52] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005type="asnx:XER-URIList"/> <element name="except"type="xer:XER-URIList"/>type="asnx:XER-URIList"/> </choice> </type> </namedType> <namedType name="XER-URIList"> <type> <sequenceOf minSize="1"> <group name="uriOrAbsent"type="xer:XER-QuotedURIorAbsent"/>type="asnx:XER-QuotedURIorAbsent"/> </sequenceOf> </type> </namedType> <namedType name="XER-QuotedURIorAbsent"><type<type> <choice insertions="singular"><choice><element name="namespace"type="asn1:AnyURI"/>type="asnx:AnyURI"/> <element name="local"type="asn1:NULL"/>type="asnx:NULL"/> </choice> </type> </namedType> <namedTypename="XER-AnyAttributesInstruction" type="xer:XER-WildcardInstruction"/> <namedType name="XER-AnyElementInstruction" type="xer:XER-WildcardInstruction"/> <namedType name="XER-SimpleInstruction">name="XER-DefaultForEmptyInstruction"> <type> <sequence><optional><groupname="targetList" type="xer:XER-TargetList"/> </optional>name="value" type="asnx:Value"/> </sequence> </type> </namedType> <namedTypename="XER-AttributeInstruction" type="xer:XER-SimpleInstruction"/> <namedType name="XER-Base64Instruction" type="xer:XER-SimpleInstruction"/> <namedType name="XER-DecimalInstruction" type="xer:XER-SimpleInstruction"/> <namedType name="XER-DefaultForEmptyInstruction">name="XER-GlobalDefaultsInstruction"> <type> <sequence> <group name="defaultSetting"> <type> <choice insertions="singular"> <element name="modifiedEncodings" type="asnx:NULL"/> <element name="controlNamespace" type="asnx:XER-ControlNamespace"/> Legg Expires14 May 200620 April 2007 [Page53]29] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005October 20, 2006 </choice> </type> </group> </sequence> </type> </namedType> <namedType name="XER-ControlNamespace"> <type> <sequence> <attribute name="name" type="asnx:AnyURI"/> <optional><group name="targetList" type="xer:XER-TargetList"/> </optional> <optional> <group name="value"> <type ref="asnx:Value" insertions="none"/> </group><attribute name="prefix" type="asnx:NCName"/> </optional> </sequence> </type> </namedType> <namedTypename="XER-ElementInstruction" type="xer:XER-SimpleInstruction"/> <namedType name="XER-EmbedValuesInstruction" type="xer:XER-SimpleInstruction"/> <namedType name="XER-ListInstruction" type="xer:XER-SimpleInstruction"/> <namedTypename="XER-NameInstruction"> <type> <sequence><optional> <group name="targetList" type="xer:XER-TargetList"/> </optional> <optional><group name="newNameOrKeyword"type="xer:XER-NewNameOrKeyword"/> </optional>type="asnx:XER-NewNameOrKeyword"/> </sequence> </type> </namedType> <namedType name="XER-NewNameOrKeyword"><type<type> <choice insertions="none"><choice><attribute name="newName"type="asn1:UTF8String"/>type="asnx:UTF8String"/> <attribute name="conversion"type="xer:XER-Conversion"/>type="asnx:XER-Conversion"/> </choice> </type> </namedType> <namedType name="XER-Conversion"> <type> <enumerated>Legg Expires 14 May 2006 [Page 54] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005<enumeration name="capitalized" number="0"/> <enumeration name="uncapitalized" number="1"/> <enumeration name="uppercased" number="2"/> <enumeration name="lowercased" number="3"/> </enumerated> </type> </namedType> <namedType name="XER-NamespaceInstruction"> <type> Legg Expires 20 April 2007 [Page 30] INTERNET-DRAFT ASN.X: XER Encoding Instructions October 20, 2006 <sequence> <optional> <groupname="targetList" type="xer:XER-TargetList"/> </optional> <optional> <groupname="namespace"type="xer:XER-NamespaceSpecification"/>type="asnx:XER-NamespaceSpecification"/> </optional> </sequence> </type> </namedType> <namedType name="XER-NamespaceSpecification"><type insertions="none"> <sequence><type> <sequence insertions="hollow"> <attribute name="name"type="asn1:AnyURI"/>type="asnx:AnyURI"/> <optional> <attribute name="prefix"type="asn1:NCName"/>type="asnx:NCName"/> </optional> </sequence> </type> </namedType> <namedType name="XER-PIOrCommentInstruction"> <type> <sequence><optional> <group name="targetList" type="xer:XER-TargetList"/> </optional> <optional><attribute name="text"type="asn1:UTF8String"/> </optional> <optional>type="asnx:UTF8String"/> <attribute name="position"type="xer:XER-Position"/> </optional>type="asnx:XER-Position"/> </sequence> </type> </namedType>Legg Expires 14 May 2006 [Page 55] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005<namedType name="XER-Position"> <type> <enumerated> <enumeration name="beforeTag" number="0"/> <enumeration name="beforeValue" number="1"/><enumeration name="afterValue" number="2"/> <enumeration name="afterTag" number="3"/> </enumerated> </type> </namedType> <namedType name="XER-TextInstruction"> <type> <sequence> <optional> <group name="targetList" type="xer:XER-TargetList"/> </optional> <optional> <group name="newNameOrKeyword" type="xer:XER-NewNameOrKeyword"/> </optional> </sequence> </type> </namedType> <namedType name="XER-UntaggedInstruction" type="xer:XER-SimpleInstruction"/> <namedType name="XER-UseNilInstruction" type="xer:XER-SimpleInstruction"/> <namedType name="XER-UseNumberInstruction" type="xer:XER-SimpleInstruction"/> <namedType name="XER-UseOrderInstruction" type="xer:XER-SimpleInstruction"/> <namedType name="XER-UseQNameInstruction" type="xer:XER-SimpleInstruction"/> <namedType name="XER-UseTypeInstruction" type="xer:XER-SimpleInstruction"/> <namedType name="XER-UseUnionInstruction" type="xer:XER-SimpleInstruction"/> <namedType name="XER-WhiteSpaceInstruction"> <type> <sequence> Legg Expires 14 May 2006 [Page 56] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005 <optional> <group name="targetList" type="xer:XER-TargetList"/> </optional> <optional> <attribute name="action" type="xer:XER-WhiteSpaceAction"/> </optional> </sequence> </type> </namedType> <namedType name="XER-WhiteSpaceAction"> <type> <enumerated> <enumeration name="replace" number="0"/> <enumeration name="collapse" number="1"/> </enumerated> </type> </namedType> <namedType name="XER-AssumeReferenceInstruction"> <type> <sequence> <attribute name="name" type="asnx:TypeReference"/> </sequence><enumeration name="afterValue" number="2"/> <enumeration name="afterTag" number="3"/> </enumerated> </type> </namedType> <namedTypename="XER-AssumeModuleInstruction">name="XER-TextInstruction"> <type> <sequence><attribute name="name" type="asnx:ModuleReference"/> <optional> <attribute name="identifier" type="asnx:DefinitiveIdentifier"/> </optional><optional><attribute name="schemaIdentity" type="asn1:AnyURI"/><group name="newNameOrKeyword" type="asnx:XER-NewNameOrKeyword"/> </optional> </sequence> </type></namedType> </asn1:module> Normative References [BCP14] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.Legg Expires14 May 200620 April 2007 [Page57]31] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 [URI] Berners-Lee, T., Fielding, R. and L. Masinter, "Uniform Resource Identifiers (URI): Generic Syntax", STD 66, RFC 3986, January 2005. [RXER] Legg, S. and D. Prager, "Robust XML Encoding Rules (RXER) for Abstract Syntax Notation One (ASN.1)", draft-legg-xed-rxer-xx.txt, a work in progress, October 2005. [RXEREI] Legg, S., "Encoding Instructions for the Robust XML Encoding Rules (RXER)", draft-legg-xed-rxer-ei-xx.txt, a work in progress,October2005. [ASN.X] Legg, S., "Abstract Syntax Notation X (ASN.X)", draft-legg-xed-asd-xx.txt, a work in progress, November 2005. [X.680] ITU-T Recommendation X.680 (07/02) | ISO/IEC 8824-1, Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation. [X.680-1] Draft Amendment 1 (to ITU-T Rec. X.680 | ISO/IEC 8824-1) Support for EXTENDED-XER. [X.683] ITU-T Recommendation X.683 (07/02) | ISO/IEC 8824-4, Information technology - Abstract Syntax Notation One (ASN.1): Parameterization of ASN.1 specifications. [X.693-1] Amendment 1: (to ITU-T Rec. X.693 | ISO/IEC 8825-4) XER encoding instructions and EXTENDED-XER [XML10] Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E. and F. Yergeau, "Extensible Markup Language (XML) 1.0 (Third Edition)", W3C Recommendation, http://www.w3.org/TR/2004/REC-xml-20040204, February 2004. [XML11] Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E., Yergeau, F., and J. Cowan, "Extensible Markup Language (XML) 1.1", W3C Recommendation, http://www.w3.org/TR/2004/REC-xml11-20040204, February 2004. [XMLNS10] Bray, T., Hollander,20, 2006 </namedType> <namedType name="XER-WhiteSpaceInstruction"> <type> <sequence> <attribute name="action" type="asnx:XER-WhiteSpaceAction"/> </sequence> </type> </namedType> <namedType name="XER-WhiteSpaceAction"> <type> <enumerated> <enumeration name="replace" number="0"/> <enumeration name="collapse" number="1"/> </enumerated> </type> </namedType> </asnx:module> Appendix D.and A. Layman, "NamespacesASN.X for Target List Notation This appendix is non-normative. <?xml version="1.0"?> <asnx:module xmlns:asnx="urn:ietf:params:xml:ns:asnx" xmlns:tln="urn:ietf:params:xml:ns:asnx" name="TargetListNotation" identifier="1.3.6.1.4.1.21472.1.0.4" schemaIdentity="urn:oid:1.3.6.1.4.1.21472.1.0.4" targetNamespace="urn:ietf:params:xml:ns:asnx" targetPrefix="tln" extensibilityImplied="true"> <annotation> Copyright (C) The Internet Society (2006). This version of this ASN.X module is part of RFC XXXX; see the RFC itself for full legal notices. </annotation> <namedType name="TargetList"> <type> <sequenceOf minSize="1"> <element name="target" type="tln:Targets"/> </sequenceOf> </type> </namedType> Legg Expires 20 April 2007 [Page 32] INTERNET-DRAFT ASN.X: XER Encoding Instructions October 20, 2006 <namedType name="Targets"> <type> <choice insertions="none"> <element name="allTypes" type="asnx:NULL"/> <group name="identifiedTypes" type="tln:QualifiedTypeIdentification"/> <element name="components" type="tln:IdentifiersInContext"/> <element name="allImportsFrom"> <annotation> allImportsFrom is not used inXML", http://www.w3.org/TR/1999/REC-xml-names-19990114, January 1999. [ISET] Cowan, J.this version </annotation> <type> <sequence/> </type> </element> </choice> </type> </namedType> <namedType name="QualifiedTypeIdentification"> <annotation> TypeIdentification andR. Tobin, "XML Information Set (Second Edition)", W3C Recommendation,BuiltInTypeIdentification </annotation> <type> <sequence insertions="hollow"> <group name="types"> <type> <choice insertions="singular"> <group name="specificType" type="tln:SpecificTypeIdentification"/> <element name="choice" type="asnx:NULL"/> <element name="enumerated" type="asnx:NULL"/> <element name="instanceOf" type="asnx:NULL"/> <element name="sequence" type="asnx:NULL"/> <element name="sequenceOf" type="asnx:NULL"/> <element name="set" type="asnx:NULL"/> <element name="setOf" type="asnx:NULL"/> </choice> </type> </group> <optional> <group name="qualification" type="tln:QualifyingInformationPart"/> </optional> </sequence> </type> </namedType> Legg Expires14 May20 April 2007 [Page 33] INTERNET-DRAFT ASN.X: XER Encoding Instructions October 20, 2006 <namedType name="SpecificTypeIdentification"> <type> <sequence insertions="hollow"> <attribute name="type" type="asnx:QName"/> <optional> <element name="component" type="asnx:Markup"/> </optional> <optional> <element name="allTextuallyPresent" type="asnx:NULL"/> </optional> </sequence> </type> </namedType> <namedType name="QualifyingInformationPart"> <type> <choice insertions="none"> <element name="allIdentifiers" type="asnx:NULL"/> <element name="identifier"> <type> <sequence> <attribute name="name" type="asnx:NCName"/> </sequence> </type> </element> </choice> </type> </namedType> <namedType name="IdentifiersInContext"> <type> <sequence> <group name="identifiers" type="tln:IdentifierList"/> <element name="in"> <type> <choice> <element name="allTypes" type="asnx:NULL"/> <group name="specificType" type="tln:SpecificTypeIdentification"/> </choice> </type> </element> </sequence> </type> </namedType> <namedType name="IdentifierList"> <type> Legg Expires 20 April 2007 [Page58]34] INTERNET-DRAFT ASN.X: XER Encoding InstructionsNovember 14, 2005 http://www.w3.org/TR/2004/REC-xml-infoset-20040204, February 2004. [UNICODE] The Unicode Consortium, "The Unicode Standard, Version 4.0", Boston, MA, Addison-Wesley Developers Press, 2003. ISBN 0-321-18578-1. Informative References [X.693] ITU-T Recommendation X.693 (12/01) | ISO/IEC 8825-4:2002, Information technology - ASN.1 encoding rules: XML encoding rules (XER)October 20, 2006 <choice insertions="none"> <group name="list" type="tln:IdentifiedComponents"/> <element name="allTextuallyPresent" type="asnx:NULL"/> <element name="allFirstLevel" type="asnx:NULL"/> </choice> </type> </namedType> <namedType name="IdentifiedComponents"> <type> <sequenceOf minSize="1"> <group name="identifiedComponent" type="tln:IdentifiedComponent"/> </sequenceOf> </type> </namedType> <namedType name="IdentifiedComponent"> <type> <choice insertions="singular"> <element name="component" type="tln:GenericIdentifiedComponent"/> <element name="element" type="tln:GenericIdentifiedComponent"/> <element name="attribute" type="tln:GenericIdentifiedComponent"/> <element name="group" type="tln:GenericIdentifiedComponent"/> <element name="member" type="tln:GenericIdentifiedComponent"/> <element name="item" type="tln:GenericIdentifiedComponent"/> </choice> </type> </namedType> <namedType name="GenericIdentifiedComponent"> <type> <sequence> <attribute name="name" type="asnx:QName"/> </sequence> </type> </namedType> </asnx:module> Author's Address Dr. Steven Legg eB2Bcom Suite 3, Woodhouse Corporate Centre 935 Station Street Box Hill North, Victoria 3129 AUSTRALIA Legg Expires 20 April 2007 [Page 35] INTERNET-DRAFT ASN.X: XER Encoding Instructions October 20, 2006 Phone: +61 3 9896 7830 Fax: +61 3 9896 7801 EMail: steven.legg@eb2bcom.com Full Copyright Statement Copyright (C) The Internet Society(2005).(2006). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rightsLegg Expires 14 May 2006 [Page 59] INTERNET-DRAFT ASN.X: XER Encoding Instructions November 14, 2005might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Note to the RFC Editor: the remainder of this document is to be removed before final publication. Changes in Draft 01 Legg Expires 20 April 2007 [Page 36] INTERNET-DRAFT ASN.X: XER Encoding Instructions October 20, 2006 ASN.1 Schema has been renamed to Abstract Syntax Notation X (ASN.X) and the<asn1:schema><asnx:schema> element has been renamed to<asn1:module>.<asnx:module>. The XER-EncodingInstructionSchema module has been renamed to XER-EncodingInstructionNotation. The schema identity for the module has been similarly changed. The component attribute in the SpecificTypeIdentification translation has been changed to a <component> element. Examples have been added. The CONTENT encoding instruction has been renamed to GROUP and a component subject to a GROUP encoding instruction is now an element item with the [local name] "group" instead of "content". The <encodingControl-XER> element has been renamed to <XER> and now appears as a child element of an <encodingControls> element. Insertion encoding instructions have been added to the ASN.1 for XER Encoding Instruction Notation to remove extension ambiguity. Changes in Draft 02 The AnyType ASN.1 type has been renamed to Markup. Each EncodingInstruction in an EncodingInstructionAssignmentList is now wrapped in a <targettedInstruction> element with the <target> elements following the encoding instruction element instead of being nested within it. This is better aligned with the improved syntax for XER encoding instructions that will be introduced along with encoding instructions for PER. The ASN.1 for TargetList has been extracted into a separate ASN.1 module so that it can be more conveniently shared with encoding instructions for PER. The method for dealing with parameterized definitions has been generalized for ASN.X, so a specific solution for module context changes with respect to XER encoding instructions is no longer needed and has been dropped. The treatment of the GLOBAL-DEFAULTS encoding instruction has been changed so that there is now an explicit <globalDefaults> element item. A negating instruction is now represented as an empty element item with a name beginning with "not-" instead of being represented as a Legg Expires14 May20 April 2007 [Page 37] INTERNET-DRAFT ASN.X: XER Encoding Instructions October 20, 2006 positive instruction child of a <not> element item. A preprocessing step has been added to deal with ImportedTypesIdentification. The previous translation for ImportedTypesIdentification was unable to account for symbols imported from another module's import list. The URL for the ASN.1 namespace has been replaced. A permanent URN will be requested from IANA. Legg Expires 20 April 2007 [Page60]38] ----