RFC4912 日本語訳

4912 Abstract Syntax Notation X (ASN.X). S. Legg. July 2007. (Format: TXT=325190 bytes) (Status: EXPERIMENTAL)
プログラムでの自動翻訳です。
英語原文

Network Working Group                                            S. Legg
Request for Comments: 4912                                       eB2Bcom
Category: Experimental                                         July 2007

Leggがコメントのために要求するワーキンググループS.をネットワークでつないでください: 4912年のeB2Bcomカテゴリ: 実験的な2007年7月

                   Abstract Syntax Notation X (ASN.X)

抽象構文記法X(ASN.X)

Status of This Memo

このメモの状態

   This memo defines an Experimental Protocol for the Internet
   community.  It does not specify an Internet standard of any kind.
   Discussion and suggestions for improvement are requested.
   Distribution of this memo is unlimited.

このメモはインターネットコミュニティのためにExperimentalプロトコルを定義します。 それはどんな種類のインターネット標準も指定しません。 議論と改善提案は要求されています。 このメモの分配は無制限です。

Copyright Notice

版権情報

   Copyright (C) The IETF Trust (2007).

IETFが信じる著作権(C)(2007)。

Abstract

要約

   Abstract Syntax Notation X (ASN.X) is a semantically equivalent
   Extensible Markup Language (XML) representation for Abstract Syntax
   Notation One (ASN.1) specifications.  ASN.X completely avoids the
   numerous ambiguities inherent in the ASN.1 language; therefore,
   specifications written in ASN.X are much easier to parse and manage
   than original ASN.1 specifications.  ASN.X, together with the Robust
   XML Encoding Rules (RXER), constitutes a schema language for XML
   documents that offers, through other ASN.1 encoding rules,
   alternative compact binary encodings for XML instance documents.

抽象的なSyntax Notation X(ASN.X)は抽象的なSyntax Notation One(ASN.1)仕様の意味的に同等な拡張マークアップ言語(XML)表現です。 ASN.XはASN.1言語に固有の多数のあいまいさを完全に避けます。 したがって、分析しやすくて、ASN.Xに書かれた仕様はオリジナルのASN.1仕様よりはるかに管理しやすいです。 ASN.XはRobust XML Encoding Rules(RXER)と共にXMLドキュメントのためのXMLインスタンスドキュメントのために他のASN.1符号化規則で代替のコンパクトな2進のencodingsを提供するスキーマ言語を構成します。

Legg                          Experimental                      [Page 1]

RFC 4912               Abstract Syntax Notation X              July 2007

[1ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

Table of Contents

目次

   1. Introduction ....................................................4
   2. Conventions .....................................................5
   3. General Considerations ..........................................6
      3.1. Annotations ................................................7
   4. ModuleDefinition Translation ....................................8
   5. Translation of Assignments .....................................11
      5.1. Referencing Named Constructs ..............................11
      5.2. Importing Namespaces ......................................12
      5.3. TypeAssignment Translation ................................14
      5.4. ValueAssignment and XMLValueAssignment Translation ........14
      5.5. ValueSetTypeAssignment Translation ........................15
      5.6. ObjectClassAssignment Translation .........................15
      5.7. ObjectAssignment Translation ..............................16
      5.8. ObjectSetAssignment Translation ...........................16
      5.9. ParameterizedAssignment Translation .......................17
   6. Translation of Types ...........................................17
      6.1. Identifier Replacement ....................................17
      6.2. DefinedType Translation ...................................18
      6.3. Translation of Built-in Types .............................20
      6.4. BitStringType Translation .................................21
      6.5. IntegerType Translation ...................................22
      6.6. EnumeratedType Translation ................................24
      6.7. PrefixedType Translation ..................................25
           6.7.1. Short Form TaggedType Translation ..................28
           6.7.2. Long Form TaggedType Translation ...................29
      6.8. SelectionType Translation .................................30
      6.9. InstanceOfType Translation ................................31
      6.10. ObjectClassFieldType Translation .........................31
      6.11. TypeFromObject and ValueSetFromObjects Translation .......32
      6.12. Translation of Combining Types ...........................32
           6.12.1. NamedType Translation .............................32
           6.12.2. SequenceType Translation ..........................36
           6.12.3. SetType Translation ...............................38
           6.12.4. ChoiceType Translation ............................39
           6.12.5. Translation of UNION Types ........................40
           6.12.6. SequenceOfType Translation ........................41
           6.12.7. Translation of LIST Types .........................42
           6.12.8. SetOfType Translation .............................42
           6.12.9. Effect of Insertion Encoding Instructions .........43
      6.13. Translation of Constrained Types .........................43
           6.13.1. Constraint Translation ............................46
           6.13.2. UserDefinedConstraint Translation .................46
           6.13.3. TableConstraint Translation .......................47
           6.13.4. ContentsConstraint Translation ....................49
           6.13.5. ExceptionSpec Translation .........................50

1. 序論…4 2. コンベンション…5 3. 一般問題…6 3.1. 注釈…7 4. ModuleDefinition翻訳…8 5. 課題に関する翻訳…11 5.1. 参照箇所は構造物を命名しました…11 5.2. 名前空間をインポートします…12 5.3. TypeAssignment翻訳…14 5.4. ValueAssignmentとXMLValueAssignment翻訳…14 5.5. ValueSetTypeAssignment翻訳…15 5.6. ObjectClassAssignment翻訳…15 5.7. ObjectAssignment翻訳…16 5.8. ObjectSetAssignment翻訳…16 5.9. ParameterizedAssignment翻訳…17 6. タイプに関する翻訳…17 6.1. 識別子交換…17 6.2. DefinedType翻訳…18 6.3. 内蔵型に関する翻訳…20 6.4. BitStringType翻訳…21 6.5. IntegerType翻訳…22 6.6. EnumeratedType翻訳…24 6.7. PrefixedType翻訳…25 6.7.1. 縮約形TaggedType翻訳…28 6.7.2. 長い間、TaggedType翻訳を形成してください…29 6.8. SelectionType翻訳…30 6.9. InstanceOfType翻訳…31 6.10. ObjectClassFieldType翻訳…31 6.11. TypeFromObjectとValueSetFromObjects翻訳…32 6.12. 結合に関する翻訳はタイプします…32 6.12.1. NamedType翻訳…32 6.12.2. SequenceType翻訳…36 6.12.3. SetType翻訳…38 6.12.4. ChoiceType翻訳…39 6.12.5. ユニオン式の翻訳…40 6.12.6. SequenceOfType翻訳…41 6.12.7. リストタイプに関する翻訳…42 6.12.8. SetOfType翻訳…42 6.12.9. 挿入が指示をコード化するという効果…43 6.13. 制約つきタイプに関する翻訳…43 6.13.1. 規制翻訳…46 6.13.2. UserDefinedConstraint翻訳…46 6.13.3. TableConstraint翻訳…47 6.13.4. ContentsConstraint翻訳…49 6.13.5. ExceptionSpec翻訳…50

Legg                          Experimental                      [Page 2]

RFC 4912               Abstract Syntax Notation X              July 2007

[2ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   7. Translation of Values ..........................................51
      7.1. Translation of Literal Values .............................53
      7.2. Translation of Notational Values ..........................54
           7.2.1. DefinedValue Translation ...........................56
           7.2.2. BuiltinValue Translation ...........................57
           7.2.3. ValueFromObject Translation ........................60
           7.2.4. ObjectClassFieldValue Translation ..................60
   8. Translation of Value Sets ......................................61
      8.1. ElementSetSpecs Translation ...............................62
      8.2. ElementSetSpec Translation ................................62
      8.3. SubtypeElements Translation ...............................63
           8.3.1. ValueRange Translation .............................64
           8.3.2. InnerTypeConstraints Translation ...................65
   9. Translation of Object Classes ..................................66
      9.1. DefinedObjectClass Translation ............................66
      9.2. ObjectClassDefn Translation ...............................68
           9.2.1. TypeFieldSpec Translation ..........................68
           9.2.2. FixedTypeValueFieldSpec Translation ................69
           9.2.3. FixedTypeValueSetFieldSpec Translation .............70
           9.2.4. VariableTypeValueFieldSpec Translation .............71
           9.2.5. VariableTypeValueSetFieldSpec Translation ..........73
           9.2.6. FieldName Translation ..............................74
           9.2.7. ObjectFieldSpec Translation ........................75
           9.2.8. ObjectSetFieldSpec Translation .....................76
   10. Translation of Objects ........................................77
      10.1. DefinedObject Translation ................................77
      10.2. ObjectDefn Translation ...................................78
      10.3. ObjectFromObject Translation .............................80
   11. Translation of Object Sets ....................................80
      11.1. DefinedObjectSet Translation .............................81
      11.2. ObjectSetElements Translation ............................82
           11.2.1. ObjectSetFromObjects Translation ..................83
   12. Translation of Information From Objects .......................83
   13. Translation of Parameterized Definitions ......................83
   14. EncodingControlSections Translation ...........................93
   15. Security Considerations .......................................94
   16. Acknowledgements ..............................................94
   17. References ....................................................95
      17.1. Normative References .....................................95
      17.2. Informative References ...................................97
   Appendix A. ASN.1 for ASN.X .......................................95
   Appendix B. ASN.X for ASN.X ......................................115

7. 値に関する翻訳…51 7.1. 文字通りの値に関する翻訳…53 7.2. 記号法の値に関する翻訳…54 7.2.1. DefinedValue翻訳…56 7.2.2. BuiltinValue翻訳…57 7.2.3. ValueFromObject翻訳…60 7.2.4. ObjectClassFieldValue翻訳…60 8. 価値に関する翻訳はセットします…61 8.1. ElementSetSpecs翻訳…62 8.2. ElementSetSpec翻訳…62 8.3. SubtypeElements翻訳…63 8.3.1. ValueRange翻訳…64 8.3.2. InnerTypeConstraints翻訳…65 9. オブジェクトに関する翻訳は属します…66 9.1. DefinedObjectClass翻訳…66 9.2. ObjectClassDefn翻訳…68 9.2.1. TypeFieldSpec翻訳…68 9.2.2. FixedTypeValueFieldSpec翻訳…69 9.2.3. FixedTypeValueSetFieldSpec翻訳…70 9.2.4. VariableTypeValueFieldSpec翻訳…71 9.2.5. VariableTypeValueSetFieldSpec翻訳…73 9.2.6. FieldName翻訳…74 9.2.7. ObjectFieldSpec翻訳…75 9.2.8. ObjectSetFieldSpec翻訳…76 10. オブジェクトに関する翻訳…77 10.1. DefinedObject翻訳…77 10.2. ObjectDefn翻訳…78 10.3. ObjectFromObject翻訳…80 11. オブジェクトに関する翻訳はセットします…80 11.1. DefinedObjectSet翻訳…81 11.2. ObjectSetElements翻訳…82 11.2.1. ObjectSetFromObjects翻訳…83 12. オブジェクトからの情報に関する翻訳…83 13. Parameterized定義に関する翻訳…83 14. EncodingControlSections翻訳…93 15. セキュリティ問題…94 16. 承認…94 17. 参照…95 17.1. 標準の参照…95 17.2. 有益な参照…97 ASN Xのための付録A.ASN.1…95 ASN Xのための付録B.ASN.X…115

Legg                          Experimental                      [Page 3]

RFC 4912               Abstract Syntax Notation X              July 2007

[3ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

1.  Introduction

1. 序論

   A full parser for the Abstract Syntax Notation One (ASN.1) language
   [X.680][X.680-1][X.681][X.682][X.683] is difficult to implement due
   to numerous ambiguities in the notation.  For example, certain
   notations for a Value are syntactically indistinguishable from
   notation for a ValueSet, Object, ObjectSet, DummyReference, or
   SimpleTableConstraint.  An ObjectClassAssignment, ObjectAssignment,
   or ObjectSetAssignment resembles respectively a TypeAssignment,
   ValueAssignment, or ValueSetTypeAssignment.  A
   FixedTypeValueFieldSpec or FixedTypeValueSetFieldSpec resembles
   respectively an ObjectFieldSpec or ObjectSetFieldSpec, and an
   ObjectClassFieldType resembles InformationFromObjects notation.  In
   general, such ambiguities can only be resolved once the entire
   specification has been parsed.  There are other notations that are
   not mutually ambiguous but still require several lexical tokens to be
   scanned before they can be distinguished from each other.  The
   difficulty of parsing ASN.1 is an impediment to its wider adoption.

抽象的なSyntax Notation One(ASN.1)言語[X.680][X.680-1][X.681][X.682][X.683]のための完全なパーサは多数のあいまいさのため記法で実装するのは難しいです。 例えば、ValueSet、Object、ObjectSet、DummyReference、またはSimpleTableConstraintには、Valueのためのある記法は記法からシンタクス上区別がつきません。 ObjectClassAssignment、ObjectAssignment、またはObjectSetAssignmentがそれぞれTypeAssignment、ValueAssignment、またはValueSetTypeAssignmentに類似しています。 FixedTypeValueFieldSpecかFixedTypeValueSetFieldSpecがそれぞれObjectFieldSpecかObjectSetFieldSpecに類似しています、そして、ObjectClassFieldTypeはInformationFromObjects記法に類似しています。 一般に、全体の仕様がいったん分析されると、そのようなあいまいさを取り除くことができるだけです。 互いとそれらを区別できる前に、互いにあいまいではありませんが、数個の字句がスキャンされるのをまだ必要としている他の記法があります。 ASN.1を分析するという困難は、より広い採用の障害です。

   This document defines a semantically equivalent Extensible Markup
   Language (XML) [XML10][XML11] representation for ASN.1 specifications
   called Abstract Syntax Notation X (ASN.X).  An ASN.X module is a
   well-formed and valid XML document conforming to XML namespaces
   [XMLNS10][XMLNS11].  ASN.X completely avoids the inherent ambiguities
   of the ASN.1 language; therefore, specifications written in ASN.X are
   much easier to parse and manage than original ASN.1 specifications.
   For example, any conformant XML processor forms the basis of an ASN.1
   toolkit.

このドキュメントは抽象的なSyntax Notation X(ASN.X)と呼ばれるASN.1仕様の意味的に同等な拡張マークアップ言語(XML)[XML10][XML11]表現を定義します。 ASN.XモジュールはXML名前空間[XMLNS10][XMLNS11]に一致している整形式の、そして、有効なXMLドキュメントです。 ASN.XはASN.1言語の固有のあいまいさを完全に避けます。 したがって、分析しやすくて、ASN.Xに書かれた仕様はオリジナルのASN.1仕様よりはるかに管理しやすいです。 例えば、どんなconformant XMLプロセッサもASN.1ツールキットの基礎を形成します。

   ASN.X, together with the Robust XML Encoding Rules (RXER) [RXER],
   constitutes a schema language for XML documents that offers, through
   other ASN.1 encoding rules, alternative compact binary encodings for
   XML instance documents conforming to an ASN.X specification.  ASN.X
   definitions can also incorporate type, element, and attribute
   definitions from XML Schema [XSD1] documents, RELAX NG [RNG]
   documents, or Document Type Definitions (DTDs) [XML10][XML11].

ASN.XはRobust XML Encoding Rules(RXER)[RXER]と共にXMLドキュメントのためのASN.X仕様に一致しているXMLインスタンスドキュメントのために他のASN.1符号化規則で代替のコンパクトな2進のencodingsを提供するスキーマ言語を構成します。 また、ASN.X定義はXML Schema[XSD1]ドキュメント、RELAX NG[RNG]ドキュメント、またはDocument Type Definitions(DTD)[XML10][XML11]からタイプ、要素、および属性定義を組み込むことができます。

   ASN.X is defined in terms of rules for translating from an ASN.1
   specification.  This does not preclude an ASN.X module being written
   directly without a pre-existing ASN.1 module; however, such an ASN.X
   module is considered valid if and only if there exists, in principle,
   an ASN.1 module that when translated would yield the ASN.X module.

ASN.XはASN.1仕様から翻訳するための規則で定義されます。 これは直接先在のASN.1モジュールなしで書かれているASN.Xモジュールを排除しません。 そして、しかしながら、そのようなASN.Xモジュールが有効であると考えられる、ASN.1モジュールが原則として存在している場合にだけ、翻訳されると、それはASN.Xモジュールをもたらすでしょう。

   The format for ASN.X has also been designed so that the content of an
   ASN.X module conforms to the RXER encoding of an abstract value of an
   ASN.1 type, the ModuleDefinition type, presented in Appendix A.  This
   means that it is possible to decode an ASN.X module using an RXER
   decoder and then re-encode the abstract value (for storage or

またはまた、ASN.XがASN.Xモジュールの内容がASN.1タイプの抽象的な価値のコード化(ModuleDefinitionタイプ)がAppendix A.Thisで寄贈したRXERに従うように設計されているので形式が、RXERデコーダを使用することでASN.Xモジュールを解読して、次に、抽象的な値を再コード化するのが可能であることを意味する、(ストレージ。

Legg                          Experimental                      [Page 4]

RFC 4912               Abstract Syntax Notation X              July 2007

[4ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   transmission) using any of the other encoding rules for ASN.1.  Thus,
   the "X" in ASN.X can be regarded as standing for either XML or RXER,
   or more generally, for any set of ASN.1 encoding rules.

トランスミッション) ASN.1に他の符号化規則のいずれも使用します。 より一般に、したがって、ASN.Xの「X」をXMLかRXERのどちらかを表すと見なすことができますか、またはASN.1のどんなセットのためにも、コード化は統治されます。

   The ASN.X translation of the ASN.1 module in Appendix A is presented
   in Appendix B.

Appendix AのASN.1モジュールに関するASN.X翻訳はAppendix Bに提示されます。

2.  Conventions

2. コンベンション

   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.

キーワード“MUST"、「必須NOT」が「必要です」、“SHALL"、「」、“SHOULD"、「」、「推薦された」、およびこのドキュメントの「5月」はBCP14RFC2119[BCP14]で説明されるように解釈されることになっているべきであるものとします。 「任意である」というキーワードはASN.1意味と共に排他的に使用されます。

   Throughout this document "type" shall be taken to mean an ASN.1 type,
   and "value" shall be taken to mean an ASN.1 abstract value.

このドキュメント中では、ASN.1がタイプすることを意味するために「タイプ」を取るものとします、そして、ASNの.1の抽象的な価値を意味するために「値」を取るものとします。

   A 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
   that production.

ASN.1生産[X.680](例えば、Type、NamedType)の参照はその生産に対応するASN.1仕様によるテキストの参照です。

   The description of the translation of an ASN.1 module into an ASN.X
   module makes use of definitions from the XML Information Set
   (Infoset) [INFOSET].  In particular, information item property names
   follow the Infoset convention of being shown in square brackets,
   e.g., [local name].  Literal values of Infoset properties are
   enclosed in double quotes; however, the double quotes are not part of
   the property values.  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 <type> element item"
   means the element item with the [local name] "type".  Attribute items
   will be referred to by their [local name], e.g., "the type attribute
   item" means the attribute item with the [local name] "type".

ASN.XモジュールへのASN.1モジュールに関する翻訳の記述はXML情報Set(Infoset)[INFOSET]から定義を利用します。 特に、情報項目特性の名は角括弧、例えば、[地方名]で示されるInfosetコンベンションに続きます。 Infosetの特性の文字通りの値は二重引用符に同封されます。 しかしながら、二重引用符は特性の値の一部ではありません。 従うセクションでは、「情報項目」は「項目」に簡略化されて、例えば、「要素情報の品目」は「要素の品目」に簡略化されています。 要素の品目は角ブラケットにそれらの[地方名]によって示されるでしょう、例えば、「<タイプ>要素の品目」は[地方名]「タイプ」がある要素の品目を意味します。 属性項目はそれらの[地方名]によって示されるでしょう、例えば、「タイプ属性項目」は[地方名]「タイプ」がある属性項目を意味します。

   This document uses the namespace prefix "asnx:" to stand for the
   namespace name "urn:ietf:params:xml:ns:asnx", though in practice any
   valid namespace prefix is permitted in ASN.X.

名前空間が前に置くこのドキュメント用途は「以下をasnxします」。 名前空間を表すには、どんな有効な名前空間接頭語も実際にはASN.Xで受入れられますが、「つぼ:ietf:params:xml:ナノ秒: asnx」を命名してください。

   Encoding instructions [X.680-1] referenced by name in this
   specification are encoding instructions for RXER [RXEREI].  The
   associated provisions do not apply to encoding instructions for other
   encoding rules that happen to have the same name.

指示をコード化して、この仕様で名前によって参照をつけられる[X.680-1]はRXER[RXEREI]のために指示をコード化しています。 関連条項は、同じ名前を持っているのに起こる他の符号化規則のための指示をコード化するのに当てはまりません。

   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.

キャラクタ[ユニコード]のためのコード・ポイントは、ユニコードコンベンションU+n(nが4〜6つの16進数字である、例えば、間隔文字はU+0020です)を使用することで言い表されます。

Legg                          Experimental                      [Page 5]

RFC 4912               Abstract Syntax Notation X              July 2007

[5ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

3.  General Considerations

3. 一般問題

   ASN.X is defined in terms of rules for translating an ASN.1 module
   into a synthetic Infoset.  This synthetic Infoset is then serialized
   into a well-formed and valid XML document (the ASN.X module) in the
   same manner that the synthetic Infoset for a non-canonical RXER
   encoding is serialized into an XML document (see Section 6.12 of the
   specification for RXER [RXER]).

ASN.XはASN.1モジュールを合成のInfosetに翻訳するための規則で定義されます。 そして、この合成のInfosetは正典外のRXERのための合成のInfosetがコード化して、XMLドキュメント(RXER[RXER]のための仕様のセクション6.12を見る)に連載される同じ方法による整形式の、そして、有効なXMLドキュメント(ASN.Xモジュール)に連載されます。

      Aside: The serialization permits CDATA sections, character
      references, and parsed entity references.  However, note that an
      ASN.X module may be transferred as data in a protocol and that
      some protocols disallow entity references.

傍らに: 連載はセクション、文字参照、および解析対象実体参照をCDATAに可能にします。 しかしながら、プロトコルのデータとしてASN.Xモジュールを移すかもしれなくて、いくつかのプロトコルが実体参照を禁じることに注意してください。

   Apart from the [document element] of the document item for an ASN.X
   module, the translation of some ASN.1 construct belongs to the
   [children] or [attributes] of an enclosing element item.

は別として、ASN.Xモジュールのためのドキュメントの品目の[ドキュメント要素]、ASN.1が組み立てるいくつかに関する翻訳は同封の要素の品目の[子供]か[属性]に属します。

   Where the translation of the construct is an element item, it is
   appended to the [children] of the enclosing element item.  Elements
   MUST be appended to the [children] of the enclosing element item in
   the order described.  Translators MAY add white space character items
   (i.e., U+0020, U+0009, U+000D and U+000A) to the [children] of any
   element item (to improve the layout) except element items with the
   [local name] "literalValue", "fieldName", or "restrictBy".

構造物に関する翻訳が要素の品目であるところでは、同封の要素の品目の[子供]にそれを追加します。 オーダーにおける要素の品目が説明した同封の[子供]にElementsを追加しなければなりません。 翻訳者は[地方名]の"literalValue"、"fieldName"、または"restrictBy"と共に余白キャラクタ項目(すなわち、U+0020、U+0009、U+000D、およびU+000A)を要素の品目以外のどんな要素の品目(レイアウトを改良する)の[子供]にも加えるかもしれません。

      Aside: White space in the [children] of <fieldName> and
      <restrictBy> element items is explicitly covered under their
      respective descriptions.

傍らに: <fieldName>と<restrictBy>要素の品目の[子供]の余白は明らかに彼らのそれぞれの記述でカバーされています。

   Where the translation of the construct is an attribute item, it is
   added to the [attributes] of the enclosing element item.  The order
   of attribute items is not significant.  Translators MAY add leading
   and trailing white space characters to the [normalized value] of any
   attribute item except an attribute item with the [local name]
   "literalValue".

構造物に関する翻訳が属性項目であるところでは、それは同封の要素の品目の[属性]に加えられます。 属性項目の注文は重要ではありません。 翻訳者が主で引きずっている余白キャラクタを加えるかもしれない、[値を正常にします] [地方名]"literalValue"がある属性項目以外のどんな属性項目についても。

      Aside: An attribute or element item with the [local name]
      "literalValue" holds an RXER Infoset translation of an abstract
      value, and white space characters may be significant in that
      abstract value.  In most cases, RXER itself permits optional
      leading and trailing white space characters in the Infoset
      translation.

傍らに: [地方名]"literalValue"がある属性か要素の品目が抽象的な価値に関するRXER Infoset翻訳を保持します、そして、余白キャラクタはその抽象的な値で重要であるかもしれません。 多くの場合、RXER自身はInfoset翻訳で任意の主で引きずっている余白キャラクタを可能にします。

   Translators MAY add comment and processing instruction (PI) items to
   the [children] of any element item except an element item with the
   [local name] "literalValue".

翻訳者は[地方名]"literalValue"と共に要素の品目以外のどんな要素の品目の[子供]にもコメントと処理命令(PI)項目を加えるかもしれません。

Legg                          Experimental                      [Page 6]

RFC 4912               Abstract Syntax Notation X              July 2007

[6ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

      Aside: In most cases, RXER itself permits comment and PI items in
      the [children] of the element items with the [local name]
      "literalValue".

傍らに: 多くの場合、RXER自身は[地方名]"literalValue"と共に要素の品目の[子供]でコメントとPIの品目を可能にします。

      Aside: Note that an ASN.X module may be transferred as data in a
      protocol and that some protocols disallow processing instructions.

傍らに: プロトコルのデータとしてASN.Xモジュールを移すかもしれなくて、いくつかのプロトコルが処理命令を禁じることに注意してください。

   The [in-scope namespaces] and [namespace attributes] for
   <literalValue> and <restrictBy> element items are determined
   according to Section 6.10 of the specification for RXER [RXER].  The
   [in-scope namespaces] and [namespace attributes] for other element
   items in the translation are determined according to Section 6.2.2.1
   of the specification for RXER.

RXER[RXER]のための仕様のセクション6.10によると、<literalValue>と<restrictBy>要素の品目のための[範囲の名前空間]と[名前空間属性]は断固としています。 セクション6.2によると、翻訳における他の要素の品目のための[範囲の名前空間]と[名前空間属性]は断固としています。.2 RXERのための.1の仕様。

   The [namespace name] of any element item or attribute item generated
   by the translation from an ASN.1 specification has no value unless
   specified otherwise.  In those cases where the [namespace name] of an
   element item has a value, the [prefix] of the element item is
   determined according to Section 6.2.2.2 of the specification for
   RXER.  In those cases where the [namespace name] of an attribute item
   has a value, the [prefix] of the attribute item is determined
   according to Section 6.2.3.1 of the specification for RXER.

ASN.1仕様からの翻訳で生成されたどんな要素の品目や属性項目の[名前空間名]でも、別の方法で指定されない場合、値が全くありません。 セクション6.2によると、要素の品目の[接頭語]は要素の品目の[名前空間名]には値があると決心しています。それらのケース、どこ、.2 RXERのための.2の仕様。 セクション6.2によると、属性項目の[接頭語]は属性項目の[名前空間名]には値があると決心しています。それらのケース、どこ、.3 RXERのための.1の仕様。

      Aside: Non-canonical RXER allows all valid namespace prefixes and
      all valid placements for their corresponding namespace declaration
      attributes.

傍らに: 正典外のRXERはそれらの対応する名前空間宣言属性のためのすべての有効な名前空間接頭語とすべての有効なプレースメントを許容します。

   Whenever an element item is added to the [children] of an enclosing
   element item, the enclosing element item becomes the [parent] of the
   element item.

要素の品目が同封の要素の品目の[子供]に加えられるときはいつも、同封の要素の品目は要素の品目の[親]になります。

   Whenever an attribute item is added to the [attributes] of an element
   item, the element item becomes the [owner element] of the attribute
   item.  For each attribute item, the [specified] property is set to
   true, the [attribute type] has no value, and the value of the
   [references] property is set to unknown.

属性項目が要素の品目の[属性]に加えられるときはいつも、要素の品目がなる、属性項目の[所有者要素。] それぞれの属性項目において、[指定される]の特性は本当に設定されて、[属性タイプ]には、値が全くなくて、[参照]属性の価値は未知に設定されます。

3.1.  Annotations

3.1. 注釈

   In a number of places, as indicated in subsequent sections, the
   translator is permitted to add an element item with the [local name]
   "annotation".  The [children] and [attributes] of the <annotation>
   element item are at the discretion of the translator.

多くの場所では、その後のセクションにみられるように、翻訳者が[地方名]「注釈」で要素の品目を加えることが許可されています。 翻訳者の裁量には<注釈>要素の品目の[子供]と[属性]があります。

   Typical uses of the <annotation> element item would be to hold
   comments from the ASN.1 specification that are normative in nature,
   e.g., a comment in a user-defined constraint, or to hold directives
   for an ASN.1 compiler.

<注釈>要素の品目の典型的な用途は、ASN.1仕様からの現実に規範的なコメント、例えばユーザによって定義された規制におけるコメントを保持するか、またはASN.1コンパイラのための指示を保持するだろうことです。

Legg                          Experimental                      [Page 7]

RFC 4912               Abstract Syntax Notation X              July 2007

[7ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   Free text or XML comments in an <annotation> element will be
   preserved in a Canonical RXER (CRXER) encoding [RXER] (because the
   corresponding ASN.1 type for the <annotation> element item is the
   Markup type [RXER]), while XML comments outside <annotation> elements
   will not be preserved.

<注釈>要素における無料のテキストかXMLコメントが[RXER]をコード化しながら(<注釈>要素の品目のための対応するASN.1タイプがMarkupタイプ[RXER]であるので)、Canonical RXER(CRXER)に保存されるでしょう、<注釈>要素の外におけるXMLコメントは保存されないでしょうが。

   Vendors using the <annotation> element items to hold ASN.1 compiler
   directives (as attributes or child elements of the <annotation>
   element) SHOULD use element or attribute names that are qualified
   with a namespace name specific to the vendor.

ASN.1コンパイラ指示文(<注釈>要素の属性か子供要素としての)SHOULDを持つのに<注釈>要素の品目を使用するベンダーがベンダーに特定の名前空間名で資格がある要素か属性名を使用します。

4.  ModuleDefinition Translation

4. ModuleDefinition翻訳

   The translation of a ModuleDefinition [X.680] (an ASN.1 module) is an
   element item with the [local name] "module" and the [namespace name]
   "urn:ietf:params:xml:ns:asnx" (i.e., an <asnx:module> element item).
   The element item is typically the [document element] of a document
   item.

そして、ModuleDefinition[X.680](ASN.1モジュール)に関する翻訳が[地方名]「モジュール」がある要素の品目である、[名前空間名]「つぼ:ietf:params:xml:ナノ秒: asnx。」(すなわち、<asnx: モジュール>要素の品目) 要素の品目が通常、そうである、ドキュメントの品目の[ドキュメント要素。]

   An attribute item with the [local name] "format" and
   [normalized value] "1.0" MAY be added to the [attributes] of the
   <asnx:module> element item.

「1インチは<asnx: モジュール>要素の品目の[属性]に加えられるかもしれない」という[地方名]「形式」と[正常にされた値]がある属性項目。

   An ASN.1 module has a schema identity URI if it contains a
   SCHEMA-IDENTITY encoding instruction, in which case the schema
   identity URI is the character string specified by the AnyURIValue of
   the SCHEMA-IDENTITY encoding instruction.

ASN.1モジュールには、指示をコード化するSCHEMA-IDENTITYを含んでいるなら、図式アイデンティティURIがあって、その場合、図式アイデンティティURIは指示をコード化するSCHEMA-IDENTITYのAnyURIValueによって指定された文字列です。

   If the ASN.1 module being translated has a schema identity URI, then
   an attribute item with the [local name] "schemaIdentity" SHALL be
   added to the [attributes] of the <asnx:module> element item.  The
   [normalized value] of this attribute item is the schema identity URI
   of the module.

翻訳されるASN.1モジュールが図式アイデンティティURIを持っているなら、そして、[地方名]"schemaIdentity"SHALLが<asnx: モジュール>要素の品目の[属性]に加えられている状態で、属性項目です。 この属性項目の[正常にされた値]はモジュールの図式アイデンティティURIです。

   If the target namespace [RXEREI] for the ASN.1 module is not absent,
   then an attribute item with the [local name] "targetNamespace" SHALL
   be added to the [attributes] of the <asnx:module> element item.  The
   [normalized value] of this attribute item is the target namespace of
   the module.

ASN.1モジュールのための目標名前空間[RXEREI]が欠けないなら、そして、[地方名]"targetNamespace"SHALLが<asnx: モジュール>要素の品目の[属性]に加えられている状態で、属性項目です。 この属性項目の[正常にされた値]はモジュールの目標名前空間です。

      Aside: An ASN.1 module has a target namespace if it contains a
      TARGET-NAMESPACE encoding instruction.

傍らに: ASN.1モジュールには、指示をコード化するTARGET-NAMESPACEを含んでいるなら、目標名前空間があります。

   If the ASN.1 module contains a TARGET-NAMESPACE encoding instruction
   that specifies a Prefix, then an attribute item with the [local name]
   "targetPrefix" SHALL be added to the [attributes] of the

.1モジュールが[地方名]"targetPrefix"SHALLが[属性]に加えられている状態でa Prefix、当時の属性項目を指定する指示をコード化するTARGET-NAMESPACEを含むASNです。

Legg                          Experimental                      [Page 8]

RFC 4912               Abstract Syntax Notation X              July 2007

[8ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   <asnx:module> element item.  The [normalized value] of this attribute
   item is the character string specified by the NCNameValue in the
   Prefix.

<asnx: モジュール>要素の品目。 この属性項目の[正常にされた値]はPrefixのNCNameValueによって指定された文字列です。

   In examples in the remainder of this document, the namespace prefix
   "tns:" is used to stand for the target namespace of the module being
   translated.

中では、このドキュメントの残りにおける例、名前空間接頭語は「以下をtnsします」。 モジュールの目標名前空間のために翻訳されながら立つために、使用されます。

   An attribute item with the [local name] "name" SHALL be added to the
   [attributes] of the <asnx:module> element item.  The
   [normalized value] of this attribute item is the modulereference in
   the ModuleIdentifier in the ModuleDefinition.

SHALLという[地方名]「名前」が<asnxの[属性]に加えられている属性項目: モジュール>要素の品目。 この属性項目の[正常にされた値]はModuleDefinitionのModuleIdentifierのmodulereferenceです。

   If the DefinitiveIdentifier in the ModuleIdentifier in the
   ModuleDefinition is not empty, then an attribute item with the
   [local name] "identifier" SHALL be added to the [attributes] of the
   <asnx:module> element item.  The [normalized value] of this attribute
   item is the RXER character data translation [RXER] of the
   DefinitiveIdentifier.

ModuleDefinitionのModuleIdentifierのDefinitiveIdentifierが空でないなら、そして、[地方名]「識別子」SHALLが<asnx: モジュール>要素の品目の[属性]に加えられている状態で、属性項目です。 この属性項目の[正常にされた値]はDefinitiveIdentifierに関するRXERキャラクタデータ変換[RXER]です。

   If the TagDefault in the ModuleDefinition is empty, then an attribute
   item with the [local name] "tagDefault" and [normalized value]
   "explicit" SHALL be added to the [attributes] of the <asnx:module>
   element item.

ModuleDefinitionのTagDefaultが空であるなら、そして、[地方名]"tagDefault"と[正常にされた値]「明白な」SHALLが<asnx: モジュール>要素の品目の[属性]に加えられている状態で、属性項目です。

   If the TagDefault in the ModuleDefinition is not empty and the first
   keyword in the TagDefault is not "AUTOMATIC", then an attribute item
   with the [local name] "tagDefault" SHALL be added to the [attributes]
   of the <asnx:module> element item.  The [normalized value] of this
   attribute item is the first keyword in the TagDefault with all
   letters downcased, i.e., "explicit" or "implicit".

ModuleDefinitionのTagDefaultが空でなく、またTagDefaultにおける最初のキーワードが「自動でない」なら、[地方名]"tagDefault"がある属性項目は<asnxの[属性]に加えられるものとします: モジュール>要素の品目。 この属性項目の[正常にされた値]はすなわち、すべての手紙がdowncasedされる、「明白である」かまたは「暗黙であること」でのTagDefaultで最初のキーワードです。

   If the TagDefault in the ModuleDefinition is not empty and the first
   keyword in the TagDefault is "AUTOMATIC", then an attribute item with
   the [local name] "tagDefault" and [normalized value] "automatic" MAY
   be added to the [attributes] of the <asnx:module> element item.

ModuleDefinitionのTagDefaultが空でなく、TagDefaultにおける最初のキーワードが「自動である」なら、そして、[地方名]"tagDefault"と[値を正常にします]「自動である」5月が<asnx: モジュール>要素の品目の[属性]に加えられている状態で、属性項目です。

   If the ExtensionDefault in the ModuleDefinition is not empty, then an
   attribute item with the [local name] "extensibilityImplied" and
   [normalized value] "true" or "1" SHALL be added to the [attributes]
   of the <asnx:module> element item.

そして、ModuleDefinitionのExtensionDefaultが空でないなら、「本当に」か「1インチは<asnx: モジュール>要素の品目の[属性]に加えられるものとする」という[地方名]"extensibilityImplied"と[正常にされた値]がある属性項目です。

   If the ExtensionDefault in the ModuleDefinition is empty, then an
   attribute item with the [local name] "extensibilityImplied" and
   [normalized value] "false" or "0" MAY be added to the [attributes] of
   the <asnx:module> element item.

そして、ModuleDefinitionのExtensionDefaultが空であるなら、「虚偽」か「0インチは<asnx: モジュール>要素の品目の[属性]に加えられるかもしれない」という[地方名]"extensibilityImplied"と[正常にされた値]がある属性項目です。

Legg                          Experimental                      [Page 9]

RFC 4912               Abstract Syntax Notation X              July 2007

[9ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   An element item with the [local name] "annotation" MAY be added to
   the [children] of the <asnx:module> element item.

[地方名]「注釈」がある要素の品目は<asnxの[子供]に加えられるかもしれません: モジュール>要素の品目。

   The translation of each Assignment in the AssignmentList in the
   ModuleBody in the ModuleDefinition of the module being translated
   SHALL be appended to the [children] of the <asnx:module> element
   item.

翻訳、翻訳されたSHALLであるモジュールのModuleDefinitionのModuleBodyのAssignmentListの各Assignmentでは、<asnxの[子供]に追加してください: モジュール>要素の品目。

   If the EncodingControlSections instance in the ModuleDefinition
   contains an EncodingControlSection for RXER, then the translation of
   each NamedType in a TopLevelComponent [RXEREI] nested in the
   EncodingInstructionAssignmentList SHALL be added to the [children] of
   the <asnx:module> element item.  The relative order of the top-level
   components [RXEREI] SHOULD be preserved in the translation; however,
   the translations of the top-level components MAY be interspersed with
   the translations of the assignments in the AssignmentList.

ModuleDefinitionのEncodingControlSectionsインスタンスがEncodingControlSectionを含むなら、RXER、当時のEncodingInstructionAssignmentList SHALLで入れ子にされたTopLevelComponent[RXEREI]のそれぞれのNamedTypeに関する翻訳には、<asnxの[子供]に加えられてください: モジュール>要素の品目。 相対オーダ、先端平らコンポーネント[RXEREI]SHOULDでは、翻訳に保存されてください。 しかしながら、課題に関する翻訳がAssignmentListにある状態で、トップレベルコンポーネントに関する翻訳は点在するかもしれません。

   The translation of the EncodingControlSections instance in the
   ModuleDefinition of the module being translated SHALL be appended to
   the [children] of the <asnx:module> element item.

EncodingControlSectionsに関する翻訳はモジュールのModuleDefinitionで存在の翻訳されたSHALLを例証します。<asnx: モジュール>要素の品目の[子供]に追加します。

   Example

      MyModule DEFINITIONS
      IMPLICIT TAGS
      EXTENSIBILITY IMPLIED ::=
      BEGIN

暗黙のタグ伸展性が含意したMyModule定義:、:= 始まってください。

      MyType ::= INTEGER

MyType:、:= 整数

      ENCODING-CONTROL RXER

コード化しているコントロールRXER

          SCHEMA-IDENTITY  "http://example.com/id/MyModule"
          TARGET-NAMESPACE "http://example.com/ns/MyModule"

図式アイデンティティ" http://example.com/id/MyModule "目標名前空間" http://example.com/ns/MyModule "

          COMPONENT myElement INTEGER

コンポーネントmyElement整数

      END

終わり

      <asnx:module xmlns:asnx="urn:ietf:params:xml:ns:asnx"
                   name="MyModule"
                   schemaIdentity="http://example.com/id/MyModule"
                   targetNamespace="http://example.com/ns/MyModule"
                   tagDefault="implicit"
                   extensibilityImplied="true">

" http://example.com/ns/MyModule "" http://example.com/id/MyModule "<asnx: モジュールxmlns: asnx=「つぼ:ietf:params:xml:ナノ秒: asnx」名=の"MyModule"schemaIdentity=targetNamespace=tagDefaultが「暗黙」のextensibilityImplied=と等しい、「本当の">"

       <namedType name="MyType" type="asnx:INTEGER"/>

<namedType名前="MyType"は=「asnx: 整数」/>をタイプします。

Legg                          Experimental                     [Page 10]

RFC 4912               Abstract Syntax Notation X              July 2007

[10ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

       <element name="myElement" type="asnx:INTEGER"/>

<要素名=の"myElement"は=「asnx: 整数」/>をタイプします。

      </asnx:module>

</asnx: モジュール>。

5.  Translation of Assignments

5. 課題に関する翻訳

5.1.  Referencing Named Constructs

5.1. 構造物という参照箇所

   An Assignment in ASN.1 associates a reference name with a Type,
   Value, ValueSet, ObjectClass, Object, or ObjectSet.  For ASN.X, an
   Assignment is also regarded as associating an expanded name
   [XMLNS10][XMLNS11] with the Type, Value, ValueSet, ObjectClass,
   Object, or ObjectSet.  ASN.X uses these expanded names, rendered as
   qualified names [XMLNS10][XMLNS11], in place of the references in an
   ASN.1 specification.

ASN.1のAssignmentはType、Value、ValueSet、ObjectClass、Object、またはObjectSetの参照名を関連づけます。 また、ASN.Xに関しては、AssignmentはType、Value、ValueSet、ObjectClass、Object、またはObjectSetの拡張名前[XMLNS10][XMLNS11]を関連づけると見なされます。 ASN.XはASN.1仕様による参照に代わって適切な名前[XMLNS10][XMLNS11]として表されたこれらの拡張名前を使用します。

   In every case, the local name of the expanded name is the
   typereference, valuereference, objectclassreference, objectreference,
   or objectsetreference in the Assignment (i.e., the [normalized value]
   of the name attribute item in the translation of the Assignment,
   ignoring white space characters).  If the target namespace of the
   ASN.1 module in which the Assignment is defined is not absent, then
   the namespace name of the expanded name is that target namespace;
   otherwise, the namespace name of the expanded name has no value.
   When the expanded name is rendered as a qualified name, the namespace
   prefix is determined according to Section 6.7.11.1 of the
   specification for RXER [RXER].

すなわち、拡張名前の地方名があらゆる場合に、Assignmentのtypereference、valuereference、objectclassreference、objectreference、またはobjectsetreferenceである、([正常にされた値] 名前では、Assignmentに関する翻訳で項目を結果と考えてください、余白キャラクタを無視して) Assignmentが定義されるASN.1モジュールの目標名前空間が欠けないなら、拡張名前の名前空間名はその目標名前空間です。 さもなければ、拡張名前の名前空間名には、値が全くありません。 名前空間接頭語は拡張名前がいつ適切な名前として表されるかを決定します。セクション6.7 .11 RXER[RXER]のための.1の仕様。

   If an ASN.1 specification contains two or more modules where the
   target namespace is absent, then there exists the possibility that
   the expanded names defined by the ASN.X translations of those modules
   are not distinct.  The expanded names are not distinct if:

ASN.1仕様が目標名前空間が欠けている2つ以上のモジュールを含んでいるなら、それらのモジュールに関するASN.X翻訳で定義された拡張名前が異なっていない可能性は存在しています。 拡張名前が異なっていない、:

   (1) two or more type or value set assignments define the same
       typereference, or

または(1) 2以上がタイプされるか、または選択値群課題が同じtypereferenceを定義する。

   (2) two or more value assignments define the same valuereference, or

または(2) 2つ以上の値の課題が同じvaluereferenceを定義する。

   (3) two or more object class assignments define the same
       objectclassreference, or

または(3) 2つ以上のオブジェクトクラス課題が同じobjectclassreferenceを定義する。

   (4) two or more object assignments define the same objectreference,
       or

または(4) 2つ以上のオブジェクト課題が同じobjectreferenceを定義する。

   (5) two or more object set assignments define the same
       objectsetreference, or

または(5) 2つ以上のオブジェクトセット課題が同じobjectsetreferenceを定義する。

Legg                          Experimental                     [Page 11]

RFC 4912               Abstract Syntax Notation X              July 2007

[11ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   (6) two or more top-level element components [RXEREI] have the same
       local name, or

または(6) 2つ以上のトップレベル要素成分[RXEREI]には同じ地方名がある。

   (7) two or more top-level attribute components [RXEREI] have the same
       local name.

(7) 2つ以上のトップレベル属性コンポーネント[RXEREI]には、同じ地方名があります。

   If the expanded names are not distinct, then an unambiguous
   translation into ASN.X does not exist unless each of the modules has
   a SCHEMA-IDENTITY encoding instruction.  Consequently, if two or more
   modules where the target namespace is absent are being translated
   into ASN.X and the reference names defined in those modules will not
   be distinct, then as a local action prior to the translation, a
   SCHEMA-IDENTITY encoding instruction MUST be added to each of the
   modules that defines one or more of the indistinct expanded names and
   that does not already have a SCHEMA-IDENTITY encoding instruction.
   The character string (a URI) specified by the AnyURIValue of each
   added SCHEMA-IDENTITY encoding instruction is freely chosen by the
   translator, subject to the condition that these character strings are
   distinct [RXEREI].

SCHEMA-IDENTITYがそれぞれのモジュールで指示をコード化しないで、また拡張名前が異ならないなら、ASN.Xへの明白な翻訳は存在していません。 その結果、目標名前空間が欠けている2つ以上のモジュールがASN.Xに翻訳することにされるのであって、それらのモジュールで定義された参照名が異ならないなら、翻訳の前の地方の動きとして、不明瞭な拡張名前の1つ以上を定義して、SCHEMA-IDENTITYが既に指示をコード化しないそれぞれのモジュールに指示をコード化するSCHEMA-IDENTITYを追加しなければなりません。 それぞれのAnyURIValueによって指定された文字列(URI)は、これらの文字列が異なっているという条件[RXEREI]を条件として指示をコード化するSCHEMA-IDENTITYが翻訳者によって自由に選ばれていると言い足しました。

      Aside: Although this means that different translators might
      produce ASN.X modules that are syntactically different for any
      given ASN.1 module, those ASN.X modules will be semantically
      equivalent to each other and to the original ASN.1 module.

傍らに: これは、異なった翻訳者がいずれにおいても、ASN.1モジュールを考えて、シンタクス上異なったASN.Xモジュールを作成するかもしれないことを意味しますが、それらのASN.Xモジュールは互いと、そして、オリジナルのASN.1モジュールに意味的に同等になるでしょう。

   TARGET-NAMESPACE and SCHEMA-IDENTITY encoding instructions are
   RECOMMENDED for every ASN.1 module.

指示をコード化するTARGET-NAMESPACEとSCHEMA-IDENTITYはあらゆるASN.1モジュールのためのRECOMMENDEDです。

5.2.  Importing Namespaces

5.2. 名前空間をインポートします。

   An Assignment is referenced from an ASN.X module if its associated
   expanded name appears as a qualified name in the [normalized value]
   of an attribute item with the [local name] "type", "value", "class",
   "object", or "objectSet".  These references are categorized as direct
   references.  An Assignment or top-level component is also referenced
   from an ASN.X module if its expanded name appears as a qualified name
   in the [normalized value] of an attribute item with the [local name]
   "ref".  This reference is only categorized as direct if the ref
   attribute is not the result of the translation of a DefinedType
   subject to a TYPE-REF encoding instruction or a NamedType subject to
   an ATTRIBUTE-REF or ELEMENT-REF encoding instruction.

AssignmentはASN.Xモジュール関連拡張名前が適切な名前として[地方名]がある属性項目の[正常にされた値]が、「値、クラス」と「タイプする」という「オブジェクト」に現れるか、そして、"objectSet"から参照をつけられます。 これらの参照は直接的な言及として分類されます。 また、拡張名前が適切な名前として中に現れるならAssignmentかトップレベルコンポーネントがASN.Xモジュールから参照をつけられる、[値を正常にします] [地方名]「審判」がある属性項目について。 この参照は審判属性がTYPE-REFを条件としたDefinedTypeに関する翻訳が指示をコード化するATTRIBUTE-REFかELEMENT-REFを条件として指示かNamedTypeをコード化するという結果でない場合にだけ同じくらいダイレクトに分類されます。

      Aside: In the case of an indirect reference, an attribute item
      with the [local name] "embedded" and [normalized value] "true" or
      "1" will also be present.

傍らに: 間接的な言及に関するケース、[地方名]が「埋め込まれてい」て、[正常にされた値]が「本当」の属性項目または「また、1インチも存在するところ」で。

Legg                          Experimental                     [Page 12]

RFC 4912               Abstract Syntax Notation X              July 2007

[12ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   Definition (external module): An external module is any module other
   than the module being translated and the AdditionalBasicDefinitions
   module [RXER].

定義(外部のモジュール): 外部のモジュールはAdditionalBasicDefinitionsモジュール[RXER]以外のあらゆるモジュールです。

      Aside: The AdditionalBasicDefinitions module is always assumed to
      be imported, as are all the built-in types and object classes of
      ASN.1.

傍らに: いつもASN.1のすべての内蔵型とオブジェクトのクラスのようにAdditionalBasicDefinitionsモジュールがインポートされると思われます。

   An element item with the [local name] "import" SHALL be added to the
   [children] of the <asnx:module> element item for each external module
   containing Assignments or top-level components that are directly
   referenced from the ASN.X module.  An <import> element item MAY be
   added to the [children] of the <asnx:module> element item for any
   other external module.

[地方名]「輸入」SHALLが<asnxの[子供]に加えられている要素の品目: それぞれの外部のモジュールのためのAssignmentsを含むモジュール>要素の品目かASN.Xモジュールから直接参照をつけられるトップレベルコンポーネント。 <輸入>要素の品目は<asnxの[子供]に加えられるかもしれません: いかなる他の外部のモジュールのためのモジュール>要素の品目。

   An attribute item with the [local name] "name" SHOULD be added to the
   [attributes] of the <import> element item.  The [normalized value] of
   this attribute item is the modulereference in the ModuleIdentifier in
   the ModuleDefinition of the external module.

SHOULDという[地方名]「名前」が<輸入>要素の品目の[属性]に加えられている属性項目。 この属性項目の[正常にされた値]は外部のモジュールのModuleDefinitionのModuleIdentifierのmodulereferenceです。

   If the DefinitiveIdentifier in the ModuleIdentifier in the
   ModuleDefinition of the external module is not empty, then an
   attribute item with the [local name] "identifier" SHALL be added to
   the [attributes] of the <import> element item.  The
   [normalized value] of this attribute item is the RXER character data
   translation of the DefinitiveIdentifier.

外部のモジュールのModuleDefinitionのModuleIdentifierのDefinitiveIdentifierが空でないなら、そして、[地方名]「識別子」SHALLが<輸入>要素の品目の[属性]に加えられている状態で、属性項目です。 この属性項目の[正常にされた値]はDefinitiveIdentifierに関するRXERキャラクタデータ変換です。

   If the external module has a schema identity URI, then an attribute
   item with the [local name] "schemaIdentity" SHALL be added to the
   [attributes] of the <import> element item.  The [normalized value] of
   this attribute item is the schema identity URI of the external
   module.

外部のモジュールに図式アイデンティティURIがあるなら、そして、[地方名]"schemaIdentity"SHALLが<輸入>要素の品目の[属性]に加えられている状態で、属性項目です。 この属性項目の[正常にされた値]は外部のモジュールの図式アイデンティティURIです。

   If the target namespace of the external module is not absent, then an
   attribute item with the [local name] "namespace" SHALL be added to
   the [attributes] of the <import> element item.  The
   [normalized value] of this attribute item is the target namespace of
   the external module.

外部のモジュールの目標名前空間が欠けないなら、そして、[地方名]「名前空間」SHALLが<輸入>要素の品目の[属性]に加えられている状態で、属性項目です。 この属性項目の[正常にされた値]は外部のモジュールの目標名前空間です。

   An attribute item with the [local name] "schemaLocation" MAY be added
   to the [attributes] of the <import> element item.  The
   [normalized value] of this attribute item is a URI [URI] indicating
   the physical location of the ASN.X translation of the external
   module.

[地方名]"schemaLocation"がある属性項目は<輸入>要素の品目の[属性]に加えられるかもしれません。 この属性項目の[正常にされた値]は外部のモジュールに関するASN.X翻訳の物理的な位置を示すURI[URI]です。

   The <import> element items MUST follow an <annotation> element item
   (if present) and MUST precede any other element items in the
   [children] of the <asnx:module> element item.

<輸入>要素の品目は、<注釈>要素の品目(存在しているなら)に従わなければならなくて、<asnxの[子供]でいかなる他の要素の品目にも先行しなければなりません: モジュール>要素の品目。

Legg                          Experimental                     [Page 13]

RFC 4912               Abstract Syntax Notation X              July 2007

[13ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   Note that because of the way parameterized references are expanded in
   ASN.X (see Section 13), the modules in the Imports in the ModuleBody
   in the ModuleDefinition may not correspond exactly to the <import>
   element items.

道は参照をparameterizedしました。拡張コネはASN.Xです。それに注意する、(セクション13)を見てください、そして、ModuleDefinitionのModuleBodyのImportsのモジュールはちょうど<輸入>要素の品目と食い違ってもよいです。

5.3.  TypeAssignment Translation

5.3. TypeAssignment翻訳

   The translation of a TypeAssignment is an element item with the
   [local name] "namedType".  An attribute item with the [local name]
   "name" SHALL be added to the [attributes] of the <namedType> element
   item.  The [normalized value] of this attribute item is the
   typereference on the left-hand side of the assignment.

TypeAssignmentに関する翻訳は[地方名]"namedType"がある要素の品目です。 SHALLという[地方名]「名前」が<namedType>要素の品目の[属性]に加えられている属性項目。 この属性項目の[正常にされた値]は課題の左側の上のtypereferenceです。

   An element item with the [local name] "annotation" MAY be added to
   the [children] of the <namedType> element item.  The translation of
   the Type on the right-hand side of the assignment SHALL be added to
   the [children] or [attributes] of the <namedType> element item.

[地方名]「注釈」がある要素の品目は<namedType>要素の品目の[子供]に加えられるかもしれません。 右手におけるTypeに関する翻訳は課題SHALLに面があります。<namedType>要素の品目の[子供]か[属性]に加えられます。

   Example

      MyType ::= INTEGER

MyType:、:= 整数

      <namedType name="MyType" type="asnx:INTEGER"/>

<namedType名前="MyType"は=「asnx: 整数」/>をタイプします。

5.4.  ValueAssignment and XMLValueAssignment Translation

5.4. ValueAssignmentとXMLValueAssignment翻訳

   The translation of a ValueAssignment is an element item with the
   [local name] "namedValue".  An attribute item with the [local name]
   "name" SHALL be added to the [attributes] of the <namedValue> element
   item.  The [normalized value] of this attribute item is the
   valuereference on the left-hand side of the assignment.

ValueAssignmentに関する翻訳は[地方名]"namedValue"がある要素の品目です。 SHALLという[地方名]「名前」が<namedValue>要素の品目の[属性]に加えられている属性項目。 この属性項目の[正常にされた値]は課題の左側の上のvaluereferenceです。

   An element item with the [local name] "annotation" MAY be added to
   the [children] of the <namedValue> element item.  The translation of
   the Type on the left-hand side of the assignment SHALL be added to
   the [children] or [attributes] of the <namedValue> element item.  The
   translation of the Value on the right-hand side of the assignment
   SHALL be added to the [children] or [attributes] of the <namedValue>
   element item.

[地方名]「注釈」がある要素の品目は<namedValue>要素の品目の[子供]に加えられるかもしれません。 左手におけるTypeに関する翻訳は課題SHALLに面があります。<namedValue>要素の品目の[子供]か[属性]に加えられます。 右手におけるValueに関する翻訳は課題SHALLに面があります。<namedValue>要素の品目の[子供]か[属性]に加えられます。

   Example

      myValue INTEGER ::= 10

myValue整数:、:= 10

      <namedValue name="myValue" type="asnx:INTEGER" literalValue="10"/>

<namedValue名前="myValue"は=「asnx: 整数」literalValue=「10インチ/>」をタイプします。

Legg                          Experimental                     [Page 14]

RFC 4912               Abstract Syntax Notation X              July 2007

[14ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   An XMLValueAssignment is converted into the equivalent
   ValueAssignment and then translated as a ValueAssignment.  Note that
   the ASN.X representation for a Value is unrelated to XMLTypedValue.

XMLValueAssignmentは同等なValueAssignmentに変換されて、次に、ValueAssignmentとして翻訳されます。 ValueのASN.X表現がXMLTypedValueに関係ないことに注意してください。

5.5.  ValueSetTypeAssignment Translation

5.5. ValueSetTypeAssignment翻訳

   The translation of a ValueSetTypeAssignment is an element item with
   the [local name] "namedValueSet".  An attribute item with the
   [local name] "name" SHALL be added to the [attributes] of the
   <namedValueSet> element item.  The [normalized value] of this
   attribute item is the typereference on the left-hand side of the
   assignment.

ValueSetTypeAssignmentに関する翻訳は[地方名]"namedValueSet"がある要素の品目です。 SHALLという[地方名]「名前」が<namedValueSet>要素の品目の[属性]に加えられている属性項目。 この属性項目の[正常にされた値]は課題の左側の上のtypereferenceです。

   An element item with the [local name] "annotation" MAY be added to
   the [children] of the <namedValueSet> element item.  The translation
   of the Type on the left-hand side of the assignment SHALL be added to
   the [children] or [attributes] of the <namedValueSet> element item.
   The translation of the ValueSet on the right-hand side of the
   assignment SHALL be added to the [children] of the <namedValueSet>
   element item.

[地方名]「注釈」がある要素の品目は<namedValueSet>要素の品目の[子供]に加えられるかもしれません。 左手におけるTypeに関する翻訳は課題SHALLに面があります。<namedValueSet>要素の品目の[子供]か[属性]に加えられます。 右手におけるValueSetに関する翻訳は課題SHALLに面があります。<namedValueSet>要素の品目の[子供]に加えられます。

   Example

      MyValueSet INTEGER ::= { 10 }

MyValueSet整数:、:= { 10 }

      <namedValueSet name="MyValueSet" type="asnx:INTEGER">
       <valueSet>
        <literalValue>10</literalValue>
       </valueSet>
      </namedValueSet>

<namedValueSet名前="MyValueSet"が=をタイプする、「asnx: 整数「><valueSet><literalValue>10</literalValue></valueSet></namedValueSet>」

5.6.  ObjectClassAssignment Translation

5.6. ObjectClassAssignment翻訳

   The translation of an ObjectClassAssignment is an element item with
   the [local name] "namedClass".  An attribute item with the
   [local name] "name" SHALL be added to the [attributes] of the
   <namedClass> element item.  The [normalized value] of this attribute
   item is the objectclassreference on the left-hand side of the
   assignment.

ObjectClassAssignmentに関する翻訳は[地方名]「namedClass」がある要素の品目です。 SHALLという[地方名]「名前」が<namedClass>要素の品目の[属性]に加えられている属性項目。 この属性項目の[正常にされた値]は課題の左側の上のobjectclassreferenceです。

   An element item with the [local name] "annotation" MAY be added to
   the [children] of the <namedClass> element item.  The translation of
   the ObjectClass on the right-hand side of the assignment SHALL be
   added to the [children] or [attributes] of the <namedClass> element
   item.

[地方名]「注釈」がある要素の品目は<namedClass>要素の品目の[子供]に加えられるかもしれません。 右手におけるObjectClassに関する翻訳は課題SHALLに面があります。<namedClass>要素の品目の[子供]か[属性]に加えられます。

Legg                          Experimental                     [Page 15]

RFC 4912               Abstract Syntax Notation X              July 2007

[15ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   Example

      MY-CLASS ::= TYPE-IDENTIFIER

私、-属してください、:、:= タイプ識別子

      <namedClass name="MY-CLASS" class="asnx:TYPE-IDENTIFIER"/>

<namedClassが=を命名する、「私、-属してください、」 クラス=「asnx: タイプ識別子」/>。

5.7.  ObjectAssignment Translation

5.7. ObjectAssignment翻訳

   The translation of an ObjectAssignment is an element item with the
   [local name] "namedObject".  An attribute item with the [local name]
   "name" SHALL be added to the [attributes] of the <namedObject>
   element item.  The [normalized value] of this attribute item is the
   objectreference on the left-hand side of the assignment.

ObjectAssignmentに関する翻訳は[地方名]"namedObject"がある要素の品目です。 SHALLという[地方名]「名前」が<namedObject>要素の品目の[属性]に加えられている属性項目。 この属性項目の[正常にされた値]は課題の左側の上のobjectreferenceです。

   An element item with the [local name] "annotation" MAY be added to
   the [children] of the <namedObject> element item.  The translation of
   the DefinedObjectClass on the left-hand side of the assignment SHALL
   be added to the [children] or [attributes] of the <namedObject>
   element item.  The translation of the Object on the right-hand side
   of the assignment SHALL be added to the [children] or [attributes] of
   the <namedObject> element item.

[地方名]「注釈」がある要素の品目は<namedObject>要素の品目の[子供]に加えられるかもしれません。 左手におけるDefinedObjectClassに関する翻訳は課題SHALLに面があります。<namedObject>要素の品目の[子供]か[属性]に加えられます。 右手におけるObjectに関する翻訳は課題SHALLに面があります。<namedObject>要素の品目の[子供]か[属性]に加えられます。

   Example

      myObject TYPE-IDENTIFIER ::=
          { NULL IDENTIFIED BY { 1 3 14 3 2 26 } }

myObjectタイプ識別子:、:= ヌルが特定した、1 3、14、3 2、26

      <namedObject name="myObject" class="asnx:TYPE-IDENTIFIER">
       <object>
        <field name="id" literalValue="1.3.14.3.2.26"/>
        <field name="Type" type="asnx:NULL"/>
       </object>
      </namedObject>

「<namedObject名前="myObject"クラス=「asnx: TYPE-IDENTIFIER「><オブジェクト><フィールド名=」イド」literalValueは「0.26インチ/>の1.3.14.3.2<フィールド名=」タイプと等しく」タイプ=「asnx: NULL」/></オブジェクト></namedObject>。

5.8.  ObjectSetAssignment Translation

5.8. ObjectSetAssignment翻訳

   The translation of an ObjectSetAssignment is an element item with the
   [local name] "namedObjectSet".  An attribute item with the
   [local name] "name" SHALL be added to the [attributes] of the
   <namedObjectSet> element item.  The [normalized value] of this
   attribute item is the objectsetreference on the left-hand side of the
   assignment.

ObjectSetAssignmentに関する翻訳は[地方名]"namedObjectSet"がある要素の品目です。 SHALLという[地方名]「名前」が<namedObjectSet>要素の品目の[属性]に加えられている属性項目。 この属性項目の[正常にされた値]は課題の左側の上のobjectsetreferenceです。

   An element item with the [local name] "annotation" MAY be added to
   the [children] of the <namedObjectSet> element item.  The translation
   of the DefinedObjectClass on the left-hand side of the assignment
   SHALL be added to the [children] or [attributes] of the
   <namedObjectSet> element item.  The translation of the ObjectSet on

[地方名]「注釈」がある要素の品目は<namedObjectSet>要素の品目の[子供]に加えられるかもしれません。 左手におけるDefinedObjectClassに関する翻訳は課題SHALLに面があります。<namedObjectSet>要素の品目の[子供]か[属性]に加えられます。 ObjectSetに関する翻訳、オン

Legg                          Experimental                     [Page 16]

RFC 4912               Abstract Syntax Notation X              July 2007

[16ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   the right-hand side of the assignment SHALL be added to the
   [children] or [attributes] of the <namedObjectSet> element item.

右手は課題SHALLに面があります。<namedObjectSet>要素の品目の[子供]か[属性]に加えられます。

   Example

      MyObjectSet TYPE-IDENTIFIER ::= { myObject }

MyObjectSetタイプ識別子:、:= myObject

      <namedObjectSet name="MyObjectSet" class="asnx:TYPE-IDENTIFIER">
       <objectSet>
        <object ref="tns:myObject"/>
       </objectSet>
      </namedObjectSet>

<namedObjectSetが"MyObjectSet"のクラス=と=を命名する、「asnx: 「><objectSet><オブジェクト審判=「tns: myObject」/></objectSet></namedObjectSet>」というタイプ識別子

5.9.  ParameterizedAssignment Translation

5.9. ParameterizedAssignment翻訳

   The translation of an ASN.1 specification into ASN.X replaces any
   reference to a parameterized definition [X.683] with the definition
   expanded in-line.  Consequently, there is no direct translation for a
   ParameterizedAssignment, though its definition may come into play in
   the translation of references to the parameterized definition (see
   Section 13).

ASN.XへのASN.1仕様に関する翻訳はparameterized定義[X.683]のどんな参照にも定義の拡張インラインに取って代わります。 その結果、ParameterizedAssignmentのためのどんなダイレクト翻訳もありません、定義はparameterized定義の参照に関する翻訳でプレーに入るかもしれませんが(セクション13を見てください)。

6.  Translation of Types

6. タイプに関する翻訳

   The rules for translating the different varieties of Type are
   detailed in this section.

Typeの異なったバラエティーを翻訳するための規則はこのセクションで詳細です。

   Note that the notation of ASN.1 is ambiguous where a Type is both
   prefixed [X.680-1] (e.g., tagged) and constrained.  For example, the
   notation "[0] INTEGER (0..10)" could be interpreted as either a
   tagged ConstrainedType or a constrained TaggedType.  For the purposes
   of the translation into ASN.X, the constraint is assumed to have
   higher precedence than the prefix, so the above notation would be
   taken to be a tagged ConstrainedType.

ASN.1の記法がTypeがどこで前に置かれていて[X.680-1](例えば、タグ付けをされます)、抑制されるかがあいまいであることに注意してください。 例えば、タグ付けをされたConstrainedTypeか強制的なTaggedTypeのどちらかとして記法「[0]整数(0 .10)」を解釈できました。 ASN.Xへの翻訳の目的のために、規制には接頭語より高い先行があると思われて、タグ付けをされたConstrainedTypeになるように上の記法を取るでしょう。

6.1.  Identifier Replacement

6.1. 識別子交換

   Various RXER encoding instructions can be used to override an
   identifier in an ASN.1 specification with an NCName [XMLNS10].  The
   NCName is given preeminence in the ASN.X representation, and the
   identifier is not explicitly given if it is algorithmically related
   to the NCName.  The cases where an NCName overrides an identifier are
   covered individually in other parts of this specification and make
   use of the following definition.

NCName[XMLNS10]と共にASN.1仕様による識別子に優越するのに様々なRXERコード化指示を使用できます。 ASN.X表現における抜群をNCNameに与えます、そして、algorithmicallyにNCNameにそれに関連するなら、明らかに識別子は与えません。 NCNameが識別子に優越するケースは、この仕様の他の部分で個別にカバーされていて、以下の定義を利用します。

   Definition (reduction): The reduction of an NCName is the string of
   characters resulting from the following operations performed in order
   on the NCName:

定義(減少): NCNameの減少はNCNameで整然とした状態で実行された以下の操作から生じるキャラクタのストリングです:

Legg                          Experimental                     [Page 17]

RFC 4912               Abstract Syntax Notation X              July 2007

[17ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   (1) replace each full stop ('.', U+002E) and low line ('_', U+005F)
       character with a hyphen character ('-', U+002D),

(1) 各終止符を取り替えてください、('、'、U+002のE)と安値はハイフンキャラクタ('--'、U+002D)でキャラクタを裏打ちします('_'、U+005F)。

   (2) remove every character except Latin letters (U+0041-U+005A,
       U+0061-U+007A), decimal digits (U+0030-U+0039), and hyphens
       (U+002D),

(2) ラテン語の手紙(U+0041U+005A、U+0061U+007A)、10進数字(U+0030U+0039)、およびハイフン(U+002D)以外のすべてのキャラクタを外してください。

   (3) remove leading and trailing hyphen characters,

(3) 主で引きずっているハイフンキャラクタを外してください。

   (4) replace sequences of two or more hyphen characters with a single
       hyphen, and

そして(4) 2つ以上のハイフンキャラクタの系列をただ一つのハイフンに取り替えてください。

   (5) convert the first character to lowercase if it is an uppercase
       letter.

(5) それが大文字であるなら小文字で印刷する最初のキャラクタを変換してください。

      Aside: If the reduction of an NCName is not the same as the
      identifier that the NCName replaces, then the identifier will be
      explicitly given in the translation into ASN.X.

傍らに: NCNameの減少がNCNameが置き換える識別子と同じでないなら、ASN.Xへの翻訳で明らかに識別子を与えるでしょう。

6.2.  DefinedType Translation

6.2. DefinedType翻訳

   If a Type is a DefinedType in a ReferencedType, then the translation
   of the Type is the translation of the DefinedType.

TypeがReferencedTypeのDefinedTypeであるなら、Typeに関する翻訳はDefinedTypeに関する翻訳です。

   If a DefinedType is not a ParameterizedType,
   ParameterizedValueSetType, or DummyReference and is not subject to a
   TYPE-REF or REF-AS-TYPE encoding instruction, then the translation of
   the DefinedType is either the attribute form translation of a type
   reference, or the element form translation of a type reference.

DefinedTypeはParameterizedTypeでない、ParameterizedValueSetTypeでない、またはDummyReferenceでなく、指示をコード化するTYPE-REFかREF-AS-TYPEを受けることがないなら、DefinedTypeに関する翻訳は、タイプ参照に関する属性フォーム翻訳かタイプ参照に関する要素フォーム翻訳のどちらかです。

   The attribute form translation of a type reference is an attribute
   item with the [local name] "type".  The [normalized value] of this
   attribute item is a qualified name for the expanded name of the
   referenced type definition (see Section 5.1).  The attribute form
   translation SHALL NOT be used if this expanded name is not distinct
   with respect to the current module and the modules referenced by its
   <import> element items (see Section 5.1).

タイプ参照に関する属性フォーム翻訳は[地方名]「タイプ」がある属性項目です。 この属性項目の[正常にされた値]は被参照型定義の拡張名前のための適切な名前(セクション5.1を見る)です。 属性は翻訳SHALL NOTを形成します。この拡張名前が<輸入>要素の品目によって参照をつけられる現在のモジュールとモジュールに関して異ならないなら(セクション5.1を見てください)、使用されてください。

   The element form translation of a type reference is an element item
   with the [local name] "type".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <type> element
   item.  An attribute item with the [local name] "ref" SHALL be added
   to the [attributes] of the <type> element item.  The
   [normalized value] of this attribute item is a qualified name for the
   expanded name of the referenced type definition.  If this expanded
   name is not distinct with respect to the current module and the
   modules referenced by its <import> element items, then an attribute
   item with the [local name] "context" SHALL be added to the

タイプ参照に関する要素フォーム翻訳は[地方名]「タイプ」がある要素の品目です。 [地方名]「注釈」がある要素の品目は<タイプ>要素の品目の[子供]に加えられるかもしれません。 [地方名]「審判」SHALLが<タイプ>要素の品目の[属性]に加えられている属性項目。 この属性項目の[正常にされた値]は被参照型定義の拡張名前のための適切な名前です。 これが広がったなら、名前は<輸入>要素の品目によって参照をつけられる現在のモジュールとモジュールに関して異なっていなくて、その時は[地方名]「文脈」SHALLが加えられている属性項目です。

Legg                          Experimental                     [Page 18]

RFC 4912               Abstract Syntax Notation X              July 2007

[18ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   [attributes] of the <type> element item; otherwise, if the module
   containing the referenced type definition has a schema identity URI,
   then an attribute item with the [local name] "context" MAY be added
   to the [attributes] of the <type> element item.  The
   [normalized value] of this attribute item is the schema identity URI
   of the module containing the type definition referenced by the
   DefinedType.

<の[属性]は>要素の品目をタイプします。 さもなければ、被参照型定義を含むモジュールが図式アイデンティティURIを持っているなら、[地方名]「文脈」がある属性項目は<タイプ>要素の品目の[属性]に加えられるかもしれません。 この属性項目の[正常にされた値]はDefinedTypeによって参照をつけられた型定義を含むモジュールの図式アイデンティティURIです。

      Aside: If a reference name is not distinct, then the module
      containing the referenced definition must have a schema identity
      URI (see Section 5.1).

傍らに: 参照名が異ならないなら、参照をつけられた定義を含むモジュールは図式アイデンティティURIを持たなければなりません(セクション5.1を見てください)。

   An attribute item with the [local name] "embedded" and
   [normalized value] "false" or "0" MAY be added to the [attributes] of
   the <type> element item.

[地方名]が「埋め込まれてい」て、[正常にされた値]が「誤っている」属性項目か「0インチは<タイプ>要素の品目の[属性]に加えられるかもしれません」。

   The translation of the DefinedType is the same whether the type
   definition is referenced by a typereference or an
   ExternalTypeReference.

型定義がtypereferenceかExternalTypeReferenceによって参照をつけられるか否かに関係なく、DefinedTypeの翻訳は同じです。

   If a DefinedType is subject to a TYPE-REF encoding instruction, then
   the translation of the DefinedType is an element item with the
   [local name] "type".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <type> element
   item.  An attribute item with the [local name] "ref" SHALL be added
   to the [attributes] of the <type> element item.  The
   [normalized value] of this attribute item is the RXER character data
   translation of the QNameValue in the TYPE-REF encoding instruction.
   If a ContextParameter is present in the RefParameters in the TYPE-REF
   encoding instruction, then an attribute item with the [local name]
   "context" SHALL be added to the [attributes] of the <type> element
   item.  The [normalized value] of this attribute item is the string
   value of the AnyURIValue in the ContextParameter.  An attribute item
   with the [local name] "embedded" and [normalized value] "true" or "1"
   SHALL be added to the [attributes] of the <type> element item.

DefinedTypeは指示をコード化するTYPE-REFを受けることがあるなら、DefinedTypeに関する翻訳が[地方名]「タイプ」がある要素の品目です。 [地方名]「注釈」がある要素の品目は<タイプ>要素の品目の[子供]に加えられるかもしれません。 [地方名]「審判」SHALLが<タイプ>要素の品目の[属性]に加えられている属性項目。 この属性項目の[正常にされた値]は指示をコード化するTYPE-REFのQNameValueに関するRXERキャラクタデータ変換です。 ContextParameterが指示をコード化するTYPE-REFのRefParametersに存在しているなら、そして、[地方名]「文脈」SHALLが<タイプ>要素の品目の[属性]に加えられている状態で、属性項目です。 この属性項目の[正常にされた値]はContextParameterのAnyURIValueのストリング値です。 「本当に」か「1インチは<タイプ>要素の品目の[属性]に加えられるものとする」という「埋め込[ローカル名義の]」と[正常にされた値]がある属性項目。

      Aside: The embedded attribute item indicates whether a type is
      directly referenced as a DefinedType or indirectly referenced
      through a TYPE-REF encoding instruction.  An ASN.1 type can be
      referenced either way.  Type definitions in other schema languages
      cannot be directly referenced.

傍らに: 埋め込まれた属性項目は、タイプがDefinedTypeとして直接参照をつけられるか、または指示をコード化するTYPE-REFを通して間接的に参照をつけられるかを示します。 いずれにせよASN.1タイプに参照をつけることができます。 直接他のスキーマ言語への型定義に参照をつけることができません。

   If a DefinedType is subject to a REF-AS-TYPE encoding instruction,
   then the translation of the DefinedType is an element item with the
   [local name] "type".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <type> element
   item.  An attribute item with the [local name] "elementType" SHALL be
   added to the [attributes] of the <type> element item.  The

DefinedTypeは指示をコード化するREF-AS-TYPEを受けることがあるなら、DefinedTypeに関する翻訳が[地方名]「タイプ」がある要素の品目です。 [地方名]「注釈」がある要素の品目は<タイプ>要素の品目の[子供]に加えられるかもしれません。 [地方名]"elementType"SHALLが<タイプ>要素の品目の[属性]に加えられている属性項目。 The

Legg                          Experimental                     [Page 19]

RFC 4912               Abstract Syntax Notation X              July 2007

[19ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   [normalized value] of this attribute item is the RXER character data
   translation of the NameValue in the REF-AS-TYPE encoding instruction.
   If a ContextParameter is present in the RefParameters in the
   REF-AS-TYPE encoding instruction, then an attribute item with the
   [local name] "context" SHALL be added to the [attributes] of the
   <type> element item.  The [normalized value] of this attribute item
   is the string value of the AnyURIValue in the ContextParameter.

この属性項目の[正常にされた値]は指示をコード化するREF-AS-TYPEのNameValueに関するRXERキャラクタデータ変換です。 ContextParameterが指示をコード化するREF-AS-TYPEのRefParametersに存在しているなら、そして、[地方名]「文脈」SHALLが<タイプ>要素の品目の[属性]に加えられている状態で、属性項目です。 この属性項目の[正常にされた値]はContextParameterのAnyURIValueのストリング値です。

   Example

      CHOICE {
          one    Foo,
          two    [RXER:TYPE-REF
                     { namespace-name "http://www.example.com/PO1",
                       local-name "PurchaseOrderType" }]
                 Markup,
          three  [RXER:REF-AS-TYPE "product"
                     CONTEXT "http://www.example.com/inventory"]
                 Markup
      }

選択1Foo、2[RXER: TYPE-REFの名前空間名の" http://www.example.com/PO1 "の、そして、ローカルの名前の"PurchaseOrderType"]マークアップ、3[RXER: タイプとしての審判「製品」文脈" http://www.example.com/inventory "]マークアップ

      <type>
       <choice>
        <element name="one" type="tns:Foo"/>
        <element name="two" xmlns:po="http://www.example.com/PO1">
         <type ref="po:PurchaseOrderType" embedded="true"/>
        </element>
        <element name="three">
         <type elementType="product"
               context="http://www.example.com/inventory"/>
        </element>
       </choice>
      </type>

<type> <choice> <element name="one" type="tns:Foo"/> <element name="two" xmlns:po="http://www.example.com/PO1"> <type ref="po:PurchaseOrderType" embedded="true"/> </element> <element name="three"> <type elementType="product" context="http://www.example.com/inventory"/> </element> </choice> </type>

   If a DefinedType is a DummyReference, ParameterizedType, or
   ParameterizedValueSetType, then the translation of the Type is the
   translation of that DummyReference, ParameterizedType, or
   ParameterizedValueSetType (see Section 13).

If a DefinedType is a DummyReference, ParameterizedType, or ParameterizedValueSetType, then the translation of the Type is the translation of that DummyReference, ParameterizedType, or ParameterizedValueSetType (see Section 13).

6.3.  Translation of Built-in Types

6.3. Translation of Built-in Types

   If a Type is a BuiltinType or ReferencedType that is one of the
   productions in Table 1 in Section 5 of the specification for RXER
   [RXER], then the translation of the Type is either the attribute form
   or element form translation of that type.

If a Type is a BuiltinType or ReferencedType that is one of the productions in Table 1 in Section 5 of the specification for RXER [RXER], then the translation of the Type is either the attribute form or element form translation of that type.

Legg                          Experimental                     [Page 20]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 20] RFC 4912 Abstract Syntax Notation X July 2007

   The attribute form translation of a Type that is a BuiltinType or
   ReferencedType that is one of the productions in Table 1 is an
   attribute item with the [local name] "type".  The [normalized value]
   of this attribute item is a qualified name for the expanded name of
   the built-in type (see Section 5 of the specification for RXER
   [RXER]).

The attribute form translation of a Type that is a BuiltinType or ReferencedType that is one of the productions in Table 1 is an attribute item with the [local name] "type". The [normalized value] of this attribute item is a qualified name for the expanded name of the built-in type (see Section 5 of the specification for RXER [RXER]).

   The element form translation of a Type that is a BuiltinType or
   ReferencedType that is one of the productions in Table 1 is an
   element item with the [local name] "type".  An element item with the
   [local name] "annotation" MAY be added to the [children] of the
   <type> element item.  An attribute item with the [local name] "ref"
   SHALL be added to the [attributes] of the <type> element item.  The
   [normalized value] of this attribute item is a qualified name for the
   expanded name of the built-in type.

The element form translation of a Type that is a BuiltinType or ReferencedType that is one of the productions in Table 1 is an element item with the [local name] "type". An element item with the [local name] "annotation" MAY be added to the [children] of the <type> element item. An attribute item with the [local name] "ref" SHALL be added to the [attributes] of the <type> element item. The [normalized value] of this attribute item is a qualified name for the expanded name of the built-in type.

   Example

Example

      BOOLEAN

BOOLEAN

      <type ref="asnx:BOOLEAN"/>

<type ref="asnx:BOOLEAN"/>

   Usually the translator is free to choose either the attribute form or
   element form translation for a Type; however, in some contexts
   attribute forms for a Type are explicitly disallowed.

Usually the translator is free to choose either the attribute form or element form translation for a Type; however, in some contexts attribute forms for a Type are explicitly disallowed.

6.4.  BitStringType Translation

6.4. BitStringType Translation

   The translation of a BitStringType with a NamedBitList is an element
   item with the [local name] "type".  An element item with the
   [local name] "annotation" MAY be added to the [children] of the
   <type> element item.  An element item with the [local name]
   "namedBitList" SHALL be appended to the [children] of the <type>
   element item.  The translation of each NamedBit in the NamedBitList
   SHALL be appended to the [children] of the <namedBitList> element
   item.

The translation of a BitStringType with a NamedBitList is an element item with the [local name] "type". An element item with the [local name] "annotation" MAY be added to the [children] of the <type> element item. An element item with the [local name] "namedBitList" SHALL be appended to the [children] of the <type> element item. The translation of each NamedBit in the NamedBitList SHALL be appended to the [children] of the <namedBitList> element item.

   The translation of a NamedBit is an element item with the
   [local name] "namedBit".  An attribute item with the [local name]
   "name" SHALL be added to the [attributes] of the <namedBit> element
   item.  If the BitStringType is subject to a VALUES encoding
   instruction, then the [normalized value] of this attribute item is
   the replacement name [RXEREI] for the identifier in the NamedBit;
   otherwise, it is the identifier in the NamedBit.  If the
   BitStringType is subject to a VALUES encoding instruction and the
   reduction of the replacement name (see Section 6.1) is not the same
   as the identifier, then an attribute item with the [local name]
   "identifier" SHALL be added to the [attributes] of the <namedBit>

The translation of a NamedBit is an element item with the [local name] "namedBit". An attribute item with the [local name] "name" SHALL be added to the [attributes] of the <namedBit> element item. If the BitStringType is subject to a VALUES encoding instruction, then the [normalized value] of this attribute item is the replacement name [RXEREI] for the identifier in the NamedBit; otherwise, it is the identifier in the NamedBit. If the BitStringType is subject to a VALUES encoding instruction and the reduction of the replacement name (see Section 6.1) is not the same as the identifier, then an attribute item with the [local name] "identifier" SHALL be added to the [attributes] of the <namedBit>

Legg                          Experimental                     [Page 21]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 21] RFC 4912 Abstract Syntax Notation X July 2007

   element item; otherwise, an attribute item with the [local name]
   "identifier" MAY be added to the [attributes] of the <namedBit>
   element item.  The [normalized value] of this attribute item is the
   identifier in the NamedBit.  An attribute item with the [local name]
   "bit" SHALL be added to the [attributes] of the <namedBit> element
   item.  The [normalized value] of this attribute item is the digit
   string representation of the integer value of the number or
   DefinedValue in the NamedBit.

element item; otherwise, an attribute item with the [local name] "identifier" MAY be added to the [attributes] of the <namedBit> element item. The [normalized value] of this attribute item is the identifier in the NamedBit. An attribute item with the [local name] "bit" SHALL be added to the [attributes] of the <namedBit> element item. The [normalized value] of this attribute item is the digit string representation of the integer value of the number or DefinedValue in the NamedBit.

   Examples

Examples

      BIT STRING { zero(0), one(1), two(2) }

BIT STRING { zero(0), one(1), two(2) }

      <type>
       <namedBitList>
        <namedBit name="zero" bit="0"/>
        <namedBit name="one" bit="1"/>
        <namedBit name="two" bit="2"/>
       </namedBitList>
      </type>

<type> <namedBitList> <namedBit name="zero" bit="0"/> <namedBit name="one" bit="1"/> <namedBit name="two" bit="2"/> </namedBitList> </type>

      [RXER:VALUES ALL CAPITALIZED, wednesday AS "Midweek"]
          BIT STRING {
              monday(0), tuesday(1), wednesday(2),
              thursday(3), friday(4)
          }

[RXER:VALUES ALL CAPITALIZED, wednesday AS "Midweek"] BIT STRING { monday(0), tuesday(1), wednesday(2), thursday(3), friday(4) }

      <type>
       <namedBitList>
        <namedBit name="Monday" bit="0"/>
        <namedBit name="Tuesday" bit="1"/>
        <namedBit name="Midweek" identifier="wednesday" bit="2"/>
        <namedBit name="Thursday" bit="3"/>
        <namedBit name="Friday" bit="4"/>
       </namedBitList>
      </type>

<type> <namedBitList> <namedBit name="Monday" bit="0"/> <namedBit name="Tuesday" bit="1"/> <namedBit name="Midweek" identifier="wednesday" bit="2"/> <namedBit name="Thursday" bit="3"/> <namedBit name="Friday" bit="4"/> </namedBitList> </type>

6.5.  IntegerType Translation

6.5. IntegerType Translation

   The translation of an IntegerType with a NamedNumberList is an
   element item with the [local name] "type".  An element item with the
   [local name] "annotation" MAY be added to the [children] of the
   <type> element item.  An element item with the [local name]
   "namedNumberList" SHALL be appended to the [children] of the <type>
   element item.  The translation of each NamedNumber in the
   NamedNumberList SHALL be appended to the [children] of the
   <namedNumberList> element item.

The translation of an IntegerType with a NamedNumberList is an element item with the [local name] "type". An element item with the [local name] "annotation" MAY be added to the [children] of the <type> element item. An element item with the [local name] "namedNumberList" SHALL be appended to the [children] of the <type> element item. The translation of each NamedNumber in the NamedNumberList SHALL be appended to the [children] of the <namedNumberList> element item.

Legg                          Experimental                     [Page 22]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 22] RFC 4912 Abstract Syntax Notation X July 2007

   The translation of a NamedNumber is an element item with the
   [local name] "namedNumber".  An attribute item with the [local name]
   "name" SHALL be added to the [attributes] of the <namedNumber>
   element item.  If the IntegerType is subject to a VALUES encoding
   instruction, then the [normalized value] of this attribute item is
   the replacement name [RXEREI] for the identifier in the NamedNumber;
   otherwise, it is the identifier in the NamedNumber.  If the
   IntegerType is subject to a VALUES encoding instruction and the
   reduction of the replacement name (see Section 6.1) is not the same
   as the identifier, then an attribute item with the [local name]
   "identifier" SHALL be added to the [attributes] of the <namedNumber>
   element item; otherwise, an attribute item with the [local name]
   "identifier" MAY be added to the [attributes] of the <namedNumber>
   element item.  The [normalized value] of this attribute item is the
   identifier in the NamedNumber.  An attribute item with the
   [local name] "number" SHALL be added to the [attributes] of the
   <namedNumber> element item.  The [normalized value] of this attribute
   item is the digit string representation of the integer value of the
   SignedNumber or DefinedValue in the NamedNumber.

The translation of a NamedNumber is an element item with the [local name] "namedNumber". An attribute item with the [local name] "name" SHALL be added to the [attributes] of the <namedNumber> element item. If the IntegerType is subject to a VALUES encoding instruction, then the [normalized value] of this attribute item is the replacement name [RXEREI] for the identifier in the NamedNumber; otherwise, it is the identifier in the NamedNumber. If the IntegerType is subject to a VALUES encoding instruction and the reduction of the replacement name (see Section 6.1) is not the same as the identifier, then an attribute item with the [local name] "identifier" SHALL be added to the [attributes] of the <namedNumber> element item; otherwise, an attribute item with the [local name] "identifier" MAY be added to the [attributes] of the <namedNumber> element item. The [normalized value] of this attribute item is the identifier in the NamedNumber. An attribute item with the [local name] "number" SHALL be added to the [attributes] of the <namedNumber> element item. The [normalized value] of this attribute item is the digit string representation of the integer value of the SignedNumber or DefinedValue in the NamedNumber.

   Examples

Examples

      INTEGER { nothing(0), a-little(1), a-lot(100) }

INTEGER { nothing(0), a-little(1), a-lot(100) }

      <type>
       <namedNumberList>
        <namedNumber name="nothing" number="0"/>
        <namedNumber name="a-little" number="1"/>
        <namedNumber name="a-lot" number="100"/>
       </namedNumberList>
      </type>

<type> <namedNumberList> <namedNumber name="nothing" number="0"/> <namedNumber name="a-little" number="1"/> <namedNumber name="a-lot" number="100"/> </namedNumberList> </type>

      [RXER:VALUES ALL CAPITALIZED, very-high AS "DANGEROUS"]
          INTEGER { low(25), medium(50), high(75), very-high(100) }

[RXER:VALUES ALL CAPITALIZED, very-high AS "DANGEROUS"] INTEGER { low(25), medium(50), high(75), very-high(100) }

      <type>
       <namedNumberList>
        <namedNumber name="Low" number="25"/>
        <namedNumber name="Medium" number="50"/>
        <namedNumber name="High" number="75"/>
        <namedNumber name="DANGEROUS" identifier="very-high"
                     number="100"/>
       </namedNumberList>
      </type>

<type> <namedNumberList> <namedNumber name="Low" number="25"/> <namedNumber name="Medium" number="50"/> <namedNumber name="High" number="75"/> <namedNumber name="DANGEROUS" identifier="very-high" number="100"/> </namedNumberList> </type>

Legg                          Experimental                     [Page 23]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 23] RFC 4912 Abstract Syntax Notation X July 2007

6.6.  EnumeratedType Translation

6.6. EnumeratedType Translation

   The translation of an EnumeratedType is an element item with the
   [local name] "type".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <type> element
   item.  An element item with the [local name] "enumerated" SHALL be
   appended to the [children] of the <type> element item.  The
   translation of each EnumerationItem nested in the RootEnumeration in
   the Enumerations instance in the EnumeratedType SHALL be appended to
   the [children] of the <enumerated> element item.

The translation of an EnumeratedType is an element item with the [local name] "type". An element item with the [local name] "annotation" MAY be added to the [children] of the <type> element item. An element item with the [local name] "enumerated" SHALL be appended to the [children] of the <type> element item. The translation of each EnumerationItem nested in the RootEnumeration in the Enumerations instance in the EnumeratedType SHALL be appended to the [children] of the <enumerated> element item.

   If an ellipsis ("...") is present in the Enumerations instance, then
   an element item with the [local name] "extension" SHALL be appended
   to the [children] of the <enumerated> element item and the
   translation of the ExceptionSpec (possibly empty) SHALL be added to
   the [children] of the <extension> element item.  If an
   AdditionalEnumeration is present in the Enumerations instance, then
   the translation of each EnumerationItem nested in the
   AdditionalEnumeration SHALL be appended to the [children] of the
   <extension> element item.

If an ellipsis ("...") is present in the Enumerations instance, then an element item with the [local name] "extension" SHALL be appended to the [children] of the <enumerated> element item and the translation of the ExceptionSpec (possibly empty) SHALL be added to the [children] of the <extension> element item. If an AdditionalEnumeration is present in the Enumerations instance, then the translation of each EnumerationItem nested in the AdditionalEnumeration SHALL be appended to the [children] of the <extension> element item.

   The translation of an EnumerationItem is an element item with the
   [local name] "enumeration".

The translation of an EnumerationItem is an element item with the [local name] "enumeration".

   If the EnumerationItem is of the "identifier" form, then an attribute
   item with the [local name] "name" SHALL be added to the [attributes]
   of the <enumeration> element item.  If the EnumeratedType is subject
   to a VALUES encoding instruction, then the [normalized value] of this
   attribute item is the replacement name [RXEREI] for the identifier;
   otherwise, it is the identifier.  If the EnumeratedType is subject to
   a VALUES encoding instruction and the reduction of the replacement
   name (see Section 6.1) is not the same as the identifier, then an
   attribute item with the [local name] "identifier" SHALL be added to
   the [attributes] of the <enumeration> element item; otherwise, an
   attribute item with the [local name] "identifier" MAY be added to the
   [attributes] of the <enumeration> element item.  The
   [normalized value] of this attribute item is the identifier.

If the EnumerationItem is of the "identifier" form, then an attribute item with the [local name] "name" SHALL be added to the [attributes] of the <enumeration> element item. If the EnumeratedType is subject to a VALUES encoding instruction, then the [normalized value] of this attribute item is the replacement name [RXEREI] for the identifier; otherwise, it is the identifier. If the EnumeratedType is subject to a VALUES encoding instruction and the reduction of the replacement name (see Section 6.1) is not the same as the identifier, then an attribute item with the [local name] "identifier" SHALL be added to the [attributes] of the <enumeration> element item; otherwise, an attribute item with the [local name] "identifier" MAY be added to the [attributes] of the <enumeration> element item. The [normalized value] of this attribute item is the identifier.

   If the EnumerationItem is of the "NamedNumber" form, then an
   attribute item with the [local name] "name" SHALL be added to the
   [attributes] of the <enumeration> element item.  If the
   EnumeratedType is subject to a VALUES encoding instruction, then the
   [normalized value] of this attribute item is the replacement name
   [RXEREI] for the identifier in the NamedNumber; otherwise, it is the
   identifier in the NamedNumber.  If the EnumeratedType is subject to a
   VALUES encoding instruction and the reduction of the replacement name
   is not the same as the identifier, then an attribute item with the
   [local name] "identifier" SHALL be added to the [attributes] of the

If the EnumerationItem is of the "NamedNumber" form, then an attribute item with the [local name] "name" SHALL be added to the [attributes] of the <enumeration> element item. If the EnumeratedType is subject to a VALUES encoding instruction, then the [normalized value] of this attribute item is the replacement name [RXEREI] for the identifier in the NamedNumber; otherwise, it is the identifier in the NamedNumber. If the EnumeratedType is subject to a VALUES encoding instruction and the reduction of the replacement name is not the same as the identifier, then an attribute item with the [local name] "identifier" SHALL be added to the [attributes] of the

Legg                          Experimental                     [Page 24]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 24] RFC 4912 Abstract Syntax Notation X July 2007

   <enumeration> element item; otherwise, an attribute item with the
   [local name] "identifier" MAY be added to the [attributes] of the
   <enumeration> element item.  The [normalized value] of this attribute
   item is the identifier in the NamedNumber.  An attribute item with
   the [local name] "number" SHALL be added to the [attributes] of the
   <enumeration> element item.  The [normalized value] of this attribute
   item is the digit string representation of the integer value of the
   SignedNumber or DefinedValue in the NamedNumber.

<enumeration> element item; otherwise, an attribute item with the [local name] "identifier" MAY be added to the [attributes] of the <enumeration> element item. The [normalized value] of this attribute item is the identifier in the NamedNumber. An attribute item with the [local name] "number" SHALL be added to the [attributes] of the <enumeration> element item. The [normalized value] of this attribute item is the digit string representation of the integer value of the SignedNumber or DefinedValue in the NamedNumber.

   Examples

Examples

      ENUMERATED { red(0), green(1), ..., blue(2) }

ENUMERATED { red(0), green(1), ..., blue(2) }

      <type>
       <enumerated>
        <enumeration name="red" number="0"/>
        <enumeration name="green" number="1"/>
        <extension>
         <enumeration name="blue" number="2"/>
        </extension>
       </enumerated>
      </type>

<type> <enumerated> <enumeration name="red" number="0"/> <enumeration name="green" number="1"/> <extension> <enumeration name="blue" number="2"/> </extension> </enumerated> </type>

      [RXER:VALUES ALL CAPITALIZED, red AS "Crimson"]
          ENUMERATED { red, yellow, green, blue }

[RXER:VALUES ALL CAPITALIZED, red AS "Crimson"] ENUMERATED { red, yellow, green, blue }

      <type>
       <enumerated>
        <enumeration name="Crimson" identifier="red"/>
        <enumeration name="Yellow"/>
        <enumeration name="Green"/>
        <enumeration name="Blue"/>
       </enumerated>
      </type>

<type> <enumerated> <enumeration name="Crimson" identifier="red"/> <enumeration name="Yellow"/> <enumeration name="Green"/> <enumeration name="Blue"/> </enumerated> </type>

6.7.  PrefixedType Translation

6.7. PrefixedType Translation

   The translation of a PrefixedType [X.680-1] that is a TaggedType is
   either the short form translation (Section 6.7.1) or long form
   translation (Section 6.7.2) of the TaggedType.

The translation of a PrefixedType [X.680-1] that is a TaggedType is either the short form translation (Section 6.7.1) or long form translation (Section 6.7.2) of the TaggedType.

      Aside: The short form translation is provided because TaggedType
      notation is heavily used in existing ASN.1 specifications.  The
      long form translation has the same structure as the translation of
      an EncodingPrefixedType and can be simplified where there is a
      series of nested PrefixedType instances.

Aside: The short form translation is provided because TaggedType notation is heavily used in existing ASN.1 specifications. The long form translation has the same structure as the translation of an EncodingPrefixedType and can be simplified where there is a series of nested PrefixedType instances.

Legg                          Experimental                     [Page 25]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 25] RFC 4912 Abstract Syntax Notation X July 2007

   If a PrefixedType is an EncodingPrefixedType and the
   EncodingReference is RXER, or the EncodingReference is empty and the
   default encoding reference [X.680-1] for the module is RXER, then the
   translation of the PrefixedType is the translation of the Type in the
   EncodingPrefixedType.

If a PrefixedType is an EncodingPrefixedType and the EncodingReference is RXER, or the EncodingReference is empty and the default encoding reference [X.680-1] for the module is RXER, then the translation of the PrefixedType is the translation of the Type in the EncodingPrefixedType.

      Aside: This is not suggesting that RXER encoding instructions are
      ignored.  Encoding instructions for RXER are not explicitly
      represented in ASN.X, but rather affect how an ASN.1 module is
      translated into an ASN.X module (since the content of an ASN.X
      module is also the RXER encoding of an abstract value of the
      ModuleDefinition ASN.1 type in Appendix A).  The individual
      effects of RXER encoding instructions on the translation are
      addressed in other parts of this specification.  Encoding
      instructions for other encoding rules have explicit
      representations in ASN.X.

Aside: This is not suggesting that RXER encoding instructions are ignored. Encoding instructions for RXER are not explicitly represented in ASN.X, but rather affect how an ASN.1 module is translated into an ASN.X module (since the content of an ASN.X module is also the RXER encoding of an abstract value of the ModuleDefinition ASN.1 type in Appendix A). The individual effects of RXER encoding instructions on the translation are addressed in other parts of this specification. Encoding instructions for other encoding rules have explicit representations in ASN.X.

   If a PrefixedType is an EncodingPrefixedType and the
   EncodingReference is not RXER, or the EncodingReference is empty and
   the default encoding reference for the module is not RXER, then the
   translation of the PrefixedType is an element item with the
   [local name] "prefixed".  The translation of the EncodingPrefix in
   the EncodingPrefixedType SHALL be added to the [children] of the
   <prefixed> element item.

If a PrefixedType is an EncodingPrefixedType and the EncodingReference is not RXER, or the EncodingReference is empty and the default encoding reference for the module is not RXER, then the translation of the PrefixedType is an element item with the [local name] "prefixed". The translation of the EncodingPrefix in the EncodingPrefixedType SHALL be added to the [children] of the <prefixed> element item.

   If the EncodingReference of an EncodingPrefix is not empty, then the
   translation of the EncodingPrefix is an element item with the
   encodingreference in the EncodingReference as the [local name].  The
   translation of the EncodingInstruction in the EncodingPrefix SHALL be
   added to the [children] of this element item.

If the EncodingReference of an EncodingPrefix is not empty, then the translation of the EncodingPrefix is an element item with the encodingreference in the EncodingReference as the [local name]. The translation of the EncodingInstruction in the EncodingPrefix SHALL be added to the [children] of this element item.

   If the EncodingReference of an EncodingPrefix is empty, then the
   translation of the EncodingPrefix is an element item with the default
   encoding reference for the module as the [local name].  The
   translation of the EncodingInstruction in the EncodingPrefix SHALL be
   added to the [children] of this element item.

If the EncodingReference of an EncodingPrefix is empty, then the translation of the EncodingPrefix is an element item with the default encoding reference for the module as the [local name]. The translation of the EncodingInstruction in the EncodingPrefix SHALL be added to the [children] of this element item.

   The EncodingInstruction notation is different for each set of
   encoding instructions, and their translations into ASN.X are
   specified in separate documents [GSEREIT][XEREIT].  At the time of
   writing, only three sets of encoding instructions have been defined
   (for RXER [RXEREI], GSER [GSEREI], and EXTENDED-XER [X.693-1]).

The EncodingInstruction notation is different for each set of encoding instructions, and their translations into ASN.X are specified in separate documents [GSEREIT][XEREIT]. At the time of writing, only three sets of encoding instructions have been defined (for RXER [RXEREI], GSER [GSEREI], and EXTENDED-XER [X.693-1]).

   If the child <type> element item of a <prefixed> element item has no
   attribute items and has a child <prefixed> element item, then that
   child <type> element item MAY be replaced by the [children] and
   [attributes] of the inner <prefixed> element item.  Note that the
   long form translation of a TaggedType is also eligible for this

If the child <type> element item of a <prefixed> element item has no attribute items and has a child <prefixed> element item, then that child <type> element item MAY be replaced by the [children] and [attributes] of the inner <prefixed> element item. Note that the long form translation of a TaggedType is also eligible for this

Legg                          Experimental                     [Page 26]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 26] RFC 4912 Abstract Syntax Notation X July 2007

   rewriting step.  This rewriting step MAY be applied to the result of
   a previous rewriting step if the necessary condition still holds.

rewriting step. This rewriting step MAY be applied to the result of a previous rewriting step if the necessary condition still holds.

   Example

Example

      These three definitions are equivalent.

These three definitions are equivalent.

      [XER:ATTRIBUTE] [XER:USE-UNION] [GSER:CHOICE-OF-STRINGS] CHOICE {
          one  PrintableString,
          two  UTF8String
      }

[XER:ATTRIBUTE] [XER:USE-UNION] [GSER:CHOICE-OF-STRINGS] CHOICE { one PrintableString, two UTF8String }

      <type>
       <prefixed>
        <XER><attribute/></XER>
        <type>
         <prefixed>
          <XER><useUnion/></XER>
          <type>
           <prefixed>
            <GSER><choiceOfStrings/></GSER>
            <type>
             <choice>
              <element name="one" type="asnx:PrintableString"/>
              <element name="two" type="asnx:UTF8String"/>
             </choice>
            </type>
           </prefixed>
          </type>
         </prefixed>
        </type>
       </prefixed>
      </type>

<type> <prefixed> <XER><attribute/></XER> <type> <prefixed> <XER><useUnion/></XER> <type> <prefixed> <GSER><choiceOfStrings/></GSER> <type> <choice> <element name="one" type="asnx:PrintableString"/> <element name="two" type="asnx:UTF8String"/> </choice> </type> </prefixed> </type> </prefixed> </type> </prefixed> </type>

      <type>
       <prefixed>
        <XER><attribute/></XER>
        <XER><useUnion/></XER>
        <GSER><choiceOfStrings/></GSER>
        <type>
         <choice>
          <element name="one" type="asnx:PrintableString"/>
          <element name="two" type="asnx:UTF8String"/>
         </choice>
        </type>
       </prefixed>
      </type>

<type> <prefixed> <XER><attribute/></XER> <XER><useUnion/></XER> <GSER><choiceOfStrings/></GSER> <type> <choice> <element name="one" type="asnx:PrintableString"/> <element name="two" type="asnx:UTF8String"/> </choice> </type> </prefixed> </type>

Legg                          Experimental                     [Page 27]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 27] RFC 4912 Abstract Syntax Notation X July 2007

6.7.1.  Short Form TaggedType Translation

6.7.1. Short Form TaggedType Translation

   The short form translation of a TaggedType is an element item with
   the [local name] "type".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <type> element
   item.  An element item with the [local name] "tagged" SHALL be
   appended to the [children] of the <type> element item.

The short form translation of a TaggedType is an element item with the [local name] "type". An element item with the [local name] "annotation" MAY be added to the [children] of the <type> element item. An element item with the [local name] "tagged" SHALL be appended to the [children] of the <type> element item.

   If the Class in the Tag in the TaggedType is not empty, then an
   attribute item with the [local name] "tagClass" SHALL be added to the
   [attributes] of the <tagged> element item.  The [normalized value] of
   this attribute item is the Class of the Tag with all letters
   downcased, i.e., either "universal", "application", or "private".

If the Class in the Tag in the TaggedType is not empty, then an attribute item with the [local name] "tagClass" SHALL be added to the [attributes] of the <tagged> element item. The [normalized value] of this attribute item is the Class of the Tag with all letters downcased, i.e., either "universal", "application", or "private".

   An attribute item with the [local name] "number" SHALL be added to
   the [attributes] of the <tagged> element item.  The
   [normalized value] of this attribute item is the digit string
   representation of the integer value of the number or DefinedValue in
   the ClassNumber in the Tag.

An attribute item with the [local name] "number" SHALL be added to the [attributes] of the <tagged> element item. The [normalized value] of this attribute item is the digit string representation of the integer value of the number or DefinedValue in the ClassNumber in the Tag.

   If the Tag is immediately followed by the "IMPLICIT" keyword, then an
   attribute item with the [local name] "tagging" and [normalized value]
   "implicit" SHALL be added to the [attributes] of the <tagged> element
   item.

If the Tag is immediately followed by the "IMPLICIT" keyword, then an attribute item with the [local name] "tagging" and [normalized value] "implicit" SHALL be added to the [attributes] of the <tagged> element item.

   If the Tag is immediately followed by the "EXPLICIT" keyword, then an
   attribute item with the [local name] "tagging" and [normalized value]
   "explicit" SHALL be added to the [attributes] of the <tagged> element
   item.

If the Tag is immediately followed by the "EXPLICIT" keyword, then an attribute item with the [local name] "tagging" and [normalized value] "explicit" SHALL be added to the [attributes] of the <tagged> element item.

   The translation of the Type in the TaggedType SHALL be added to the
   [children] or [attributes] of the <tagged> element item.

The translation of the Type in the TaggedType SHALL be added to the [children] or [attributes] of the <tagged> element item.

   Examples

Examples

      [0] INTEGER

[0] INTEGER

      <type>
       <tagged number="0" type="asnx:INTEGER"/>
      </type>

<type> <tagged number="0" type="asnx:INTEGER"/> </type>

      [APPLICATION 10] IMPLICIT BOOLEAN

[APPLICATION 10] IMPLICIT BOOLEAN

      <type>
       <tagged tagClass="application" number="10" tagging="implicit"
               type="asnx:BOOLEAN"/>
      </type>

<type> <tagged tagClass="application" number="10" tagging="implicit" type="asnx:BOOLEAN"/> </type>

Legg                          Experimental                     [Page 28]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 28] RFC 4912 Abstract Syntax Notation X July 2007

6.7.2.  Long Form TaggedType Translation

6.7.2. Long Form TaggedType Translation

   The long form translation of a TaggedType is an element item with the
   [local name] "type".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <type> element
   item.  An element item with the [local name] "prefixed" SHALL be
   appended to the [children] of the <type> element item.  The
   translation of the Tag in the TaggedType SHALL be added to the
   [children] of the <prefixed> element item.

The long form translation of a TaggedType is an element item with the [local name] "type". An element item with the [local name] "annotation" MAY be added to the [children] of the <type> element item. An element item with the [local name] "prefixed" SHALL be appended to the [children] of the <type> element item. The translation of the Tag in the TaggedType SHALL be added to the [children] of the <prefixed> element item.

   The translation of a Tag is an element item with the [local name]
   "TAG".

The translation of a Tag is an element item with the [local name] "TAG".

   If the Class of the Tag is not empty, then an attribute item with the
   [local name] "tagClass" SHALL be added to the [attributes] of the
   <TAG> element item.  The [normalized value] of this attribute item is
   the Class of the Tag with all letters downcased, i.e., either
   "universal", "application", or "private".

If the Class of the Tag is not empty, then an attribute item with the [local name] "tagClass" SHALL be added to the [attributes] of the <TAG> element item. The [normalized value] of this attribute item is the Class of the Tag with all letters downcased, i.e., either "universal", "application", or "private".

   An attribute item with the [local name] "number" SHALL be added to
   the [attributes] of the <TAG> element item.  The [normalized value]
   of this attribute item is the digit string representation of the
   integer value of the number or DefinedValue in the ClassNumber in the
   Tag.

An attribute item with the [local name] "number" SHALL be added to the [attributes] of the <TAG> element item. The [normalized value] of this attribute item is the digit string representation of the integer value of the number or DefinedValue in the ClassNumber in the Tag.

   If the Tag is immediately followed by the "IMPLICIT" keyword, then an
   attribute item with the [local name] "tagging" and [normalized value]
   "implicit" SHALL be added to the [attributes] of the <TAG> element
   item.

If the Tag is immediately followed by the "IMPLICIT" keyword, then an attribute item with the [local name] "tagging" and [normalized value] "implicit" SHALL be added to the [attributes] of the <TAG> element item.

   If the Tag is immediately followed by the "EXPLICIT" keyword, then an
   attribute item with the [local name] "tagging" and [normalized value]
   "explicit" SHALL be added to the [attributes] of the <TAG> element
   item.

If the Tag is immediately followed by the "EXPLICIT" keyword, then an attribute item with the [local name] "tagging" and [normalized value] "explicit" SHALL be added to the [attributes] of the <TAG> element item.

   The translation of the Type in the TaggedType SHALL be added to the
   [children] or [attributes] of the <prefixed> element item.

The translation of the Type in the TaggedType SHALL be added to the [children] or [attributes] of the <prefixed> element item.

   Examples

Examples

      [0] INTEGER

[0] INTEGER

      <type>
       <prefixed type="asnx:INTEGER">
        <TAG number="0"/>
       </prefixed>
      </type>

<type> <prefixed type="asnx:INTEGER"> <TAG number="0"/> </prefixed> </type>

Legg                          Experimental                     [Page 29]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 29] RFC 4912 Abstract Syntax Notation X July 2007

      [APPLICATION 10] IMPLICIT BOOLEAN

[APPLICATION 10] IMPLICIT BOOLEAN

      <type>
       <prefixed type="asnx:BOOLEAN">
        <TAG tagClass="application" number="10" tagging="implicit"/>
       </prefixed>
      </type>

<type> <prefixed type="asnx:BOOLEAN"> <TAG tagClass="application" number="10" tagging="implicit"/> </prefixed> </type>

6.8.  SelectionType Translation

6.8. SelectionType Translation

   The translation of a SelectionType is an element item with the
   [local name] "type".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <type> element
   item.  An element item with the [local name] "selection" SHALL be
   appended to the [children] of the <type> element item.

The translation of a SelectionType is an element item with the [local name] "type". An element item with the [local name] "annotation" MAY be added to the [children] of the <type> element item. An element item with the [local name] "selection" SHALL be appended to the [children] of the <type> element item.

   The identifier in a SelectionType identifies a NamedType in the
   definition of the Type in the SelectionType.  The translation of that
   NamedType will be an element item with the [local name] either
   "attribute", "element", "component", "group", or "member".  An
   attribute item with the same [local name] as the translation of the
   NamedType SHALL be added to the [attributes] of the <selection>
   element item.  The [normalized value] of this attribute item is a
   qualified name for the expanded name of the NamedType [RXEREI].

The identifier in a SelectionType identifies a NamedType in the definition of the Type in the SelectionType. The translation of that NamedType will be an element item with the [local name] either "attribute", "element", "component", "group", or "member". An attribute item with the same [local name] as the translation of the NamedType SHALL be added to the [attributes] of the <selection> element item. The [normalized value] of this attribute item is a qualified name for the expanded name of the NamedType [RXEREI].

   The translation of the Type in the SelectionType SHALL be added to
   the [children] or [attributes] of the <selection> element item.

The translation of the Type in the SelectionType SHALL be added to the [children] or [attributes] of the <selection> element item.

   Examples

Examples

      field1 < MyChoiceType

field1 < MyChoiceType

      <type>
       <selection element="field1" type="tns:MyChoiceType"/>
      </type>

<type> <selection element="field1" type="tns:MyChoiceType"/> </type>

      field2 < CHOICE {
          field2  [RXER:ATTRIBUTE][RXER:NAME AS "field-two"] INTEGER
      }

field2 < CHOICE { field2 [RXER:ATTRIBUTE][RXER:NAME AS "field-two"] INTEGER }

      <type>
       <selection attribute="field-two">
        <type>
         <choice>
          <attribute name="field-two" identifier="field2"
                     type="asnx:INTEGER"/>
         </choice>
        </type>

<type> <selection attribute="field-two"> <type> <choice> <attribute name="field-two" identifier="field2" type="asnx:INTEGER"/> </choice> </type>

Legg                          Experimental                     [Page 30]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 30] RFC 4912 Abstract Syntax Notation X July 2007

       </selection>
      </type>

</selection> </type>

6.9.  InstanceOfType Translation

6.9. InstanceOfType Translation

   The translation of an InstanceOfType is an element item with the
   [local name] "type".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <type> element
   item.  An element item with the [local name] "instanceOf" SHALL be
   appended to the [children] of the <type> element item.  The
   translation of the DefinedObjectClass in the InstanceOfType SHALL be
   added to the [children] or [attributes] of the <instanceOf> element
   item.

The translation of an InstanceOfType is an element item with the [local name] "type". An element item with the [local name] "annotation" MAY be added to the [children] of the <type> element item. An element item with the [local name] "instanceOf" SHALL be appended to the [children] of the <type> element item. The translation of the DefinedObjectClass in the InstanceOfType SHALL be added to the [children] or [attributes] of the <instanceOf> element item.

   Example

Example

      INSTANCE OF TYPE-IDENTIFIER

INSTANCE OF TYPE-IDENTIFIER

      <type>
       <instanceOf class="asnx:TYPE-IDENTIFIER"/>
      </type>

<type> <instanceOf class="asnx:TYPE-IDENTIFIER"/> </type>

6.10.  ObjectClassFieldType Translation

6.10. ObjectClassFieldType Translation

   The translation of an ObjectClassFieldType is an element item with
   the [local name] "type".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <type> element
   item.  An element item with the [local name] "fromClass" SHALL be
   appended to the [children] of the <type> element item.  The
   translation of the DefinedObjectClass in the ObjectClassFieldType
   SHALL be added to the [children] or [attributes] of the <fromClass>
   element item.  The translation of the FieldName (see Section 9.2.6)
   in the ObjectClassFieldType SHALL be added to the [children] or
   [attributes] of the <fromClass> element item.

The translation of an ObjectClassFieldType is an element item with the [local name] "type". An element item with the [local name] "annotation" MAY be added to the [children] of the <type> element item. An element item with the [local name] "fromClass" SHALL be appended to the [children] of the <type> element item. The translation of the DefinedObjectClass in the ObjectClassFieldType SHALL be added to the [children] or [attributes] of the <fromClass> element item. The translation of the FieldName (see Section 9.2.6) in the ObjectClassFieldType SHALL be added to the [children] or [attributes] of the <fromClass> element item.

   Example

Example

      OPERATION.&Linked.&ArgumentType

OPERATION.&Linked.&ArgumentType

      <type>
       <fromClass class="tns:OPERATION"
                  fieldName="Linked/ArgumentType"/>
      </type>

<type> <fromClass class="tns:OPERATION" fieldName="Linked/ArgumentType"/> </type>

Legg                          Experimental                     [Page 31]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 31] RFC 4912 Abstract Syntax Notation X July 2007

6.11.  TypeFromObject and ValueSetFromObjects Translation

6.11. TypeFromObject and ValueSetFromObjects Translation

   The translation of a TypeFromObject or ValueSetFromObjects is an
   element item with the [local name] "type".  An element item with the
   [local name] "annotation" MAY be added to the [children] of the
   <type> element item.  An element item with the [local name]
   "fromObjects" SHALL be appended to the [children] of the <type>
   element item.

The translation of a TypeFromObject or ValueSetFromObjects is an element item with the [local name] "type". An element item with the [local name] "annotation" MAY be added to the [children] of the <type> element item. An element item with the [local name] "fromObjects" SHALL be appended to the [children] of the <type> element item.

   The translation of the ReferencedObjects instance in the
   TypeFromObject or ValueSetFromObjects SHALL be added to the
   [children] or [attributes] of the <fromObjects> element item.

The translation of the ReferencedObjects instance in the TypeFromObject or ValueSetFromObjects SHALL be added to the [children] or [attributes] of the <fromObjects> element item.

   The translation of the FieldName in the TypeFromObject or
   ValueSetFromObjects SHALL be added to the [children] or [attributes]
   of the <fromObjects> element item.

The translation of the FieldName in the TypeFromObject or ValueSetFromObjects SHALL be added to the [children] or [attributes] of the <fromObjects> element item.

   Example

Example

      invertMatrix.&Errors.&errorCode

invertMatrix.&Errors.&errorCode

      <type>
       <fromObjects object="tns:invertMatrix"
                    fieldName="Errors/errorCode"/>
      </type>

<type> <fromObjects object="tns:invertMatrix" fieldName="Errors/errorCode"/> </type>

6.12.  Translation of Combining Types

6.12. Translation of Combining Types

   This section details the translation of the ASN.1 combining types:
   SET, SEQUENCE, CHOICE, SET OF, and SEQUENCE OF.  The combining type
   definitions all make use of the NamedType notation.

This section details the translation of the ASN.1 combining types: SET, SEQUENCE, CHOICE, SET OF, and SEQUENCE OF. The combining type definitions all make use of the NamedType notation.

6.12.1.  NamedType Translation

6.12.1. NamedType Translation

   A NamedType is translated in one of three ways depending on the
   context.  These are the normal translation, the member translation,
   and the item translation.  These translations are not
   interchangeable.  One of the three will be explicitly invoked as part
   of the translation of an enclosing combining type.

A NamedType is translated in one of three ways depending on the context. These are the normal translation, the member translation, and the item translation. These translations are not interchangeable. One of the three will be explicitly invoked as part of the translation of an enclosing combining type.

   The normal translation of a NamedType is an element item with the
   [local name] determined as follows:

The normal translation of a NamedType is an element item with the [local name] determined as follows:

   (1) if the NamedType is subject to an ATTRIBUTE or ATTRIBUTE-REF
       encoding instruction, or subject to a COMPONENT-REF encoding
       instruction that references a top-level NamedType that is subject
       to an ATTRIBUTE encoding instruction, then the [local name] is
       "attribute",

(1) if the NamedType is subject to an ATTRIBUTE or ATTRIBUTE-REF encoding instruction, or subject to a COMPONENT-REF encoding instruction that references a top-level NamedType that is subject to an ATTRIBUTE encoding instruction, then the [local name] is "attribute",

Legg                          Experimental                     [Page 32]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 32] RFC 4912 Abstract Syntax Notation X July 2007

   (2) else if the NamedType is subject to a GROUP encoding instruction,
       then the [local name] is "group",

(2) else if the NamedType is subject to a GROUP encoding instruction, then the [local name] is "group",

   (3) else if the NamedType is subject to a SIMPLE-CONTENT encoding
       instruction, then the [local name] is "simpleContent",

(3) else if the NamedType is subject to a SIMPLE-CONTENT encoding instruction, then the [local name] is "simpleContent",

   (4) otherwise, the [local name] is "element" or "component"
       (translator's choice).

(4) otherwise, the [local name] is "element" or "component" (translator's choice).

      Aside: The local names "element" and "component" are synonymous.
      The "component" alternative is offered for specifying applications
      that don't use RXER (except for the ASN.X specification itself, of
      course), where referring to parts of an encoding as elements would
      seem incongruous.

Aside: The local names "element" and "component" are synonymous. The "component" alternative is offered for specifying applications that don't use RXER (except for the ASN.X specification itself, of course), where referring to parts of an encoding as elements would seem incongruous.

   The member translation of a NamedType is an element item with the
   [local name] "member".

The member translation of a NamedType is an element item with the [local name] "member".

   The item translation of a NamedType is an element item with the
   [local name] "item".

The item translation of a NamedType is an element item with the [local name] "item".

      Aside: A Namedtype for which the member or item translation is
      invoked will never be subject to an ATTRIBUTE, ATTRIBUTE-REF,
      COMPONENT-REF, GROUP, SIMPLE-CONTENT, or TYPE-AS-VERSION encoding
      instruction.  These encoding instructions are also mutually
      exclusive [RXEREI].

Aside: A Namedtype for which the member or item translation is invoked will never be subject to an ATTRIBUTE, ATTRIBUTE-REF, COMPONENT-REF, GROUP, SIMPLE-CONTENT, or TYPE-AS-VERSION encoding instruction. These encoding instructions are also mutually exclusive [RXEREI].

   An element item with the [local name] "annotation" MAY be added to
   the [children] of the <attribute>, <element>, <component>, <group>,
   <item>, <member>, or <simpleContent> element item.

An element item with the [local name] "annotation" MAY be added to the [children] of the <attribute>, <element>, <component>, <group>, <item>, <member>, or <simpleContent> element item.

   If a NamedType is subject to a TYPE-AS-VERSION encoding instruction,
   then an attribute item with the [local name] "typeAsVersion" and
   [normalized value] "true" or "1" SHALL be added to the <element> or
   <component> element item.  For the normal translation, if a NamedType
   is not subject to an ATTRIBUTE, ATTRIBUTE-REF, COMPONENT-REF, GROUP,
   SIMPLE-CONTENT, or TYPE-AS-VERSION encoding instruction, then an
   attribute item with the [local name] "typeAsVersion" and
   [normalized value] "false" or "0" MAY be added to the <element> or
   <component> element item.

If a NamedType is subject to a TYPE-AS-VERSION encoding instruction, then an attribute item with the [local name] "typeAsVersion" and [normalized value] "true" or "1" SHALL be added to the <element> or <component> element item. For the normal translation, if a NamedType is not subject to an ATTRIBUTE, ATTRIBUTE-REF, COMPONENT-REF, GROUP, SIMPLE-CONTENT, or TYPE-AS-VERSION encoding instruction, then an attribute item with the [local name] "typeAsVersion" and [normalized value] "false" or "0" MAY be added to the <element> or <component> element item.

   For the normal, member, and item translations, if a NamedType is not
   subject to an ATTRIBUTE-REF, COMPONENT-REF, ELEMENT-REF, or
   REF-AS-ELEMENT encoding instruction, then an attribute item with the
   [local name] "name" SHALL be added to the [attributes] of the
   <attribute>, <element>, <component>, <group>, <item>, <member>, or

For the normal, member, and item translations, if a NamedType is not subject to an ATTRIBUTE-REF, COMPONENT-REF, ELEMENT-REF, or REF-AS-ELEMENT encoding instruction, then an attribute item with the [local name] "name" SHALL be added to the [attributes] of the <attribute>, <element>, <component>, <group>, <item>, <member>, or

Legg                          Experimental                     [Page 33]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 33] RFC 4912 Abstract Syntax Notation X July 2007

   <simpleContent> element item.  The [normalized value] of this
   attribute item is the local name of the expanded name of the
   NamedType [RXEREI].

<simpleContent> element item. The [normalized value] of this attribute item is the local name of the expanded name of the NamedType [RXEREI].

      Aside: If there are no NAME, ATTRIBUTE-REF, COMPONENT_REF,
      ELEMENT-REF or REF-AS-ELEMENT encoding instructions, then the
      local name of the expanded name of a NamedType is the same as the
      identifier in the NamedType.

Aside: If there are no NAME, ATTRIBUTE-REF, COMPONENT_REF, ELEMENT-REF or REF-AS-ELEMENT encoding instructions, then the local name of the expanded name of a NamedType is the same as the identifier in the NamedType.

   If the reduction of the local name (an NCName) of the expanded name
   of a NamedType is not the same as the identifier in the NamedType,
   then an attribute item with the [local name] "identifier" SHALL be
   added to the [attributes] of the <attribute>, <element>, <component>,
   <group>, <item>, <member>, or <simpleContent> element item;
   otherwise, an attribute item with the [local name] "identifier" MAY
   be added to the [attributes] of the aforementioned element item.  The
   [normalized value] of this attribute item is the identifier in the
   NamedType.

If the reduction of the local name (an NCName) of the expanded name of a NamedType is not the same as the identifier in the NamedType, then an attribute item with the [local name] "identifier" SHALL be added to the [attributes] of the <attribute>, <element>, <component>, <group>, <item>, <member>, or <simpleContent> element item; otherwise, an attribute item with the [local name] "identifier" MAY be added to the [attributes] of the aforementioned element item. The [normalized value] of this attribute item is the identifier in the NamedType.

      Aside: The identifier attribute is not contingent on there being a
      name attribute.  That is, an element item can have an identifier
      attribute item without having a name attribute item.

Aside: The identifier attribute is not contingent on there being a name attribute. That is, an element item can have an identifier attribute item without having a name attribute item.

   If a NamedType is subject to a COMPONENT-REF encoding instruction,
   then an attribute item with the [local name] "ref" SHALL be added to
   the [attributes] of the <attribute>, <element>, or <component>
   element item.  The [normalized value] of this attribute item is a
   qualified name for the expanded name of the top-level NamedType
   referenced by the encoding instruction.  If the expanded name is not
   distinct with respect to the current module and the modules
   referenced by its <import> element items (see Section 5.1), then an
   attribute item with the [local name] "context" SHALL be added to the
   [attributes] of the <attribute>, <element>, or <component> element
   item; otherwise, if the module containing the referenced top-level
   NamedType has a schema identity URI, then an attribute item with the
   [local name] "context" MAY be added to the [attributes] of the
   <attribute>, <element>, or <component> element item.  The
   [normalized value] of this attribute item is the schema identity URI
   of the module containing the referenced top-level NamedType.

If a NamedType is subject to a COMPONENT-REF encoding instruction, then an attribute item with the [local name] "ref" SHALL be added to the [attributes] of the <attribute>, <element>, or <component> element item. The [normalized value] of this attribute item is a qualified name for the expanded name of the top-level NamedType referenced by the encoding instruction. If the expanded name is not distinct with respect to the current module and the modules referenced by its <import> element items (see Section 5.1), then an attribute item with the [local name] "context" SHALL be added to the [attributes] of the <attribute>, <element>, or <component> element item; otherwise, if the module containing the referenced top-level NamedType has a schema identity URI, then an attribute item with the [local name] "context" MAY be added to the [attributes] of the <attribute>, <element>, or <component> element item. The [normalized value] of this attribute item is the schema identity URI of the module containing the referenced top-level NamedType.

      Aside: If an expanded name is not distinct, then the module
      containing the referenced top-level NamedType must have a schema
      identity URI (see Section 5.1).

Aside: If an expanded name is not distinct, then the module containing the referenced top-level NamedType must have a schema identity URI (see Section 5.1).

   If a NamedType is subject to a COMPONENT-REF encoding instruction,
   then an attribute item with the [local name] "embedded" and
   [normalized value] "false" or "0" MAY be added to the [attributes] of
   the <attribute>, <element>, or <component> element item.

If a NamedType is subject to a COMPONENT-REF encoding instruction, then an attribute item with the [local name] "embedded" and [normalized value] "false" or "0" MAY be added to the [attributes] of the <attribute>, <element>, or <component> element item.

Legg                          Experimental                     [Page 34]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 34] RFC 4912 Abstract Syntax Notation X July 2007

   If a NamedType is subject to an ATTRIBUTE-REF or ELEMENT-REF encoding
   instruction, then an attribute item with the [local name] "ref" SHALL
   be added to the [attributes] of the <attribute>, <element>, or
   <component> element item.  The [normalized value] of this attribute
   item is the RXER character data translation of the QNameValue in the
   encoding instruction.  An attribute item with the [local name]
   "embedded" and [normalized value] "true" or "1" SHALL be added to the
   [attributes] of the <attribute>, <element>, or <component> element
   item.

If a NamedType is subject to an ATTRIBUTE-REF or ELEMENT-REF encoding instruction, then an attribute item with the [local name] "ref" SHALL be added to the [attributes] of the <attribute>, <element>, or <component> element item. The [normalized value] of this attribute item is the RXER character data translation of the QNameValue in the encoding instruction. An attribute item with the [local name] "embedded" and [normalized value] "true" or "1" SHALL be added to the [attributes] of the <attribute>, <element>, or <component> element item.

   If a NamedType is subject to a REF-AS-ELEMENT encoding instruction,
   then an attribute item with the [local name] "elementType" SHALL be
   added to the [attributes] of the <element> or <component> element
   item.  The [normalized value] of this attribute item is the RXER
   character data translation of the NameValue in the REF-AS-ELEMENT
   encoding instruction.  If a Namespace is present in the
   REF-AS-ELEMENT encoding instruction, then an attribute item with the
   [local name] "namespace" SHALL be added to the [attributes] of the
   <element> or <component> element item.  The [normalized value] of
   this attribute item is the string value of the AnyURIValue in the
   Namespace.

If a NamedType is subject to a REF-AS-ELEMENT encoding instruction, then an attribute item with the [local name] "elementType" SHALL be added to the [attributes] of the <element> or <component> element item. The [normalized value] of this attribute item is the RXER character data translation of the NameValue in the REF-AS-ELEMENT encoding instruction. If a Namespace is present in the REF-AS-ELEMENT encoding instruction, then an attribute item with the [local name] "namespace" SHALL be added to the [attributes] of the <element> or <component> element item. The [normalized value] of this attribute item is the string value of the AnyURIValue in the Namespace.

   If a ContextParameter is present in the RefParameters in the
   ATTRIBUTE-REF, ELEMENT-REF, or REF-AS-ELEMENT encoding instruction,
   then an attribute item with the [local name] "context" SHALL be added
   to the [attributes] of the <attribute>, <element>, or <component>
   element item.  The [normalized value] of this attribute item is the
   string value of the AnyURIValue in the ContextParameter.

If a ContextParameter is present in the RefParameters in the ATTRIBUTE-REF, ELEMENT-REF, or REF-AS-ELEMENT encoding instruction, then an attribute item with the [local name] "context" SHALL be added to the [attributes] of the <attribute>, <element>, or <component> element item. The [normalized value] of this attribute item is the string value of the AnyURIValue in the ContextParameter.

   If a NamedType is subject to both an ATTRIBUTE encoding instruction
   and a VERSION-INDICATOR encoding instruction, then an attribute item
   with the [local name] "versionIndicator" and [normalized value]
   "true" or "1" SHALL be added to the <attribute> element item.  If a
   NamedType is subject to an ATTRIBUTE encoding instruction and not
   subject to a VERSION-INDICATOR encoding instruction, then an
   attribute item with the [local name] "versionIndicator" and
   [normalized value] "false" or "0" MAY be added to the <attribute>
   element item.

If a NamedType is subject to both an ATTRIBUTE encoding instruction and a VERSION-INDICATOR encoding instruction, then an attribute item with the [local name] "versionIndicator" and [normalized value] "true" or "1" SHALL be added to the <attribute> element item. If a NamedType is subject to an ATTRIBUTE encoding instruction and not subject to a VERSION-INDICATOR encoding instruction, then an attribute item with the [local name] "versionIndicator" and [normalized value] "false" or "0" MAY be added to the <attribute> element item.

   If a NamedType is not subject to an ATTRIBUTE-REF, COMPONENT-REF,
   ELEMENT-REF, or REF-AS-ELEMENT encoding instruction, then the
   translation of the Type in the NamedType SHALL be added to the
   [children] or [attributes] of the <attribute>, <element>,
   <component>, <group>, <item>, <member>, or <simpleContent> element
   item.

If a NamedType is not subject to an ATTRIBUTE-REF, COMPONENT-REF, ELEMENT-REF, or REF-AS-ELEMENT encoding instruction, then the translation of the Type in the NamedType SHALL be added to the [children] or [attributes] of the <attribute>, <element>, <component>, <group>, <item>, <member>, or <simpleContent> element item.

Legg                          Experimental                     [Page 35]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 35] RFC 4912 Abstract Syntax Notation X July 2007

   If a NamedType is subject to an ATTRIBUTE-REF, COMPONENT-REF,
   ELEMENT-REF, or REF-AS-ELEMENT encoding instruction, then the
   translation of each EncodingPrefix (Section 6.7) and Tag
   (Section 6.7.2) textually within the NamedType SHALL be added in
   order to the [children] of the <attribute>, <element>, or <component>
   element item.

If a NamedType is subject to an ATTRIBUTE-REF, COMPONENT-REF, ELEMENT-REF, or REF-AS-ELEMENT encoding instruction, then the translation of each EncodingPrefix (Section 6.7) and Tag (Section 6.7.2) textually within the NamedType SHALL be added in order to the [children] of the <attribute>, <element>, or <component> element item.

   Example

Example

      CHOICE {
          one    INTEGER,
          two    [RXER:ATTRIBUTE] BOOLEAN,
          three  [RXER:ATTRIBUTE-REF
                     { namespace-name "http://www.example.com/schema",
                       local-name "foo" }]
                 UTF8String,
          bar    [RXER:ELEMENT-REF
                     { namespace-name "http://www.example.com/schema",
                       local-name "bar" }]
                 Markup,
          five   [0] [RXER:REF-AS-ELEMENT "product"
                     CONTEXT "http://www.example.com/inventory"]
                 Markup,
          six    [RXER:GROUP] MySequence
      }

CHOICE { one INTEGER, two [RXER:ATTRIBUTE] BOOLEAN, three [RXER:ATTRIBUTE-REF { namespace-name "http://www.example.com/schema", local-name "foo" }] UTF8String, bar [RXER:ELEMENT-REF { namespace-name "http://www.example.com/schema", local-name "bar" }] Markup, five [0] [RXER:REF-AS-ELEMENT "product" CONTEXT "http://www.example.com/inventory"] Markup, six [RXER:GROUP] MySequence }

      <type>
       <choice xmlns:ex="http://www.example.com/schema">
        <element name="one" type="asnx:INTEGER"/>
        <attribute name="two" type="asnx:BOOLEAN"/>
        <attribute ref="ex:foo" identifier="three" embedded="true"/>
        <element ref="ex:bar" embedded="true"/>
        <element elementType="product"
                 context="http://www.example.com/inventory"
                 identifier="five">
         <TAG number="0"/>
        </element>
        <group name="six" type="tns:MySequence"/>
       </choice>
      </type>

<type> <choice xmlns:ex="http://www.example.com/schema"> <element name="one" type="asnx:INTEGER"/> <attribute name="two" type="asnx:BOOLEAN"/> <attribute ref="ex:foo" identifier="three" embedded="true"/> <element ref="ex:bar" embedded="true"/> <element elementType="product" context="http://www.example.com/inventory" identifier="five"> <TAG number="0"/> </element> <group name="six" type="tns:MySequence"/> </choice> </type>

6.12.2.  SequenceType Translation

6.12.2. SequenceType Translation

   The translation of a SequenceType is an element item with the
   [local name] "type".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <type> element
   item.  An element item with the [local name] "sequence" SHALL be
   appended to the [children] of the <type> element item.  The

The translation of a SequenceType is an element item with the [local name] "type". An element item with the [local name] "annotation" MAY be added to the [children] of the <type> element item. An element item with the [local name] "sequence" SHALL be appended to the [children] of the <type> element item. The

Legg                          Experimental                     [Page 36]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 36] RFC 4912 Abstract Syntax Notation X July 2007

   translation of each ComponentType nested in the ComponentTypeList in
   the initial RootComponentTypeList, if present, SHALL be appended to
   the [children] of the <sequence> element item.

translation of each ComponentType nested in the ComponentTypeList in the initial RootComponentTypeList, if present, SHALL be appended to the [children] of the <sequence> element item.

   If an ExtensionAndException is present, then an element item with the
   [local name] "extension" SHALL be appended to the [children] of the
   <sequence> element item.  If an ExceptionSpec is present in the
   ExtensionAndException, then the translation of the ExceptionSpec
   (possibly empty) SHALL be added to the [children] of the <extension>
   element item.

If an ExtensionAndException is present, then an element item with the [local name] "extension" SHALL be appended to the [children] of the <sequence> element item. If an ExceptionSpec is present in the ExtensionAndException, then the translation of the ExceptionSpec (possibly empty) SHALL be added to the [children] of the <extension> element item.

   If an ExtensionAdditions instance is present, then the translation of
   each ExtensionAdditionGroup or ComponentType nested in the
   ExtensionAdditions (if any) SHALL be appended to the [children] of
   the <extension> element item.

If an ExtensionAdditions instance is present, then the translation of each ExtensionAdditionGroup or ComponentType nested in the ExtensionAdditions (if any) SHALL be appended to the [children] of the <extension> element item.

   If an ExtensionEndMarker is present, then the translation of each
   ComponentType nested in the ComponentTypeList in the final
   RootComponentTypeList SHALL be appended to the [children] of the
   <sequence> element item.

If an ExtensionEndMarker is present, then the translation of each ComponentType nested in the ComponentTypeList in the final RootComponentTypeList SHALL be appended to the [children] of the <sequence> element item.

   The translation of an ExtensionAdditionGroup is an element item with
   the [local name] "extensionGroup".  If the VersionNumber in the
   ExtensionAdditionGroup is not empty, then an attribute item with the
   [local name] "version" SHALL be added to the [attributes] of the
   <extensionGroup> element item.  The [normalized value] of this
   attribute item is the number in the VersionNumber.  The translation
   of each ComponentType nested in the ExtensionAdditionGroup SHALL be
   appended to the [children] of the <extensionGroup> element item.

The translation of an ExtensionAdditionGroup is an element item with the [local name] "extensionGroup". If the VersionNumber in the ExtensionAdditionGroup is not empty, then an attribute item with the [local name] "version" SHALL be added to the [attributes] of the <extensionGroup> element item. The [normalized value] of this attribute item is the number in the VersionNumber. The translation of each ComponentType nested in the ExtensionAdditionGroup SHALL be appended to the [children] of the <extensionGroup> element item.

   The translation of a ComponentType of the "NamedType" form is the
   normal translation of the NamedType.

The translation of a ComponentType of the "NamedType" form is the normal translation of the NamedType.

   The translation of a ComponentType of the "NamedType OPTIONAL" form
   is an element item with the [local name] "optional".  The normal
   translation of the NamedType SHALL be added to the [children] of the
   <optional> element item.

The translation of a ComponentType of the "NamedType OPTIONAL" form is an element item with the [local name] "optional". The normal translation of the NamedType SHALL be added to the [children] of the <optional> element item.

   The translation of a ComponentType of the "NamedType DEFAULT Value"
   form is an element item with the [local name] "optional".  The normal
   translation of the NamedType SHALL be added to the [children] of the
   <optional> element item.  An element item with the [local name]
   "default" SHALL be appended to the [children] of the <optional>
   element item.  The translation of the Value SHALL be added to the
   [children] or [attributes] of the <default> element item.

The translation of a ComponentType of the "NamedType DEFAULT Value" form is an element item with the [local name] "optional". The normal translation of the NamedType SHALL be added to the [children] of the <optional> element item. An element item with the [local name] "default" SHALL be appended to the [children] of the <optional> element item. The translation of the Value SHALL be added to the [children] or [attributes] of the <default> element item.

Legg                          Experimental                     [Page 37]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 37] RFC 4912 Abstract Syntax Notation X July 2007

   The translation of a ComponentType of the "COMPONENTS OF Type" form
   is an element item with the [local name] "componentsOf".  The
   translation of the Type SHALL be added to the [children] or
   [attributes] of the <componentsOf> element item.

The translation of a ComponentType of the "COMPONENTS OF Type" form is an element item with the [local name] "componentsOf". The translation of the Type SHALL be added to the [children] or [attributes] of the <componentsOf> element item.

   Example

Example

      SEQUENCE {
          one    INTEGER,
          two    [RXER:ATTRIBUTE] BOOLEAN OPTIONAL,
          ...,
          [[ 2:
              four   NULL
          ]],
          COMPONENTS OF MySequence,
          ...,
          three   PrintableString DEFAULT "third"
      }

SEQUENCE { one INTEGER, two [RXER:ATTRIBUTE] BOOLEAN OPTIONAL, ..., [[ 2: four NULL ]], COMPONENTS OF MySequence, ..., three PrintableString DEFAULT "third" }

      <type>
       <sequence>
        <element name="one" type="asnx:INTEGER"/>
        <optional>
         <attribute name="two" type="asnx:BOOLEAN"/>
        </optional>
        <extension>
         <extensionGroup version="2">
          <element name="four" type="asnx:NULL"/>
         </extensionGroup>
         <componentsOf type="tns:MySequence"/>
        </extension>
        <optional>
         <element name="three" type="asnx:PrintableString"/>
         <default literalValue="third"/>
        </optional>
       </sequence>
      </type>

<type> <sequence> <element name="one" type="asnx:INTEGER"/> <optional> <attribute name="two" type="asnx:BOOLEAN"/> </optional> <extension> <extensionGroup version="2"> <element name="four" type="asnx:NULL"/> </extensionGroup> <componentsOf type="tns:MySequence"/> </extension> <optional> <element name="three" type="asnx:PrintableString"/> <default literalValue="third"/> </optional> </sequence> </type>

6.12.3.  SetType Translation

6.12.3. SetType Translation

   The translation of a SetType follows the same procedure as the
   translation of a SequenceType except that SetType replaces
   SequenceType, "SET" replaces "SEQUENCE", and the [local name] "set"
   is used instead of "sequence".

The translation of a SetType follows the same procedure as the translation of a SequenceType except that SetType replaces SequenceType, "SET" replaces "SEQUENCE", and the [local name] "set" is used instead of "sequence".

Legg                          Experimental                     [Page 38]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 38] RFC 4912 Abstract Syntax Notation X July 2007

6.12.4.  ChoiceType Translation

6.12.4. ChoiceType Translation

   The translation of a ChoiceType that is not subject to a UNION
   encoding instruction is an element item with the [local name] "type".
   An element item with the [local name] "annotation" MAY be added to
   the [children] of the <type> element item.  An element item with the
   [local name] "choice" SHALL be appended to the [children] of the
   <type> element item.  The normal translation of each NamedType nested
   in the AlternativeTypeList in the RootAlternativeTypeList in the
   AlternativeTypeLists SHALL be appended to the [children] of the
   <choice> element item.

The translation of a ChoiceType that is not subject to a UNION encoding instruction is an element item with the [local name] "type". An element item with the [local name] "annotation" MAY be added to the [children] of the <type> element item. An element item with the [local name] "choice" SHALL be appended to the [children] of the <type> element item. The normal translation of each NamedType nested in the AlternativeTypeList in the RootAlternativeTypeList in the AlternativeTypeLists SHALL be appended to the [children] of the <choice> element item.

   If an ExtensionAndException is present in the AlternativeTypeLists,
   then an element item with the [local name] "extension" SHALL be
   appended to the [children] of the <choice> element item.  If an
   ExceptionSpec is present in the ExtensionAndException, then the
   translation of the ExceptionSpec (possibly empty) is added to the
   [children] of the <extension> element item.

If an ExtensionAndException is present in the AlternativeTypeLists, then an element item with the [local name] "extension" SHALL be appended to the [children] of the <choice> element item. If an ExceptionSpec is present in the ExtensionAndException, then the translation of the ExceptionSpec (possibly empty) is added to the [children] of the <extension> element item.

   If an ExtensionAdditionAlternatives instance is present in the
   AlternativeTypeLists, then the translation of each
   ExtensionAdditionAlternativesGroup or NamedType (if any) nested in
   the ExtensionAdditionAlternatives SHALL be appended in order to the
   [children] of the <extension> element item.  The normal translation
   of the NamedType is used.

If an ExtensionAdditionAlternatives instance is present in the AlternativeTypeLists, then the translation of each ExtensionAdditionAlternativesGroup or NamedType (if any) nested in the ExtensionAdditionAlternatives SHALL be appended in order to the [children] of the <extension> element item. The normal translation of the NamedType is used.

   The translation of an ExtensionAdditionAlternativesGroup is an
   element item with the [local name] "extensionGroup".  If the
   VersionNumber in the ExtensionAdditionAlternativesGroup is not empty,
   then an attribute item with the [local name] "version" SHALL be added
   to the [attributes] of the <extensionGroup> element item.  The
   [normalized value] of this attribute item is the number in the
   VersionNumber.  The normal translation of each NamedType nested in
   the AlternativeTypeList in the ExtensionAdditionAlternativesGroup
   SHALL be appended to the [children] of the <extensionGroup> element
   item.

The translation of an ExtensionAdditionAlternativesGroup is an element item with the [local name] "extensionGroup". If the VersionNumber in the ExtensionAdditionAlternativesGroup is not empty, then an attribute item with the [local name] "version" SHALL be added to the [attributes] of the <extensionGroup> element item. The [normalized value] of this attribute item is the number in the VersionNumber. The normal translation of each NamedType nested in the AlternativeTypeList in the ExtensionAdditionAlternativesGroup SHALL be appended to the [children] of the <extensionGroup> element item.

Legg                          Experimental                     [Page 39]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 39] RFC 4912 Abstract Syntax Notation X July 2007

   Example

Example

      CHOICE {
          one  INTEGER,
          two  [RXER:NAME AS "Two"] BOOLEAN,
          ...,
          [[ 2:
              three  NULL
          ]],
          four  PrintableString,
          ...
      }

CHOICE { one INTEGER, two [RXER:NAME AS "Two"] BOOLEAN, ..., [[ 2: three NULL ]], four PrintableString, ... }

      <type>
       <choice>
        <element name="one" type="asnx:INTEGER"/>
        <element name="Two" type="asnx:BOOLEAN"/>
        <extension>
         <extensionGroup version="2">
          <element name="three" type="asnx:NULL"/>
         </extensionGroup>
         <element name="four" type="asnx:PrintableString"/>
        </extension>
       </choice>
      </type>

<type> <choice> <element name="one" type="asnx:INTEGER"/> <element name="Two" type="asnx:BOOLEAN"/> <extension> <extensionGroup version="2"> <element name="three" type="asnx:NULL"/> </extensionGroup> <element name="four" type="asnx:PrintableString"/> </extension> </choice> </type>

6.12.5.  Translation of UNION Types

6.12.5. Translation of UNION Types

   The translation of a ChoiceType that is subject to a UNION encoding
   instruction follows the same procedure as the translation of a
   ChoiceType that is not subject to a UNION encoding instruction except
   that the [local name] "union" is used instead of "choice", and the
   member translation of each NamedType is used instead of the normal
   translation.

The translation of a ChoiceType that is subject to a UNION encoding instruction follows the same procedure as the translation of a ChoiceType that is not subject to a UNION encoding instruction except that the [local name] "union" is used instead of "choice", and the member translation of each NamedType is used instead of the normal translation.

   In addition, if the UNION encoding instruction has a PrecedenceList,
   then an attribute item with the [local name] "precedence" SHALL be
   added to the [attributes] of the <union> element item.  The
   [normalized value] of this attribute item is the white space
   separated list of qualified names for the expanded names of the
   NamedType instances [RXEREI] corresponding to the identifiers in the
   PrecedenceList.  A white space separator is one or more of the white
   space characters.

In addition, if the UNION encoding instruction has a PrecedenceList, then an attribute item with the [local name] "precedence" SHALL be added to the [attributes] of the <union> element item. The [normalized value] of this attribute item is the white space separated list of qualified names for the expanded names of the NamedType instances [RXEREI] corresponding to the identifiers in the PrecedenceList. A white space separator is one or more of the white space characters.

Legg                          Experimental                     [Page 40]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 40] RFC 4912 Abstract Syntax Notation X July 2007

   Example

Example

      [RXER:UNION PRECEDENCE utf8 visible] CHOICE {
          printable  PrintableString,
          teletex    TeletexString,
          visible    [RXER:NAME AS "ascii"] VisibleString,
          ...,
          utf8       UTF8String
      }

[RXER:UNION PRECEDENCE utf8 visible] CHOICE { printable PrintableString, teletex TeletexString, visible [RXER:NAME AS "ascii"] VisibleString, ..., utf8 UTF8String }

      <type>
       <union precedence="utf8 ascii">
        <member name="printable" type="asnx:PrintableString"/>
        <member name="teletex" type="asnx:TeletexString"/>
        <member name="ascii" identifier="visible"
                type="asnx:VisibleString"/>
        <extension>
         <member name="utf8" type="asnx:UTF8String"/>
        </extension>
       </union>
      </type>

<type> <union precedence="utf8 ascii"> <member name="printable" type="asnx:PrintableString"/> <member name="teletex" type="asnx:TeletexString"/> <member name="ascii" identifier="visible" type="asnx:VisibleString"/> <extension> <member name="utf8" type="asnx:UTF8String"/> </extension> </union> </type>

6.12.6.  SequenceOfType Translation

6.12.6. SequenceOfType Translation

   The translation of a SequenceOfType that is not subject to a LIST
   encoding instruction is an element item with the [local name] "type".
   An element item with the [local name] "annotation" MAY be added to
   the [children] of the <type> element item.  An element item with the
   [local name] "sequenceOf" SHALL be appended to the [children] of the
   <type> element item.

The translation of a SequenceOfType that is not subject to a LIST encoding instruction is an element item with the [local name] "type". An element item with the [local name] "annotation" MAY be added to the [children] of the <type> element item. An element item with the [local name] "sequenceOf" SHALL be appended to the [children] of the <type> element item.

   If the SequenceOfType is of the "SEQUENCE OF NamedType" form, then
   the normal translation of the NamedType SHALL be added to the
   [children] of the <sequenceOf> element item.

If the SequenceOfType is of the "SEQUENCE OF NamedType" form, then the normal translation of the NamedType SHALL be added to the [children] of the <sequenceOf> element item.

   If the SequenceOfType is of the "SEQUENCE OF Type" form, then an
   element item with the [local name] "element" or "component"
   (translator's choice) SHALL be added to the [children] of the
   <sequenceOf> element item.  An attribute item with the [local name]
   "name" and [normalized value] "item" SHALL be added to the
   [attributes] of the <element> or <component> element item.  An
   attribute item with the [local name] "identifier" and empty
   [normalized value] SHALL be added to the [attributes] of the
   <element> or <component> element item.  The translation of the Type
   SHALL be added to the [children] or [attributes] of the <element> or
   <component> element item.

If the SequenceOfType is of the "SEQUENCE OF Type" form, then an element item with the [local name] "element" or "component" (translator's choice) SHALL be added to the [children] of the <sequenceOf> element item. An attribute item with the [local name] "name" and [normalized value] "item" SHALL be added to the [attributes] of the <element> or <component> element item. An attribute item with the [local name] "identifier" and empty [normalized value] SHALL be added to the [attributes] of the <element> or <component> element item. The translation of the Type SHALL be added to the [children] or [attributes] of the <element> or <component> element item.

Legg                          Experimental                     [Page 41]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 41] RFC 4912 Abstract Syntax Notation X July 2007

   Examples

Examples

      SEQUENCE OF INTEGER

SEQUENCE OF INTEGER

      <type>
       <sequenceOf>
        <element name="item" identifier="" type="asnx:INTEGER"/>
       </sequenceOf>
      </type>

<type> <sequenceOf> <element name="item" identifier="" type="asnx:INTEGER"/> </sequenceOf> </type>

      SEQUENCE OF counter INTEGER

SEQUENCE OF counter INTEGER

      <type>
       <sequenceOf>
        <element name="counter" type="asnx:INTEGER"/>
       </sequenceOf>
      </type>

<type> <sequenceOf> <element name="counter" type="asnx:INTEGER"/> </sequenceOf> </type>

6.12.7.  Translation of LIST Types

6.12.7. Translation of LIST Types

   The translation of a SequenceOfType that is subject to a LIST
   encoding instruction is an element item with the [local name] "type".
   An element item with the [local name] "annotation" MAY be added to
   the [children] of the <type> element item.  An element item with the
   [local name] "list" SHALL be appended to the [children] of the <type>
   element item.  The item translation of the NamedType in the
   SequenceOfType SHALL be added to the [children] of the <list> element
   item.

The translation of a SequenceOfType that is subject to a LIST encoding instruction is an element item with the [local name] "type". An element item with the [local name] "annotation" MAY be added to the [children] of the <type> element item. An element item with the [local name] "list" SHALL be appended to the [children] of the <type> element item. The item translation of the NamedType in the SequenceOfType SHALL be added to the [children] of the <list> element item.

      Aside: A SequenceOfType is necessarily of the
      "SEQUENCE OF NamedType" form for a LIST encoding instruction.

Aside: A SequenceOfType is necessarily of the "SEQUENCE OF NamedType" form for a LIST encoding instruction.

   Example

Example

      [RXER:LIST] SEQUENCE OF number INTEGER

[RXER:LIST] SEQUENCE OF number INTEGER

      <type>
       <list>
        <item name="number" type="asnx:INTEGER"/>
       </list>
      </type>

<type> <list> <item name="number" type="asnx:INTEGER"/> </list> </type>

6.12.8.  SetOfType Translation

6.12.8. SetOfType Translation

   The translation of a SetOfType follows the same procedure as the
   translation of a SequenceOfType except that SetOfType replaces
   SequenceOfType, "SET" replaces "SEQUENCE", and the [local name]
   "setOf" is used instead of "sequenceOf".

The translation of a SetOfType follows the same procedure as the translation of a SequenceOfType except that SetOfType replaces SequenceOfType, "SET" replaces "SEQUENCE", and the [local name] "setOf" is used instead of "sequenceOf".

Legg                          Experimental                     [Page 42]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 42] RFC 4912 Abstract Syntax Notation X July 2007

6.12.9.  Effect of Insertion Encoding Instructions

6.12.9. Effect of Insertion Encoding Instructions

   If a Type is subject to a NO-INSERTIONS, HOLLOW-INSERTIONS,
   SINGULAR-INSERTIONS, UNIFORM-INSERTIONS, or MULTIFORM-INSERTIONS
   encoding instruction, then an attribute item with the [local name]
   "insertions" SHALL be added to the [attributes] of the <choice>,
   <sequence> or <set> element item in the [children] of the <type>
   element item resulting from the translation of the Type.  The
   [normalized value] of this attribute item is "none" in the case of a
   NO-INSERTIONS encoding instruction, "hollow" in the case of a
   HOLLOW-INSERTIONS encoding instruction, "singular" in the case of a
   SINGULAR-INSERTIONS encoding instruction, "uniform" in the case of a
   UNIFORM-INSERTIONS encoding instruction, and "multiform" in the case
   of a MULTIFORM-INSERTIONS encoding instruction.

If a Type is subject to a NO-INSERTIONS, HOLLOW-INSERTIONS, SINGULAR-INSERTIONS, UNIFORM-INSERTIONS, or MULTIFORM-INSERTIONS encoding instruction, then an attribute item with the [local name] "insertions" SHALL be added to the [attributes] of the <choice>, <sequence> or <set> element item in the [children] of the <type> element item resulting from the translation of the Type. The [normalized value] of this attribute item is "none" in the case of a NO-INSERTIONS encoding instruction, "hollow" in the case of a HOLLOW-INSERTIONS encoding instruction, "singular" in the case of a SINGULAR-INSERTIONS encoding instruction, "uniform" in the case of a UNIFORM-INSERTIONS encoding instruction, and "multiform" in the case of a MULTIFORM-INSERTIONS encoding instruction.

   Example

Example

      [NO-INSERTIONS] CHOICE {
          one  [RXER:GROUP] [RXER:SINGULAR-INSERTIONS] CHOICE {
              two  INTEGER,
              ...
          },
          ...
      }

[NO-INSERTIONS] CHOICE { one [RXER:GROUP] [RXER:SINGULAR-INSERTIONS] CHOICE { two INTEGER, ... }, ... }

      <type>
       <choice insertions="none">
        <group name="one">
         <type>
          <choice insertions="singular">
           <element name="two" type="asnx:INTEGER"/>
           <extension/>
          </choice>
         </type>
        </group>
        <extension/>
       </choice>
      </type>

<type> <choice insertions="none"> <group name="one"> <type> <choice insertions="singular"> <element name="two" type="asnx:INTEGER"/> <extension/> </choice> </type> </group> <extension/> </choice> </type>

6.13.  Translation of Constrained Types

6.13. Translation of Constrained Types

   If a ConstrainedType is of the "Type Constraint" form, then the
   translation of the ConstrainedType is an element item with the
   [local name] "type".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <type> element
   item.  An element item with the [local name] "constrained" SHALL be
   appended to the [children] of the <type> element item.  The
   translation of the Type SHALL be added to the [children] or

If a ConstrainedType is of the "Type Constraint" form, then the translation of the ConstrainedType is an element item with the [local name] "type". An element item with the [local name] "annotation" MAY be added to the [children] of the <type> element item. An element item with the [local name] "constrained" SHALL be appended to the [children] of the <type> element item. The translation of the Type SHALL be added to the [children] or

Legg                          Experimental                     [Page 43]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 43] RFC 4912 Abstract Syntax Notation X July 2007

   [attributes] of the <constrained> element item.  The translation of
   the Constraint SHALL be added to the [children] of the <constrained>
   element item.

[attributes] of the <constrained> element item. The translation of the Constraint SHALL be added to the [children] of the <constrained> element item.

   The translation of a ContainedType that is a TypeWithConstraint is
   the translation of the TypeWithConstraint.

The translation of a ContainedType that is a TypeWithConstraint is the translation of the TypeWithConstraint.

   Definition (simple endpoint):  A LowerEndpoint or UpperEndpoint is a
   simple endpoint if it is closed and its value is "MIN", "MAX", or a
   SignedNumber in an IntegerValue in a BuiltinValue in the Value of the
   endpoint.

Definition (simple endpoint): A LowerEndpoint or UpperEndpoint is a simple endpoint if it is closed and its value is "MIN", "MAX", or a SignedNumber in an IntegerValue in a BuiltinValue in the Value of the endpoint.

   Definition (simple range SizeConstraint): A SizeConstraint is a
   simple range if the Constraint in the SizeConstraint contains only a
   ValueRange (i.e., a ValueRange in a SubtypeElements instance in an
   Elements instance in a lone IntersectionElements instance in a lone
   Intersections instance in a Unions instance in an ElementSetSpec in a
   RootElementSetSpec in an ElementSetSpecs instance without an
   AdditionalElementSetSpec in a SubtypeConstraint in a ConstraintSpec
   in the Constraint) and both endpoints are simple.

Definition (simple range SizeConstraint): A SizeConstraint is a simple range if the Constraint in the SizeConstraint contains only a ValueRange (i.e., a ValueRange in a SubtypeElements instance in an Elements instance in a lone IntersectionElements instance in a lone Intersections instance in a Unions instance in an ElementSetSpec in a RootElementSetSpec in an ElementSetSpecs instance without an AdditionalElementSetSpec in a SubtypeConstraint in a ConstraintSpec in the Constraint) and both endpoints are simple.

   Definition (simple range Constraint): A Constraint is a simple range
   if contains only a SizeConstraint that is a simple range (i.e., a
   simple range SizeConstraint in a SubtypeElements instance in an
   Elements instance in a lone IntersectionElements instance in a lone
   Intersections instance in a Unions instance in an ElementSetSpec in a
   RootElementSetSpec in an ElementSetSpecs instance without an
   AdditionalElementSetSpec in a SubtypeConstraint in a ConstraintSpec
   in the Constraint).

Definition (simple range Constraint): A Constraint is a simple range if contains only a SizeConstraint that is a simple range (i.e., a simple range SizeConstraint in a SubtypeElements instance in an Elements instance in a lone IntersectionElements instance in a lone Intersections instance in a Unions instance in an ElementSetSpec in a RootElementSetSpec in an ElementSetSpecs instance without an AdditionalElementSetSpec in a SubtypeConstraint in a ConstraintSpec in the Constraint).

   If the Constraint or SizeConstraint in a TypeWithConstraint is a
   simple range, then the compact translation of the TypeWithConstraint
   MAY be used; otherwise, the full translation of the
   TypeWithConstraint is used.

If the Constraint or SizeConstraint in a TypeWithConstraint is a simple range, then the compact translation of the TypeWithConstraint MAY be used; otherwise, the full translation of the TypeWithConstraint is used.

   The compact translation of a TypeWithConstraint is initially the
   translation of its notional parent type.  If the value of the lower
   endpoint is not "MIN" or "0", then an attribute item with the
   [local name] "minSize" SHALL be added to the [attributes] of the
   <sequenceOf>, <setOf>, or <list> element item resulting from the
   translation of the parent type.  The [normalized value] of this
   attribute item is the value of the lower endpoint.  If the value of
   the lower endpoint is "MIN" or "0", then an attribute item with the
   [local name] "minSize" and [normalized value] "0" MAY be added to the
   [attributes] of the <sequenceOf>, <setOf>, or <list> element item.
   If the value of the upper endpoint is not "MAX", then an attribute
   item with the [local name] "maxSize" SHALL be added to the
   [attributes] of the <sequenceOf>, <setOf>, or <list> element item.

The compact translation of a TypeWithConstraint is initially the translation of its notional parent type. If the value of the lower endpoint is not "MIN" or "0", then an attribute item with the [local name] "minSize" SHALL be added to the [attributes] of the <sequenceOf>, <setOf>, or <list> element item resulting from the translation of the parent type. The [normalized value] of this attribute item is the value of the lower endpoint. If the value of the lower endpoint is "MIN" or "0", then an attribute item with the [local name] "minSize" and [normalized value] "0" MAY be added to the [attributes] of the <sequenceOf>, <setOf>, or <list> element item. If the value of the upper endpoint is not "MAX", then an attribute item with the [local name] "maxSize" SHALL be added to the [attributes] of the <sequenceOf>, <setOf>, or <list> element item.

Legg                          Experimental                     [Page 44]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 44] RFC 4912 Abstract Syntax Notation X July 2007

   The [normalized value] of this attribute item is the value of the
   upper endpoint.

The [normalized value] of this attribute item is the value of the upper endpoint.

   The full translation of a TypeWithConstraint is an element item with
   the [local name] "type".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <type> element
   item.  An element item with the [local name] "constrained" SHALL be
   appended to the [children] of the <type> element item.  The
   translation of the notional parent type of the TypeWithConstraint
   SHALL be added to the [children] or [attributes] of the <constrained>
   element item.  The translation of the Constraint or SizeConstraint in
   the TypeWithConstraint SHALL be added to the [children] of the
   <constrained> element item.

The full translation of a TypeWithConstraint is an element item with the [local name] "type". An element item with the [local name] "annotation" MAY be added to the [children] of the <type> element item. An element item with the [local name] "constrained" SHALL be appended to the [children] of the <type> element item. The translation of the notional parent type of the TypeWithConstraint SHALL be added to the [children] or [attributes] of the <constrained> element item. The translation of the Constraint or SizeConstraint in the TypeWithConstraint SHALL be added to the [children] of the <constrained> element item.

   Examples

Examples

      SEQUENCE (SIZE(1..MAX)) OF number INTEGER

SEQUENCE (SIZE(1..MAX)) OF number INTEGER

      <type>
       <sequenceOf minSize="1">
        <element name="number" type="asnx:INTEGER"/>
       </sequenceOf>
      </type>

<type> <sequenceOf minSize="1"> <element name="number" type="asnx:INTEGER"/> </sequenceOf> </type>

      SEQUENCE SIZE(0..10) OF number INTEGER

SEQUENCE SIZE(0..10) OF number INTEGER

      <type>
       <sequenceOf maxSize="10">
        <element name="number" type="asnx:INTEGER"/>
       </sequenceOf>
      </type>

<type> <sequenceOf maxSize="10"> <element name="number" type="asnx:INTEGER"/> </sequenceOf> </type>

      SEQUENCE SIZE(1..limit) OF number INTEGER

SEQUENCE SIZE(1..limit) OF number INTEGER

      <type>
       <constrained>
        <type>
         <sequenceOf>
          <element name="number" type="asnx:INTEGER"/>
         </sequenceOf>
        </type>
        <size>
         <range>
          <minInclusive literalValue="1"/>
          <maxInclusive value="tns:limit"/>
         </range>

<type> <constrained> <type> <sequenceOf> <element name="number" type="asnx:INTEGER"/> </sequenceOf> </type> <size> <range> <minInclusive literalValue="1"/> <maxInclusive value="tns:limit"/> </range>

Legg                          Experimental                     [Page 45]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 45] RFC 4912 Abstract Syntax Notation X July 2007

        </size>
       </constrained>
      </type>

</size> </constrained> </type>

6.13.1.  Constraint Translation

6.13.1. Constraint Translation

   The translation of a Constraint is the translation of the
   ConstraintSpec in the Constraint followed by the translation of the
   ExceptionSpec (possibly empty) in the Constraint.

The translation of a Constraint is the translation of the ConstraintSpec in the Constraint followed by the translation of the ExceptionSpec (possibly empty) in the Constraint.

   The translation of a ConstraintSpec is the translation of the
   SubtypeConstraint or GeneralConstraint in the ConstraintSpec.

The translation of a ConstraintSpec is the translation of the SubtypeConstraint or GeneralConstraint in the ConstraintSpec.

   The translation of a SubtypeConstraint is the translation of the
   ElementSetSpecs in the SubtypeConstraint.

The translation of a SubtypeConstraint is the translation of the ElementSetSpecs in the SubtypeConstraint.

   The translation of a GeneralConstraint [X.682] is the translation of
   the UserDefinedConstraint, TableConstraint, or ContentsConstraint in
   the GeneralConstraint.

The translation of a GeneralConstraint [X.682] is the translation of the UserDefinedConstraint, TableConstraint, or ContentsConstraint in the GeneralConstraint.

6.13.2.  UserDefinedConstraint Translation

6.13.2. UserDefinedConstraint Translation

   The translation of a UserDefinedConstraint is an element item with
   the [local name] "constrainedBy".  An element item with the
   [local name] "annotation" MAY be added to the [children] of the
   <constrainedBy> element item.  The translation of each
   UserDefinedConstraintParameter in the UserDefinedConstraint SHALL be
   appended to the [children] of the <constrainedBy> element item.

The translation of a UserDefinedConstraint is an element item with the [local name] "constrainedBy". An element item with the [local name] "annotation" MAY be added to the [children] of the <constrainedBy> element item. The translation of each UserDefinedConstraintParameter in the UserDefinedConstraint SHALL be appended to the [children] of the <constrainedBy> element item.

   The translation of a UserDefinedConstraintParameter of the
   "Governor : Value" form is an element item with the [local name]
   "valueParameter".  The translation of the Type in the Governor SHALL
   be added to the [children] or [attributes] of the <valueParameter>
   element item.  The translation of the Value SHALL be added to the
   [children] or [attributes] of the <valueParameter> element item.

The translation of a UserDefinedConstraintParameter of the "Governor : Value" form is an element item with the [local name] "valueParameter". The translation of the Type in the Governor SHALL be added to the [children] or [attributes] of the <valueParameter> element item. The translation of the Value SHALL be added to the [children] or [attributes] of the <valueParameter> element item.

   The translation of a UserDefinedConstraintParameter of the
   "Governor : ValueSet" form is an element item with the [local name]
   "valueSetParameter".  The translation of the Type in the Governor
   SHALL be added to the [children] or [attributes] of the
   <valueSetParameter> element item.  The translation of the ValueSet
   SHALL be added to the [children] of the <valueSetParameter> element
   item.

The translation of a UserDefinedConstraintParameter of the "Governor : ValueSet" form is an element item with the [local name] "valueSetParameter". The translation of the Type in the Governor SHALL be added to the [children] or [attributes] of the <valueSetParameter> element item. The translation of the ValueSet SHALL be added to the [children] of the <valueSetParameter> element item.

   The translation of a UserDefinedConstraintParameter of the
   "Governor : Object" form is an element item with the [local name]
   "objectParameter".  The translation of the DefinedObjectClass in the
   Governor SHALL be added to the [children] or [attributes] of the

The translation of a UserDefinedConstraintParameter of the "Governor : Object" form is an element item with the [local name] "objectParameter". The translation of the DefinedObjectClass in the Governor SHALL be added to the [children] or [attributes] of the

Legg                          Experimental                     [Page 46]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 46] RFC 4912 Abstract Syntax Notation X July 2007

   <objectParameter> element item.  The translation of the Object SHALL
   be added to the [children] or [attributes] of the <objectParameter>
   element item.

<objectParameter> element item. The translation of the Object SHALL be added to the [children] or [attributes] of the <objectParameter> element item.

   The translation of a UserDefinedConstraintParameter of the
   "Governor : ObjectSet" form is an element item with the [local name]
   "objectSetParameter".  The translation of the DefinedObjectClass in
   the Governor SHALL be added to the [children] or [attributes] of the
   <objectSetParameter> element item.  The translation of the ObjectSet
   SHALL be added to the [children] or [attributes] of the
   <objectSetParameter> element item.

The translation of a UserDefinedConstraintParameter of the "Governor : ObjectSet" form is an element item with the [local name] "objectSetParameter". The translation of the DefinedObjectClass in the Governor SHALL be added to the [children] or [attributes] of the <objectSetParameter> element item. The translation of the ObjectSet SHALL be added to the [children] or [attributes] of the <objectSetParameter> element item.

   The translation of a UserDefinedConstraintParameter that is a Type is
   an element item with the [local name] "typeParameter".  The
   translation of the Type SHALL be added to the [children] or
   [attributes] of the <typeParameter> element item.

The translation of a UserDefinedConstraintParameter that is a Type is an element item with the [local name] "typeParameter". The translation of the Type SHALL be added to the [children] or [attributes] of the <typeParameter> element item.

   The translation of a UserDefinedConstraintParameter that is a
   DefinedObjectClass is an element item with the [local name]
   "classParameter".  The translation of the DefinedObjectClass SHALL be
   added to the [children] or [attributes] of the <classParameter>
   element item.

The translation of a UserDefinedConstraintParameter that is a DefinedObjectClass is an element item with the [local name] "classParameter". The translation of the DefinedObjectClass SHALL be added to the [children] or [attributes] of the <classParameter> element item.

   Example

Example

      OCTET STRING
          (CONSTRAINED BY {
              -- contains the hash of the value -- MyType:myValue })

OCTET STRING (CONSTRAINED BY { -- contains the hash of the value -- MyType:myValue })

      <type>
       <constrained type="asnx:OCTET-STRING">
        <constrainedBy>
         <annotation> contains the hash of the value </annotation>
         <valueParameter type="tns:MyType" value="tns:myValue"/>
        </constrainedBy>
       </constrained>
      </type>

<type> <constrained type="asnx:OCTET-STRING"> <constrainedBy> <annotation> contains the hash of the value </annotation> <valueParameter type="tns:MyType" value="tns:myValue"/> </constrainedBy> </constrained> </type>

6.13.3.  TableConstraint Translation

6.13.3. TableConstraint Translation

   The translation of a TableConstraint that is a SimpleTableConstraint
   is an element item with the [local name] "table".  The translation of
   the ObjectSet in the SimpleTableConstraint SHALL be added to the
   [children] or [attributes] of the <table> element item.

The translation of a TableConstraint that is a SimpleTableConstraint is an element item with the [local name] "table". The translation of the ObjectSet in the SimpleTableConstraint SHALL be added to the [children] or [attributes] of the <table> element item.

   The translation of a TableConstraint that is a
   ComponentRelationConstraint is an element item with the [local name]
   "table".  The translation of the DefinedObjectSet in the

The translation of a TableConstraint that is a ComponentRelationConstraint is an element item with the [local name] "table". The translation of the DefinedObjectSet in the

Legg                          Experimental                     [Page 47]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 47] RFC 4912 Abstract Syntax Notation X July 2007

   ComponentRelationConstraint SHALL be added to the [children] or
   [attributes] of the <table> element item.  The translation of each
   AtNotation in the ComponentRelationConstraint SHALL be appended to
   the [children] of the <table> element item.

ComponentRelationConstraint SHALL be added to the [children] or [attributes] of the <table> element item. The translation of each AtNotation in the ComponentRelationConstraint SHALL be appended to the [children] of the <table> element item.

   The translation of an AtNotation is an element item with the
   [local name] "restrictBy".  The [children] property of the
   <restrictBy> element item is set to the sequence of character items
   for the character string formed by the concatenation of zero, one, or
   more "../" strings, one for each Level in the AtNotation (including
   the empty one), followed by a solidus ('/', U+002F) separated list of
   qualified names for the expanded names of the NamedType instances
   [RXEREI] identified by the identifiers in the ComponentIdList in the
   AtNotation.  If a NamedType is subject to an ATTRIBUTE or
   ATTRIBUTE-REF encoding instruction, or subject to a COMPONENT-REF
   encoding instruction that references a top-level NamedType that is
   subject to an ATTRIBUTE encoding instruction, then the qualified name
   for the expanded name is prefixed with the commercial at character
   ('@', U+0040).  Leading and/or trailing white space character items
   MAY be added to the [children] of the <restrictBy> element item.
   White space character items MAY be added immediately before and/or
   after any character item for the solidus character ('/', U+002F).

The translation of an AtNotation is an element item with the [local name] "restrictBy". The [children] property of the <restrictBy> element item is set to the sequence of character items for the character string formed by the concatenation of zero, one, or more "../" strings, one for each Level in the AtNotation (including the empty one), followed by a solidus ('/', U+002F) separated list of qualified names for the expanded names of the NamedType instances [RXEREI] identified by the identifiers in the ComponentIdList in the AtNotation. If a NamedType is subject to an ATTRIBUTE or ATTRIBUTE-REF encoding instruction, or subject to a COMPONENT-REF encoding instruction that references a top-level NamedType that is subject to an ATTRIBUTE encoding instruction, then the qualified name for the expanded name is prefixed with the commercial at character ('@', U+0040). Leading and/or trailing white space character items MAY be added to the [children] of the <restrictBy> element item. White space character items MAY be added immediately before and/or after any character item for the solidus character ('/', U+002F).

   Examples

Examples

      ERROR.&Type({Errors}{@severity,@...errorId})

ERROR.&Type({Errors}{@severity,@...errorId})

      <type>
       <constrained>
        <type>
         <fromClass class="tns:ERROR" fieldName="Type"/>
        </type>
        <table objectset="tns:Errors">
         <restrictBy>severity</restrictBy>
         <restrictBy>../../../errorId</restrictBy>
        </table>
       </constrained>
      </type>

<type> <constrained> <type> <fromClass class="tns:ERROR" fieldName="Type"/> </type> <table objectset="tns:Errors"> <restrictBy>severity</restrictBy> <restrictBy>../../../errorId</restrictBy> </table> </constrained> </type>

      SEQUENCE {
          id-att  [RXER:NAME AS "ID"] [RXER:ATTRIBUTE]
                      TYPE-IDENTIFIER.&id({AllTypes}),
          value   TYPE-IDENTIFIER.&Type({AllTypes}{@id-att})
      }

SEQUENCE { id-att [RXER:NAME AS "ID"] [RXER:ATTRIBUTE] TYPE-IDENTIFIER.&id({AllTypes}), value TYPE-IDENTIFIER.&Type({AllTypes}{@id-att}) }

      <type>
       <sequence>
        <attribute name="ID" identifier="id-att">

<type> <sequence> <attribute name="ID" identifier="id-att">

Legg                          Experimental                     [Page 48]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 48] RFC 4912 Abstract Syntax Notation X July 2007

         <type>
          <constrained>
           <type>
            <fromClass class="asnx:TYPE-IDENTIFIER" fieldName="id"/>
           </type>
           <table objectset="tns:AllTypes"/>
          </constrained>
         </type>
        </attribute>
        <element name="value">
         <type>
          <constrained>
           <type>
            <fromClass class="asnx:TYPE-IDENTIFIER" fieldName="Type"/>
           </type>
           <table objectset="tns:AllTypes">
            <restrictBy>@ID</restrictBy>
           </table>
          </constrained>
         </type>
        </element>
       </sequence>
      </type>

<type> <constrained> <type> <fromClass class="asnx:TYPE-IDENTIFIER" fieldName="id"/> </type> <table objectset="tns:AllTypes"/> </constrained> </type> </attribute> <element name="value"> <type> <constrained> <type> <fromClass class="asnx:TYPE-IDENTIFIER" fieldName="Type"/> </type> <table objectset="tns:AllTypes"> <restrictBy>@ID</restrictBy> </table> </constrained> </type> </element> </sequence> </type>

   The <restrictBy> element item is required to be self-contained
   [RXER].

The <restrictBy> element item is required to be self-contained [RXER].

      Aside: An element item is self-contained if all namespace prefixes
      used by the element item and its contents are declared within the
      element item.

Aside: An element item is self-contained if all namespace prefixes used by the element item and its contents are declared within the element item.

6.13.4.  ContentsConstraint Translation

6.13.4. ContentsConstraint Translation

   The translation of a ContentsConstraint is an element item with the
   [local name] "contents".

The translation of a ContentsConstraint is an element item with the [local name] "contents".

   If the ContentsConstraint is of the "CONTAINING Type" form, then an
   element item with the [local name] "containing" SHALL be added to the
   [children] of the <contents> element item.  The translation of the
   Type SHALL be added to the [children] or [attributes] of the
   <containing> element item.

If the ContentsConstraint is of the "CONTAINING Type" form, then an element item with the [local name] "containing" SHALL be added to the [children] of the <contents> element item. The translation of the Type SHALL be added to the [children] or [attributes] of the <containing> element item.

   If the ContentsConstraint is of the "ENCODED BY Value" form, then an
   element item with the [local name] "encodedBy" SHALL be added to the
   [children] of the <contents> element item.  The translation of the
   Value SHALL be added to the [children] or [attributes] of the
   <encodedBy> element item.

If the ContentsConstraint is of the "ENCODED BY Value" form, then an element item with the [local name] "encodedBy" SHALL be added to the [children] of the <contents> element item. The translation of the Value SHALL be added to the [children] or [attributes] of the <encodedBy> element item.

Legg                          Experimental                     [Page 49]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 49] RFC 4912 Abstract Syntax Notation X July 2007

   If the ContentsConstraint is of the
   "CONTAINING Type ENCODED BY Value" form, then an element item with
   the [local name] "containing" and an element item with the
   [local name] "encodedBy" SHALL be added to the [children] of the
   <contents> element item.  The translation of the Type SHALL be added
   to the [children] or [attributes] of the <containing> element item.
   The translation of the Value SHALL be added to the [children] or
   [attributes] of the <encodedBy> element item.

If the ContentsConstraint is of the "CONTAINING Type ENCODED BY Value" form, then an element item with the [local name] "containing" and an element item with the [local name] "encodedBy" SHALL be added to the [children] of the <contents> element item. The translation of the Type SHALL be added to the [children] or [attributes] of the <containing> element item. The translation of the Value SHALL be added to the [children] or [attributes] of the <encodedBy> element item.

   Example

Example

      OCTET STRING
          (CONTAINING MyType
           ENCODED BY { joint-iso-itu-t asn1(1) basic-encoding(1) })

OCTET STRING (CONTAINING MyType ENCODED BY { joint-iso-itu-t asn1(1) basic-encoding(1) })

      <type>
       <constrained type="asnx:OCTET-STRING">
        <contents>
         <containing type="tns:MyType"/>
         <encodedBy literalValue="2.1.1"/>
        </contents>
       </constrained>
      </type>

<type> <constrained type="asnx:OCTET-STRING"> <contents> <containing type="tns:MyType"/> <encodedBy literalValue="2.1.1"/> </contents> </constrained> </type>

6.13.5.  ExceptionSpec Translation

6.13.5. ExceptionSpec Translation

   The translation of an empty ExceptionSpec is empty.

The translation of an empty ExceptionSpec is empty.

   The translation of a non-empty ExceptionSpec is an element item with
   the [local name] "exception".

The translation of a non-empty ExceptionSpec is an element item with the [local name] "exception".

   If the ExceptionIdentification in a non-empty ExceptionSpec is a
   SignedNumber, then the translation of a notional INTEGER Type SHALL
   be added to the [children] or [attributes] of the <exception> element
   item, and the translation of a notional Value of the INTEGER type
   with the SignedNumber as its IntegerValue SHALL be added to the
   [children] or [attributes] of the <exception> element item.

If the ExceptionIdentification in a non-empty ExceptionSpec is a SignedNumber, then the translation of a notional INTEGER Type SHALL be added to the [children] or [attributes] of the <exception> element item, and the translation of a notional Value of the INTEGER type with the SignedNumber as its IntegerValue SHALL be added to the [children] or [attributes] of the <exception> element item.

   If the ExceptionIdentification in a non-empty ExceptionSpec is a
   DefinedValue, then the translation of a notional INTEGER Type SHALL
   be added to the [children] or [attributes] of the <exception> element
   item, and the translation of the DefinedValue SHALL be added to the
   [children] or [attributes] of the <exception> element item.

If the ExceptionIdentification in a non-empty ExceptionSpec is a DefinedValue, then the translation of a notional INTEGER Type SHALL be added to the [children] or [attributes] of the <exception> element item, and the translation of the DefinedValue SHALL be added to the [children] or [attributes] of the <exception> element item.

Legg                          Experimental                     [Page 50]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 50] RFC 4912 Abstract Syntax Notation X July 2007

   If the ExceptionIdentification in a non-empty ExceptionSpec is of the
   "Type : Value" form, then the translation of the Type SHALL be added
   to the [children] or [attributes] of the <exception> element item,
   and the translation of the Value SHALL be added to the [children] or
   [attributes] of the <exception> element item.

If the ExceptionIdentification in a non-empty ExceptionSpec is of the "Type : Value" form, then the translation of the Type SHALL be added to the [children] or [attributes] of the <exception> element item, and the translation of the Value SHALL be added to the [children] or [attributes] of the <exception> element item.

   Examples

Examples

      !10

!10

      <exception type="asnx:INTEGER" literalValue="10"/>

<exception type="asnx:INTEGER" literalValue="10"/>

      !myValue

!myValue

      <exception type="asnx:INTEGER" value="tns:myValue"/>

<exception type="asnx:INTEGER" value="tns:myValue"/>

      !PrintableString:"failure"

!PrintableString:"failure"

      <exception type="asnx:PrintableString" literalValue="failure"/>

<exception type="asnx:PrintableString" literalValue="failure"/>

7.  Translation of Values

7. Translation of Values

   A Value in an ASN.1 specification is a mix of literal values (e.g.,
   numbers and character strings) and notations for referencing defined
   values.  Likewise, the ASN.X translation of a Value is a mix of
   markup for literal values and markup for referencing notations
   (notational values).  A Value is categorized by the following
   definitions.

A Value in an ASN.1 specification is a mix of literal values (e.g., numbers and character strings) and notations for referencing defined values. Likewise, the ASN.X translation of a Value is a mix of markup for literal values and markup for referencing notations (notational values). A Value is categorized by the following definitions.

   Definition (literal value): A Value is a literal value if and only if
   it is not a notational value.

Definition (literal value): A Value is a literal value if and only if it is not a notational value.

   Definition (notational value): A Value is a notational value if and
   only if:

Definition (notational value): A Value is a notational value if and only if:

   (1) the Value is a BuiltinValue, and

(1) the Value is a BuiltinValue, and

       (a) the BuiltinValue is a TaggedValue and the Value in the
           TaggedValue is a notational value, or

(a) the BuiltinValue is a TaggedValue and the Value in the TaggedValue is a notational value, or

       (b) the BuiltinValue is a SequenceValue or SetValue with a
           ComponentValueList that contains a NamedValue where the Value
           in the NamedValue is a notational value and the translation
           of the corresponding NamedType (from the governing type of
           the outer Value) is not an <element> or <component> element
           item, or

(b) the BuiltinValue is a SequenceValue or SetValue with a ComponentValueList that contains a NamedValue where the Value in the NamedValue is a notational value and the translation of the corresponding NamedType (from the governing type of the outer Value) is not an <element> or <component> element item, or

Legg                          Experimental                     [Page 51]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 51] RFC 4912 Abstract Syntax Notation X July 2007

       (c) the BuiltinValue is a ChoiceValue where the Value of the
           ChoiceValue is a notational value and the translation of the
           NamedType corresponding to the identifier in the ChoiceValue
           is not an <element> or <component> element item, or

(c) the BuiltinValue is a ChoiceValue where the Value of the ChoiceValue is a notational value and the translation of the NamedType corresponding to the identifier in the ChoiceValue is not an <element> or <component> element item, or

       (d) the BuiltinValue is a SequenceOfValue or SetOfValue with a
           NamedValueList that contains a NamedValue where the Value of
           the NamedValue is a notational value and the translation of
           the corresponding NamedType (from the governing type of the
           outer Value) is not an <element> or <component> element item,
           or

(d) the BuiltinValue is a SequenceOfValue or SetOfValue with a NamedValueList that contains a NamedValue where the Value of the NamedValue is a notational value and the translation of the corresponding NamedType (from the governing type of the outer Value) is not an <element> or <component> element item, or

   (2) the Value is a ReferencedValue, and

(2) the Value is a ReferencedValue, and

       (a) the ReferencedValue is a ValueFromObject, or

(a) the ReferencedValue is a ValueFromObject, or

       (b) the ReferencedValue is a DefinedValue, and

(b) the ReferencedValue is a DefinedValue, and

           (i)   the DefinedValue is a valuereference (not a
                 DummyReference) or an ExternalValueReference, or

(i) the DefinedValue is a valuereference (not a DummyReference) or an ExternalValueReference, or

           (ii)  the DefinedValue is a DummyReference or
                 ParameterizedValue and the substitute definition for
                 the DummyReference or ParameterizedValue (see
                 Section 13) is a notational value, or

(ii) the DefinedValue is a DummyReference or ParameterizedValue and the substitute definition for the DummyReference or ParameterizedValue (see Section 13) is a notational value, or

           (iii) the DefinedValue is a DummyReference or
                 ParameterizedValue where the translation of the
                 DummyReference or ParameterizedValue will use a fully
                 expanded reference (see Section 13), or

(iii) the DefinedValue is a DummyReference or ParameterizedValue where the translation of the DummyReference or ParameterizedValue will use a fully expanded reference (see Section 13), or

   (3) the Value is an ObjectClassFieldValue, and

(3) the Value is an ObjectClassFieldValue, and

       (a) the ObjectClassFieldValue is an OpenTypeFieldVal, or

(a) the ObjectClassFieldValue is an OpenTypeFieldVal, or

       (b) the ObjectClassFieldValue is a FixedTypeFieldVal, and

(b) the ObjectClassFieldValue is a FixedTypeFieldVal, and

           (i)  the FixedTypeFieldVal is a BuiltinValue that satisfies
                case (1), or

(i) the FixedTypeFieldVal is a BuiltinValue that satisfies case (1), or

           (ii) the FixedTypeFieldVal is a ReferencedValue that
                satisfies case (2).

(ii) the FixedTypeFieldVal is a ReferencedValue that satisfies case (2).

   A literal value that is a BuiltinValue that is a SequenceValue,
   SetValue, ChoiceValue, SequenceOfValue, or SetOfValue MAY be
   translated as a notational value.

A literal value that is a BuiltinValue that is a SequenceValue, SetValue, ChoiceValue, SequenceOfValue, or SetOfValue MAY be translated as a notational value.

Legg                          Experimental                     [Page 52]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 52] RFC 4912 Abstract Syntax Notation X July 2007

   Definition (directly nested):  A notational value is directly nested
   (within a literal value) if the innermost enclosing Value is a
   literal value.

Definition (directly nested): A notational value is directly nested (within a literal value) if the innermost enclosing Value is a literal value.

7.1.  Translation of Literal Values

7.1. Translation of Literal Values

   The translation of a literal value is either the attribute form
   translation of a literal value, or the element form translation of a
   literal value.

The translation of a literal value is either the attribute form translation of a literal value, or the element form translation of a literal value.

   The attribute form translation of a literal value is an attribute
   item with the [local name] "literalValue".  The [normalized value] of
   this attribute item is the RXER character data translation [RXER] of
   the literal value.

The attribute form translation of a literal value is an attribute item with the [local name] "literalValue". The [normalized value] of this attribute item is the RXER character data translation [RXER] of the literal value.

   The attribute form translation of a literal value SHALL NOT be used
   if:

The attribute form translation of a literal value SHALL NOT be used if:

   (1) the RXER Infoset translation of the literal value is not a
       character data translation [RXER] or is a character data
       translation that contains qualified names [XMLNS10][XMLNS11], or

(1) the RXER Infoset translation of the literal value is not a character data translation [RXER] or is a character data translation that contains qualified names [XMLNS10][XMLNS11], or

   (2) attribute form translations of Value have been explicitly
       disallowed in the context where the literal value appears, or

(2) attribute form translations of Value have been explicitly disallowed in the context where the literal value appears, or

   (3) the literal value has a nested notational value.

(3) the literal value has a nested notational value.

   The element form translation of a literal value is an element item
   with the [local name] "literalValue".  The [children] and
   [attributes] of the <literalValue> element item are set to the RXER
   Infoset translation of the literal value, except that a value of the
   EXTERNAL type (or a subtype thereof) is translated according to the
   associated type defined in Clause 34.5 of X.680 [X.680].  In
   addition, where the [children] and [attributes] of an element item in
   the translation correspond to a directly nested notational value, the
   translation specified in Section 7.2 MUST be used for the [children]
   and [attributes] of that element item, and an attribute item with the
   [local name] "literal", [namespace name]
   "urn:ietf:params:xml:ns:asnx", and [normalized value] "false" or "0"
   (i.e., asnx:literal="false") MUST be added to the [attributes] of
   that element item.

The element form translation of a literal value is an element item with the [local name] "literalValue". The [children] and [attributes] of the <literalValue> element item are set to the RXER Infoset translation of the literal value, except that a value of the EXTERNAL type (or a subtype thereof) is translated according to the associated type defined in Clause 34.5 of X.680 [X.680]. In addition, where the [children] and [attributes] of an element item in the translation correspond to a directly nested notational value, the translation specified in Section 7.2 MUST be used for the [children] and [attributes] of that element item, and an attribute item with the [local name] "literal", [namespace name] "urn:ietf:params:xml:ns:asnx", and [normalized value] "false" or "0" (i.e., asnx:literal="false") MUST be added to the [attributes] of that element item.

   Each outermost <literalValue> element item is required to be
   self-contained [RXER].

Each outermost <literalValue> element item is required to be self-contained [RXER].

      Aside: An element item is self-contained if all namespace prefixes
      used by the element item and its contents are declared within the
      element item.

Aside: An element item is self-contained if all namespace prefixes used by the element item and its contents are declared within the element item.

Legg                          Experimental                     [Page 53]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 53] RFC 4912 Abstract Syntax Notation X July 2007

      Aside: A <literalValue> element item nested within another
      <literalValue> element item is not required to be self-contained.

Aside: A <literalValue> element item nested within another <literalValue> element item is not required to be self-contained.

   An attribute item with the [local name] "literal", [namespace name]
   "urn:ietf:params:xml:ns:asnx" and [normalized value] "true" or "1"
   (i.e., asnx:literal="true") MAY be added to the [attributes] of the
   <literalValue> element item and/or any nested element item with
   content and attributes that correspond to a literal value.

An attribute item with the [local name] "literal", [namespace name] "urn:ietf:params:xml:ns:asnx" and [normalized value] "true" or "1" (i.e., asnx:literal="true") MAY be added to the [attributes] of the <literalValue> element item and/or any nested element item with content and attributes that correspond to a literal value.

      Aside: The asnx:literal attribute operates as a switch that
      indicates whether the content and other attributes of the element
      containing the attribute are interpreted as ASN.X notation (a
      notational value) or as an RXER encoding (a literal value).

Aside: The asnx:literal attribute operates as a switch that indicates whether the content and other attributes of the element containing the attribute are interpreted as ASN.X notation (a notational value) or as an RXER encoding (a literal value).

   Example

Example

      zero INTEGER ::= 0

zero INTEGER ::= 0

      <namedValue name="zero" type="asnx:INTEGER" literalValue="0"/>

<namedValue name="zero" type="asnx:INTEGER" literalValue="0"/>

          OR

OR

      <namedValue name="zero" type="asnx:INTEGER">
       <literalValue>0</literalValue>
      </namedValue>

<namedValue name="zero" type="asnx:INTEGER"> <literalValue>0</literalValue> </namedValue>

   From the perspective of an ASN.X module as the RXER encoding of an
   ASN.1 value (an abstract value of the ModuleDefinition type in
   Appendix A), the type of the <literalValue> element is the
   unconstrained Markup type [RXER], not the governing type of the Value
   according to the ASN.1 specification.  This means that the Infoset
   representation of the <literalValue> element must be preserved in
   re-encodings of the ASN.X module.

From the perspective of an ASN.X module as the RXER encoding of an ASN.1 value (an abstract value of the ModuleDefinition type in Appendix A), the type of the <literalValue> element is the unconstrained Markup type [RXER], not the governing type of the Value according to the ASN.1 specification. This means that the Infoset representation of the <literalValue> element must be preserved in re-encodings of the ASN.X module.

   Similarly, the type of the literalValue attribute is a UTF8String,
   not the governing type of the Value according to the ASN.1
   specification.  This means that the exact characters of the
   [normalized value] of the attribute must be preserved in re-encodings
   of the ASN.X module.

Similarly, the type of the literalValue attribute is a UTF8String, not the governing type of the Value according to the ASN.1 specification. This means that the exact characters of the [normalized value] of the attribute must be preserved in re-encodings of the ASN.X module.

7.2.  Translation of Notational Values

7.2. Translation of Notational Values

   The translation of a notational value is the translation of the
   BuiltinValue, ReferencedValue, or ObjectClassFieldValue in the
   notational value.

The translation of a notational value is the translation of the BuiltinValue, ReferencedValue, or ObjectClassFieldValue in the notational value.

   The translation of a ReferencedValue is the translation of the
   DefinedValue or ValueFromObject in the ReferencedValue.

The translation of a ReferencedValue is the translation of the DefinedValue or ValueFromObject in the ReferencedValue.

Legg                          Experimental                     [Page 54]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 54] RFC 4912 Abstract Syntax Notation X July 2007

   The translation for each of these cases is described as creating an
   element item with the [local name] "value", which is appropriate for
   a notational value that stands on its own.  However, a notational
   value may also be directly nested within a literal value, in which
   case the [local name] will be determined according to RXER and the
   governing ASN.1 type of the enclosing literal value.

The translation for each of these cases is described as creating an element item with the [local name] "value", which is appropriate for a notational value that stands on its own. However, a notational value may also be directly nested within a literal value, in which case the [local name] will be determined according to RXER and the governing ASN.1 type of the enclosing literal value.

      Aside: In the latter case, the element item will also have a
      literal attribute item with the [normalized value] "false" or "0".

Aside: In the latter case, the element item will also have a literal attribute item with the [normalized value] "false" or "0".

   A notational value that is not directly nested within a literal value
   MAY instead have the [local name] "literalValue" provided an
   attribute item with the [local name] "literal", [namespace name]
   "urn:ietf:params:xml:ns:asnx", and [normalized value] "false" or "0"
   is added to the [attributes] of the <literalValue> element item.

A notational value that is not directly nested within a literal value MAY instead have the [local name] "literalValue" provided an attribute item with the [local name] "literal", [namespace name] "urn:ietf:params:xml:ns:asnx", and [normalized value] "false" or "0" is added to the [attributes] of the <literalValue> element item.

   Examples

Examples

      nothing INTEGER ::= zero

nothing INTEGER ::= zero

      <namedValue name="nothing" type="asnx:INTEGER" value="tns:zero"/>

<namedValue name="nothing" type="asnx:INTEGER" value="tns:zero"/>

          OR

OR

      <namedValue name="nothing" type="asnx:INTEGER">
       <value ref="tns:zero"/><!-- A notational value. -->
      </namedValue>

<namedValue name="nothing" type="asnx:INTEGER"> <value ref="tns:zero"/><!-- A notational value. --> </namedValue>

          OR

OR

      <namedValue name="nothing" type="asnx:INTEGER">
       <literalValue xmlns:asnx="urn:ietf:params:xml:ns:asnx"
                     xmlns:tns="http://example.com/ns/MyModule"
                     asnx:literal="false"
                     ref="tns:zero"/><!-- A notational value. -->
      </namedValue>

<namedValue name="nothing" type="asnx:INTEGER"> <literalValue xmlns:asnx="urn:ietf:params:xml:ns:asnx" xmlns:tns="http://example.com/ns/MyModule" asnx:literal="false" ref="tns:zero"/><!-- A notational value. --> </namedValue>

      integerList SEQUENCE OF number INTEGER ::= { zero, 3, 7 }

integerList SEQUENCE OF number INTEGER ::= { zero, 3, 7 }

      <namedValue name="integerList">
       <type>
        <sequenceOf>
         <element name="number" type="asnx:INTEGER"/>
        </sequenceOf>
       </type>
       <literalValue xmlns:asnx="urn:ietf:params:xml:ns:asnx"
                     xmlns:tns="http://example.com/ns/MyModule">
        <number asnx:literal="false"

<namedValue name="integerList"> <type> <sequenceOf> <element name="number" type="asnx:INTEGER"/> </sequenceOf> </type> <literalValue xmlns:asnx="urn:ietf:params:xml:ns:asnx" xmlns:tns="http://example.com/ns/MyModule"> <number asnx:literal="false"

Legg                          Experimental                     [Page 55]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 55] RFC 4912 Abstract Syntax Notation X July 2007

                ref="tns:zero"/><!-- A notational value. -->
        <number>3</number><!-- A literal value. -->
        <number>7</number><!-- A literal value. -->
       </literalValue>
      </namedValue>

ref="tns:zero"/><!-- A notational value. --> <number>3</number><!-- A literal value. --> <number>7</number><!-- A literal value. --> </literalValue> </namedValue>

7.2.1.  DefinedValue Translation

7.2.1. DefinedValue Translation

   If a DefinedValue is a valuereference (not a DummyReference) or an
   ExternalValueReference, then the translation of the DefinedValue is
   either the attribute form translation of a value reference, or the
   element form translation of a value reference.

If a DefinedValue is a valuereference (not a DummyReference) or an ExternalValueReference, then the translation of the DefinedValue is either the attribute form translation of a value reference, or the element form translation of a value reference.

   The attribute form translation of a value reference is an attribute
   item with the [local name] "value".  The [normalized value] of this
   attribute item is a qualified name for the expanded name of the
   referenced value definition (see Section 5.1).  The attribute form
   translation SHALL NOT be used if this expanded name is not distinct
   with respect to the current module and the modules referenced by its
   <import> element items (see Section 5.1).

The attribute form translation of a value reference is an attribute item with the [local name] "value". The [normalized value] of this attribute item is a qualified name for the expanded name of the referenced value definition (see Section 5.1). The attribute form translation SHALL NOT be used if this expanded name is not distinct with respect to the current module and the modules referenced by its <import> element items (see Section 5.1).

   The element form translation of a value reference is an element item
   with the [local name] "value".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <value> element
   item.  An attribute item with the [local name] "ref" SHALL be added
   to the [attributes] of the <value> element item.  The
   [normalized value] of this attribute item is a qualified name for the
   expanded name of the referenced value definition.  If this expanded
   name is not distinct with respect to the current module and the
   modules referenced by its <import> element items, then an attribute
   item with the [local name] "context" SHALL be added to the
   [attributes] of the <value> element item; otherwise, if the module
   containing the referenced value definition has a schema identity URI,
   then an attribute item with the [local name] "context" MAY be added
   to the [attributes] of the <value> element item.  The
   [normalized value] of this attribute item is the schema identity URI
   of the module containing the value definition referenced by the
   DefinedValue.

The element form translation of a value reference is an element item with the [local name] "value". An element item with the [local name] "annotation" MAY be added to the [children] of the <value> element item. An attribute item with the [local name] "ref" SHALL be added to the [attributes] of the <value> element item. The [normalized value] of this attribute item is a qualified name for the expanded name of the referenced value definition. If this expanded name is not distinct with respect to the current module and the modules referenced by its <import> element items, then an attribute item with the [local name] "context" SHALL be added to the [attributes] of the <value> element item; otherwise, if the module containing the referenced value definition has a schema identity URI, then an attribute item with the [local name] "context" MAY be added to the [attributes] of the <value> element item. The [normalized value] of this attribute item is the schema identity URI of the module containing the value definition referenced by the DefinedValue.

      Aside: If a reference name is not distinct, then the module
      containing the referenced definition must have a schema identity
      URI (see Section 5.1).

Aside: If a reference name is not distinct, then the module containing the referenced definition must have a schema identity URI (see Section 5.1).

   Usually the translator is free to choose either an attribute form or
   element form translation for a DefinedValue; however, in some
   contexts attribute forms of Value are explicitly disallowed.  In

Usually the translator is free to choose either an attribute form or element form translation for a DefinedValue; however, in some contexts attribute forms of Value are explicitly disallowed. In

Legg                          Experimental                     [Page 56]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 56] RFC 4912 Abstract Syntax Notation X July 2007

   particular, the attribute form translation SHALL NOT be used for a
   DefinedValue in a ReferencedValue in a Value that is directly nested
   in a literal value.

particular, the attribute form translation SHALL NOT be used for a DefinedValue in a ReferencedValue in a Value that is directly nested in a literal value.

   If a DefinedValue is a DummyReference or ParameterizedValue, then the
   translation of the DefinedValue is the translation of that
   DummyReference or ParameterizedValue (see Section 13).

If a DefinedValue is a DummyReference or ParameterizedValue, then the translation of the DefinedValue is the translation of that DummyReference or ParameterizedValue (see Section 13).

7.2.2.  BuiltinValue Translation

7.2.2. BuiltinValue Translation

   The translation of a BuiltinValue is the translation of the
   ChoiceValue, SequenceValue, SetValue, SequenceOfValue, SetOfValue, or
   TaggedValue in the BuiltinValue.

The translation of a BuiltinValue is the translation of the ChoiceValue, SequenceValue, SetValue, SequenceOfValue, SetOfValue, or TaggedValue in the BuiltinValue.

      Aside: There are other possibilities for a BuiltinValue, but these
      will all be literal values.  This section applies to a
      BuiltinValue that is a notational value.

Aside: There are other possibilities for a BuiltinValue, but these will all be literal values. This section applies to a BuiltinValue that is a notational value.

   The translation of a TaggedValue is the translation of the Value in
   the TaggedValue (which is necessarily a notational value).

The translation of a TaggedValue is the translation of the Value in the TaggedValue (which is necessarily a notational value).

   The translation of a ChoiceValue is an element item with the
   [local name] "value".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <value> element
   item.  An element item with the same [local name] (i.e., "attribute",
   "element", "component", "group", or "member") as the translation of
   the NamedType corresponding to the identifier in the ChoiceValue
   SHALL be appended to the [children] of the <value> element item.  An
   attribute item with the [local name] "name" SHALL be added to the
   [attributes] of the <attribute>, <element>, <component>, <group>, or
   <member> element item.  The [normalized value] of this attribute item
   is a qualified name for the expanded name of the NamedType.  The
   translation of the Value in the ChoiceValue SHALL be added to the
   [children] or [attributes] of the <attribute>, <element>,
   <component>, <group>, or <member> element item.

The translation of a ChoiceValue is an element item with the [local name] "value". An element item with the [local name] "annotation" MAY be added to the [children] of the <value> element item. An element item with the same [local name] (i.e., "attribute", "element", "component", "group", or "member") as the translation of the NamedType corresponding to the identifier in the ChoiceValue SHALL be appended to the [children] of the <value> element item. An attribute item with the [local name] "name" SHALL be added to the [attributes] of the <attribute>, <element>, <component>, <group>, or <member> element item. The [normalized value] of this attribute item is a qualified name for the expanded name of the NamedType. The translation of the Value in the ChoiceValue SHALL be added to the [children] or [attributes] of the <attribute>, <element>, <component>, <group>, or <member> element item.

   The translation of a SequenceValue or SetValue is an element item
   with the [local name] "value".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <value> element
   item.  If the SequenceValue or SetValue has a ComponentValueList,
   then the translation of each NamedValue nested in the
   ComponentValueList SHALL be appended to the [children] of the <value>
   element item in the order in which their corresponding NamedType
   instances appear in the definition of the governing type.

The translation of a SequenceValue or SetValue is an element item with the [local name] "value". An element item with the [local name] "annotation" MAY be added to the [children] of the <value> element item. If the SequenceValue or SetValue has a ComponentValueList, then the translation of each NamedValue nested in the ComponentValueList SHALL be appended to the [children] of the <value> element item in the order in which their corresponding NamedType instances appear in the definition of the governing type.

Legg                          Experimental                     [Page 57]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 57] RFC 4912 Abstract Syntax Notation X July 2007

   The translation of a SequenceOfValue or SetOfValue is an element item
   with the [local name] "value".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <value> element
   item.

The translation of a SequenceOfValue or SetOfValue is an element item with the [local name] "value". An element item with the [local name] "annotation" MAY be added to the [children] of the <value> element item.

   If the SequenceOfValue or SetOfValue has a NamedValueList, then the
   translation of each NamedValue nested in the NamedValueList SHALL be
   appended to the [children] of the <value> element item.

If the SequenceOfValue or SetOfValue has a NamedValueList, then the translation of each NamedValue nested in the NamedValueList SHALL be appended to the [children] of the <value> element item.

   If the SequenceOfValue or SetOfValue has a ValueList, then an element
   item with the same [local name] (i.e., "element" or "component") as
   the element item in the [children] of the <sequenceOf> or <setOf>
   element item in the translation of the governing type SHALL be
   appended to the [children] of the <value> element item for each Value
   nested in the ValueList.  An attribute item with the [local name]
   "name" and [normalized value] "item" SHALL be added to the
   [attributes] of the <element> or <component> element item.  The
   translation of the Value (from the ValueList) SHALL be added to the
   [children] or [attributes] of the <element> or <component> element
   item.

If the SequenceOfValue or SetOfValue has a ValueList, then an element item with the same [local name] (i.e., "element" or "component") as the element item in the [children] of the <sequenceOf> or <setOf> element item in the translation of the governing type SHALL be appended to the [children] of the <value> element item for each Value nested in the ValueList. An attribute item with the [local name] "name" and [normalized value] "item" SHALL be added to the [attributes] of the <element> or <component> element item. The translation of the Value (from the ValueList) SHALL be added to the [children] or [attributes] of the <element> or <component> element item.

   The translation of a NamedValue is an element item with the same
   [local name] as the translation of the corresponding NamedType, i.e.,
   "attribute", "element", "component", "group", "item", or
   "simpleContent".  An attribute item with the [local name] "name"
   SHALL be added to the [attributes] of the element item.  The
   [normalized value] of this attribute item is a qualified name for the
   expanded name of the NamedType.  The translation of the Value in the
   NamedValue SHALL be added to the [children] or [attributes] of the
   element item.

The translation of a NamedValue is an element item with the same [local name] as the translation of the corresponding NamedType, i.e., "attribute", "element", "component", "group", "item", or "simpleContent". An attribute item with the [local name] "name" SHALL be added to the [attributes] of the element item. The [normalized value] of this attribute item is a qualified name for the expanded name of the NamedType. The translation of the Value in the NamedValue SHALL be added to the [children] or [attributes] of the element item.

   Examples

Examples

      -- This is the governing type.
      MyType ::= SEQUENCE {
           one    [ATTRIBUTE] INTEGER,
           two    INTEGER,
           three  [ATTRIBUTE][LIST] SEQUENCE OF number INTEGER
      }

-- This is the governing type. MyType ::= SEQUENCE { one [ATTRIBUTE] INTEGER, two INTEGER, three [ATTRIBUTE][LIST] SEQUENCE OF number INTEGER }

      <namedType name="MyType">
       <type>
        <sequence>
         <attribute name="one" type="asnx:INTEGER"/>
         <element name="two" type="asnx:INTEGER"/>
         <attribute name="three">
          <type>
           <list>

<namedType name="MyType"> <type> <sequence> <attribute name="one" type="asnx:INTEGER"/> <element name="two" type="asnx:INTEGER"/> <attribute name="three"> <type> <list>

Legg                          Experimental                     [Page 58]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 58] RFC 4912 Abstract Syntax Notation X July 2007

            <item name="number" type="asnx:INTEGER"/>
           </list>
          </type>
         </attribute>
        </sequence>
       </type>
      </namedType>

<item name="number" type="asnx:INTEGER"/> </list> </type> </attribute> </sequence> </type> </namedType>

      myValue1 MyType ::= {
          one     456,
          two     123,
          three   { number 123, number 456 }
      }
      -- All literal values.

myValue1 MyType ::= { one 456, two 123, three { number 123, number 456 } } -- All literal values.

      <namedValue name="myValue1" type="tns:MyType">
       <literalValue one="456" three="123 456">
        <two>123</two>
       </literalValue>
      </namedValue>

<namedValue name="myValue1" type="tns:MyType"> <literalValue one="456" three="123 456"> <two>123</two> </literalValue> </namedValue>

      myValue2 MyType ::= {
          one     456,
          two     myObject.&number,
            -- only the value for component "two" is a notational value
          three   { number 123, number 456 }
      }

myValue2 MyType ::= { one 456, two myObject.&number, -- only the value for component "two" is a notational value three { number 123, number 456 } }

      <namedValue name="myValue2" type="tns:MyType">
       <literalValue xmlns:asnx="urn:ietf:params:xml:ns:asnx"
                     xmlns:tns="http://example.com/ns/MyModule"
                     one="456" three="123 456">
        <two asnx:literal="false">
         <fromObjects object="tns:myObject" fieldName="number"/>
        </two>
       </literalValue>
      </namedValue>

<namedValue name="myValue2" type="tns:MyType"> <literalValue xmlns:asnx="urn:ietf:params:xml:ns:asnx" xmlns:tns="http://example.com/ns/MyModule" one="456" three="123 456"> <two asnx:literal="false"> <fromObjects object="tns:myObject" fieldName="number"/> </two> </literalValue> </namedValue>

      myValue3 MyType ::= {
          one     myObject.&number,
          two     123,
          three   { number 123, number myObject.&number }
      }

myValue3 MyType ::= { one myObject.&number, two 123, three { number 123, number myObject.&number } }

      <namedValue name="myValue3" type="tns:MyType">
       <value>
        <attribute name="one">
         <value>

<namedValue name="myValue3" type="tns:MyType"> <value> <attribute name="one"> <value>

Legg                          Experimental                     [Page 59]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 59] RFC 4912 Abstract Syntax Notation X July 2007

          <fromObjects object="tns:myObject" fieldName="number"/>
         </value>
        </attribute>
        <element name="two" literalValue="123"/>
        <attribute name="three">
         <value>
          <item name="number" literalValue="123"/>
          <item name="number">
           <value>
            <fromObjects object="tns:myObject" fieldName="number"/>
           </value>
          </item>
         </value>
        </attribute>
       </value>
      </namedValue>

<fromObjects object="tns:myObject" fieldName="number"/> </value> </attribute> <element name="two" literalValue="123"/> <attribute name="three"> <value> <item name="number" literalValue="123"/> <item name="number"> <value> <fromObjects object="tns:myObject" fieldName="number"/> </value> </item> </value> </attribute> </value> </namedValue>

7.2.3.  ValueFromObject Translation

7.2.3. ValueFromObject Translation

   The translation of a ValueFromObject is an element item with the
   [local name] "value".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <value> element
   item.  An element item with the [local name] "fromObjects" SHALL be
   appended to the [children] of the <value> element item.

The translation of a ValueFromObject is an element item with the [local name] "value". An element item with the [local name] "annotation" MAY be added to the [children] of the <value> element item. An element item with the [local name] "fromObjects" SHALL be appended to the [children] of the <value> element item.

   The translation of the ReferencedObjects instance in the
   ValueFromObject SHALL be added to the [children] or [attributes] of
   the <fromObjects> element item.

The translation of the ReferencedObjects instance in the ValueFromObject SHALL be added to the [children] or [attributes] of the <fromObjects> element item.

   The translation of the FieldName in the ValueFromObject SHALL be
   added to the [children] or [attributes] of the <fromObjects> element
   item.

The translation of the FieldName in the ValueFromObject SHALL be added to the [children] or [attributes] of the <fromObjects> element item.

7.2.4.  ObjectClassFieldValue Translation

7.2.4. ObjectClassFieldValue Translation

   If an ObjectClassFieldValue is a BuiltinValue in a FixedTypeFieldVal,
   then the translation of the ObjectClassFieldValue is the translation
   of the BuiltinValue.

If an ObjectClassFieldValue is a BuiltinValue in a FixedTypeFieldVal, then the translation of the ObjectClassFieldValue is the translation of the BuiltinValue.

   If an ObjectClassFieldValue is a ReferencedValue in a
   FixedTypeFieldVal, then the translation of the ObjectClassFieldValue
   is the translation of the ReferencedValue.

If an ObjectClassFieldValue is a ReferencedValue in a FixedTypeFieldVal, then the translation of the ObjectClassFieldValue is the translation of the ReferencedValue.

   If an ObjectClassFieldValue is an OpenTypeFieldVal, then the
   translation of the ObjectClassFieldValue is an element item with the
   [local name] "value".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <value> element
   item.  An element item with the [local name] "openTypeValue" SHALL be

If an ObjectClassFieldValue is an OpenTypeFieldVal, then the translation of the ObjectClassFieldValue is an element item with the [local name] "value". An element item with the [local name] "annotation" MAY be added to the [children] of the <value> element item. An element item with the [local name] "openTypeValue" SHALL be

Legg                          Experimental                     [Page 60]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 60] RFC 4912 Abstract Syntax Notation X July 2007

   appended to the [children] of the <value> element item.  The
   translation of the Type in the OpenTypeFieldVal SHALL be added to the
   [children] or [attributes] of the <openTypeValue> element item.  The
   translation of the Value in the OpenTypeFieldVal SHALL be added to
   the [children] or [attributes] of the <openTypeValue> element item.

appended to the [children] of the <value> element item. The translation of the Type in the OpenTypeFieldVal SHALL be added to the [children] or [attributes] of the <openTypeValue> element item. The translation of the Value in the OpenTypeFieldVal SHALL be added to the [children] or [attributes] of the <openTypeValue> element item.

   Example

Example

      myValue TYPE-IDENTIFIER.&Type ::= INTEGER:123

myValue TYPE-IDENTIFIER.&Type ::= INTEGER:123

      <namedValue name="myValue">
       <type>
        <fromClass class="asnx:TYPE-IDENTIFIER" fieldName="Type"/>
       </type>
       <value>
        <openTypeValue type="asnx:INTEGER" literalValue="123"/>
       </value>
      </namedValue>

<namedValue name="myValue"> <type> <fromClass class="asnx:TYPE-IDENTIFIER" fieldName="Type"/> </type> <value> <openTypeValue type="asnx:INTEGER" literalValue="123"/> </value> </namedValue>

8.  Translation of Value Sets

8. Translation of Value Sets

   The translation of a ValueSet is an element item with the
   [local name] "valueSet".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <valueSet> element
   item.  The translation of the ElementSetSpecs instance in the
   ValueSet SHALL be appended to the [children] of the <valueSet>
   element item.

The translation of a ValueSet is an element item with the [local name] "valueSet". An element item with the [local name] "annotation" MAY be added to the [children] of the <valueSet> element item. The translation of the ElementSetSpecs instance in the ValueSet SHALL be appended to the [children] of the <valueSet> element item.

   Example

Example

      { 1 | 3..7, ..., 9..19 EXCEPT ( 11 | 12 ) }

{ 1 | 3..7, ..., 9..19 EXCEPT ( 11 | 12 ) }

      <valueSet>
       <union>
        <literalValue>1</literalValue>
        <range>
         <minInclusive literalValue="3"/>
         <maxInclusive literalValue="7"/>
        </range>
       </union>
       <extension>
        <all>
         <range>
          <minInclusive literalValue="9"/>
          <maxInclusive literalValue="19"/>
         </range>
         <except>
          <union>

<valueSet> <union> <literalValue>1</literalValue> <range> <minInclusive literalValue="3"/> <maxInclusive literalValue="7"/> </range> </union> <extension> <all> <range> <minInclusive literalValue="9"/> <maxInclusive literalValue="19"/> </range> <except> <union>

Legg                          Experimental                     [Page 61]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 61] RFC 4912 Abstract Syntax Notation X July 2007

           <literalValue>11</literalValue>
           <literalValue>12</literalValue>
          </union>
         </except>
        </all>
       </extension>
      </valueSet>

<literalValue>11</literalValue> <literalValue>12</literalValue> </union> </except> </all> </extension> </valueSet>

8.1.  ElementSetSpecs Translation

8.1. ElementSetSpecs Translation

   The translation of an ElementSetSpecs instance where the ellipsis
   ("...") is not present is the translation of the ElementSetSpec in
   the RootElementSetSpec.

The translation of an ElementSetSpecs instance where the ellipsis ("...") is not present is the translation of the ElementSetSpec in the RootElementSetSpec.

   The translation of an ElementSetSpecs instance where the ellipsis
   ("...") is present is the translation of the ElementSetSpec in the
   RootElementSetSpec followed by an element item with the [local name]
   "extension".  If an AdditionalElementSetSpec is present in the
   ElementSetSpecs, then the translation of the ElementSetSpec in the
   AdditionalElementSetSpec SHALL be added to the [children] of the
   <extension> element item.

The translation of an ElementSetSpecs instance where the ellipsis ("...") is present is the translation of the ElementSetSpec in the RootElementSetSpec followed by an element item with the [local name] "extension". If an AdditionalElementSetSpec is present in the ElementSetSpecs, then the translation of the ElementSetSpec in the AdditionalElementSetSpec SHALL be added to the [children] of the <extension> element item.

8.2.  ElementSetSpec Translation

8.2. ElementSetSpec Translation

   If an ElementSetSpec is of the "ALL Exclusions" form, then the
   translation of the ElementSetSpec is an element item with the
   [local name] "all".  An element item with the [local name] "except"
   SHALL be added to the [children] of the <all> element item.  The
   translation of the Elements instance in the Exclusions SHALL be added
   to the [children] of the <except> element item.

If an ElementSetSpec is of the "ALL Exclusions" form, then the translation of the ElementSetSpec is an element item with the [local name] "all". An element item with the [local name] "except" SHALL be added to the [children] of the <all> element item. The translation of the Elements instance in the Exclusions SHALL be added to the [children] of the <except> element item.

   If an ElementSetSpec is a Unions instance, then the translation of
   the ElementSetSpec is the translation of the Unions instance.

If an ElementSetSpec is a Unions instance, then the translation of the ElementSetSpec is the translation of the Unions instance.

   If a Unions instance has only one nested Intersections instance, then
   the translation of the Unions instance is the translation of that
   Intersections instance; otherwise, the translation of the Unions
   instance is an element item with the [local name] "union".  In the
   latter case, the translation of each nested Intersections instance
   SHALL be appended to the [children] of the <union> element item.

If a Unions instance has only one nested Intersections instance, then the translation of the Unions instance is the translation of that Intersections instance; otherwise, the translation of the Unions instance is an element item with the [local name] "union". In the latter case, the translation of each nested Intersections instance SHALL be appended to the [children] of the <union> element item.

   If an Intersections instance has only one nested IntersectionElements
   instance, then the translation of the Intersections instance is the
   translation of that IntersectionElements instance; otherwise, the
   translation of the Intersections instance is an element item with the
   [local name] "intersection".  In the latter case, the translation of
   each nested IntersectionElements instance SHALL be appended to the
   [children] of the <intersection> element item.

If an Intersections instance has only one nested IntersectionElements instance, then the translation of the Intersections instance is the translation of that IntersectionElements instance; otherwise, the translation of the Intersections instance is an element item with the [local name] "intersection". In the latter case, the translation of each nested IntersectionElements instance SHALL be appended to the [children] of the <intersection> element item.

Legg                          Experimental                     [Page 62]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 62] RFC 4912 Abstract Syntax Notation X July 2007

   If an IntersectionElements instance is of the "Elems Exclusions"
   form, then the translation of the IntersectionElements instance is an
   element item with the [local name] "all".  The translation of the
   Elements instance in the Elems SHALL be added to the [children] of
   the <all> element item.  An element item with the [local name]
   "except" SHALL be appended to the [children] of the <all> element
   item.  The translation of the Elements instance in the Exclusions
   SHALL be added to the [children] of the <except> element item.

If an IntersectionElements instance is of the "Elems Exclusions" form, then the translation of the IntersectionElements instance is an element item with the [local name] "all". The translation of the Elements instance in the Elems SHALL be added to the [children] of the <all> element item. An element item with the [local name] "except" SHALL be appended to the [children] of the <all> element item. The translation of the Elements instance in the Exclusions SHALL be added to the [children] of the <except> element item.

   If an IntersectionElements instance is an Elements instance, then the
   translation of the IntersectionElements instance is the translation
   of the Elements instance.

If an IntersectionElements instance is an Elements instance, then the translation of the IntersectionElements instance is the translation of the Elements instance.

   The translation of an Elements instance is the translation of the
   SubtypeElements, ObjectSetElements, or ElementSetSpec in the Elements
   instance.

The translation of an Elements instance is the translation of the SubtypeElements, ObjectSetElements, or ElementSetSpec in the Elements instance.

8.3.  SubtypeElements Translation

8.3. SubtypeElements Translation

   If a SubtypeElements instance is a SingleValue, then the translation
   of the SubtypeElements instance is the translation of the Value in
   the SingleValue, except that an attribute form of the Value
   translation SHALL NOT be used.

If a SubtypeElements instance is a SingleValue, then the translation of the SubtypeElements instance is the translation of the Value in the SingleValue, except that an attribute form of the Value translation SHALL NOT be used.

   If a SubtypeElements instance is a ContainedSubtype, then the
   translation of the SubtypeElements instance is an element item with
   the [local name] "includes".  The translation of the Type in the
   ContainedSubtype SHALL be added to the [children] or [attributes] of
   the <includes> element item.

If a SubtypeElements instance is a ContainedSubtype, then the translation of the SubtypeElements instance is an element item with the [local name] "includes". The translation of the Type in the ContainedSubtype SHALL be added to the [children] or [attributes] of the <includes> element item.

   If a SubtypeElements instance is a ValueRange, then the translation
   of the SubtypeElements instance is the translation of the ValueRange.

If a SubtypeElements instance is a ValueRange, then the translation of the SubtypeElements instance is the translation of the ValueRange.

   If a SubtypeElements instance is a SizeConstraint, then the
   translation of the SubtypeElements instance is an element item with
   the [local name] "size".  The translation of the Constraint in the
   SizeConstraint SHALL be added to the [children] of the <size> element
   item.

If a SubtypeElements instance is a SizeConstraint, then the translation of the SubtypeElements instance is an element item with the [local name] "size". The translation of the Constraint in the SizeConstraint SHALL be added to the [children] of the <size> element item.

   If a SubtypeElements instance is a TypeConstraint, then the
   translation of the SubtypeElements instance is an element item with
   the [local name] "typeConstraint".  The translation of the Type in
   the TypeConstraint SHALL be added to the [children] or [attributes]
   of the <typeConstraint> element item.

If a SubtypeElements instance is a TypeConstraint, then the translation of the SubtypeElements instance is an element item with the [local name] "typeConstraint". The translation of the Type in the TypeConstraint SHALL be added to the [children] or [attributes] of the <typeConstraint> element item.

Legg                          Experimental                     [Page 63]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 63] RFC 4912 Abstract Syntax Notation X July 2007

   If a SubtypeElements instance is a PermittedAlphabet, then the
   translation of the SubtypeElements instance is an element item with
   the [local name] "from".  The translation of the Constraint in the
   PermittedAlphabet SHALL be added to the [children] of the <from>
   element item.

If a SubtypeElements instance is a PermittedAlphabet, then the translation of the SubtypeElements instance is an element item with the [local name] "from". The translation of the Constraint in the PermittedAlphabet SHALL be added to the [children] of the <from> element item.

   If a SubtypeElements instance is an InnerTypeConstraints instance,
   then the translation of the SubtypeElements instance is the
   translation of the InnerTypeConstraints instance.

If a SubtypeElements instance is an InnerTypeConstraints instance, then the translation of the SubtypeElements instance is the translation of the InnerTypeConstraints instance.

   If a SubtypeElements instance is a PatternConstraint, then the
   translation of the SubtypeElements instance is an element item with
   the [local name] "pattern".  The translation of the Value in the
   PatternConstraint SHALL be added to the [children] or [attributes] of
   the <pattern> element item.

If a SubtypeElements instance is a PatternConstraint, then the translation of the SubtypeElements instance is an element item with the [local name] "pattern". The translation of the Value in the PatternConstraint SHALL be added to the [children] or [attributes] of the <pattern> element item.

8.3.1.  ValueRange Translation

8.3.1. ValueRange Translation

   The translation of a ValueRange is an element item with the
   [local name] "range".

The translation of a ValueRange is an element item with the [local name] "range".

   If the LowerEndpoint in the ValueRange is of the "LowerEndValue <"
   form, then an element item with the [local name] "minExclusive" SHALL
   be added to the [children] of the <range> element item.  If the
   LowerEndValue is a Value, then the translation of the Value SHALL be
   added to the [children] or [attributes] of the <minExclusive> element
   item.

If the LowerEndpoint in the ValueRange is of the "LowerEndValue <" form, then an element item with the [local name] "minExclusive" SHALL be added to the [children] of the <range> element item. If the LowerEndValue is a Value, then the translation of the Value SHALL be added to the [children] or [attributes] of the <minExclusive> element item.

   If the LowerEndpoint in the ValueRange is of the "LowerEndValue" form
   and the LowerEndValue is a Value, then an element item with the
   [local name] "minInclusive" SHALL be added to the [children] of the
   <range> element item.  The translation of the Value in the
   LowerEndValue SHALL be added to the [children] or [attributes] of the
   <minInclusive> element item.

If the LowerEndpoint in the ValueRange is of the "LowerEndValue" form and the LowerEndValue is a Value, then an element item with the [local name] "minInclusive" SHALL be added to the [children] of the <range> element item. The translation of the Value in the LowerEndValue SHALL be added to the [children] or [attributes] of the <minInclusive> element item.

   If the LowerEndpoint in the ValueRange is of the "LowerEndValue" form
   and the LowerEndValue is "MIN", then an element item with the
   [local name] "minInclusive" MAY be added to the [children] of the
   <range> element item.

If the LowerEndpoint in the ValueRange is of the "LowerEndValue" form and the LowerEndValue is "MIN", then an element item with the [local name] "minInclusive" MAY be added to the [children] of the <range> element item.

   If the UpperEndpoint in the ValueRange is of the "< UpperEndValue"
   form, then an element item with the [local name] "maxExclusive" SHALL
   be added to the [children] of the <range> element item.  If the
   UpperEndValue is a Value, then the translation of the Value SHALL be
   added to the [children] or [attributes] of the <maxExclusive> element
   item.

If the UpperEndpoint in the ValueRange is of the "< UpperEndValue" form, then an element item with the [local name] "maxExclusive" SHALL be added to the [children] of the <range> element item. If the UpperEndValue is a Value, then the translation of the Value SHALL be added to the [children] or [attributes] of the <maxExclusive> element item.

Legg                          Experimental                     [Page 64]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 64] RFC 4912 Abstract Syntax Notation X July 2007

   If the UpperEndpoint in the ValueRange is of the "UpperEndValue" form
   and the UpperEndValue is a Value, then an element item with the
   [local name] "maxInclusive" SHALL be added to the [children] of the
   <range> element item.  The translation of the Value in the
   UpperEndValue SHALL be added to the [children] or [attributes] of the
   <maxInclusive> element item.

If the UpperEndpoint in the ValueRange is of the "UpperEndValue" form and the UpperEndValue is a Value, then an element item with the [local name] "maxInclusive" SHALL be added to the [children] of the <range> element item. The translation of the Value in the UpperEndValue SHALL be added to the [children] or [attributes] of the <maxInclusive> element item.

   If the UpperEndpoint in the ValueRange is of the "UpperEndValue" form
   and the UpperEndValue is "MAX", then an element item with the
   [local name] "maxInclusive" MAY be added to the [children] of the
   <range> element item.

If the UpperEndpoint in the ValueRange is of the "UpperEndValue" form and the UpperEndValue is "MAX", then an element item with the [local name] "maxInclusive" MAY be added to the [children] of the <range> element item.

   Examples

Examples

      1..10

1..10

      <range>
       <minInclusive literalValue="1"/>
       <maxInclusive literalValue="10"/>
      </range>

<range> <minInclusive literalValue="1"/> <maxInclusive literalValue="10"/> </range>

      0..MAX

0..MAX

      <range>
       <minInclusive literalValue="0"/>
      </range>

<range> <minInclusive literalValue="0"/> </range>

      0<..<MAX

0<..<MAX

      <range>
       <minExclusive literalValue="0"/>
       <maxExclusive/>
      </range>

<range> <minExclusive literalValue="0"/> <maxExclusive/> </range>

8.3.2.  InnerTypeConstraints Translation

8.3.2. InnerTypeConstraints Translation

   The translation of an InnerTypeConstraints instance that has a
   SingleTypeConstraint is an element item with the [local name]
   "withComponent".  The translation of the Constraint in the
   SingleTypeConstraint SHALL be added to the [children] of the
   <withComponent> element item.

The translation of an InnerTypeConstraints instance that has a SingleTypeConstraint is an element item with the [local name] "withComponent". The translation of the Constraint in the SingleTypeConstraint SHALL be added to the [children] of the <withComponent> element item.

   The translation of an InnerTypeConstraints instance that has a
   MultipleTypeConstraints instance is an element item with the
   [local name] "withComponents".  If the MultipleTypeConstraints
   instance is a PartialSpecification, then an attribute item with the
   [local name] "partial" and the [normalized value] "true" or "1" SHALL
   be added to the [attributes] of the <withComponents> element item.

The translation of an InnerTypeConstraints instance that has a MultipleTypeConstraints instance is an element item with the [local name] "withComponents". If the MultipleTypeConstraints instance is a PartialSpecification, then an attribute item with the [local name] "partial" and the [normalized value] "true" or "1" SHALL be added to the [attributes] of the <withComponents> element item.

Legg                          Experimental                     [Page 65]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 65] RFC 4912 Abstract Syntax Notation X July 2007

   If the MultipleTypeConstraints instance is a FullSpecification, then
   an attribute item with the [local name] "partial" and the
   [normalized value] "false" or "0" MAY be added to the [attributes] of
   the <withComponents> element item.  The translation of each
   NamedConstraint nested in the TypeConstraints instance in the
   FullSpecification or PartialSpecification SHALL be appended to the
   [children] of the <withComponents> element item.

If the MultipleTypeConstraints instance is a FullSpecification, then an attribute item with the [local name] "partial" and the [normalized value] "false" or "0" MAY be added to the [attributes] of the <withComponents> element item. The translation of each NamedConstraint nested in the TypeConstraints instance in the FullSpecification or PartialSpecification SHALL be appended to the [children] of the <withComponents> element item.

   The translation of a NamedConstraint is an element item with the same
   [local name] (i.e., "attribute", "element", "component", "group",
   "member", or "simpleContent") as the translation of the NamedType
   corresponding to the identifier in the NamedConstraint.  An attribute
   item with the [local name] "name" SHALL be added to the [attributes]
   of the <attribute>, <element>, <component>, <group>, <member>, or
   <simpleContent> element item.  The [normalized value] of this
   attribute item is a qualified name for the expanded name of the
   NamedType corresponding to the identifier in the NamedConstraint.

The translation of a NamedConstraint is an element item with the same [local name] (i.e., "attribute", "element", "component", "group", "member", or "simpleContent") as the translation of the NamedType corresponding to the identifier in the NamedConstraint. An attribute item with the [local name] "name" SHALL be added to the [attributes] of the <attribute>, <element>, <component>, <group>, <member>, or <simpleContent> element item. The [normalized value] of this attribute item is a qualified name for the expanded name of the NamedType corresponding to the identifier in the NamedConstraint.

   If the PresenceConstraint in the ComponentConstraint in the
   NamedConstraint is not empty, then an attribute item with the
   [local name] "use" SHALL be added to the [attributes] of the
   <attribute>, <element>, <component>, <group>, <member>, or
   <simpleContent> element item.  The [normalized value] of this
   attribute item is the text of the PresenceConstraint with all letters
   downcased, i.e., either "present", "absent", or "optional".

If the PresenceConstraint in the ComponentConstraint in the NamedConstraint is not empty, then an attribute item with the [local name] "use" SHALL be added to the [attributes] of the <attribute>, <element>, <component>, <group>, <member>, or <simpleContent> element item. The [normalized value] of this attribute item is the text of the PresenceConstraint with all letters downcased, i.e., either "present", "absent", or "optional".

   If the ValueConstraint in the ComponentConstraint in the
   NamedConstraint is not empty, then the translation of the Constraint
   in the ValueConstraint SHALL be added to the [children] of the
   <attribute>, <element>, <component>, <group>, <member>, or
   <simpleContent> element item.

If the ValueConstraint in the ComponentConstraint in the NamedConstraint is not empty, then the translation of the Constraint in the ValueConstraint SHALL be added to the [children] of the <attribute>, <element>, <component>, <group>, <member>, or <simpleContent> element item.

9.  Translation of Object Classes

9. Translation of Object Classes

   The translation of an ObjectClass is the translation of the
   DefinedObjectClass, ObjectClassDefn, or ParameterizedObjectClass in
   the ObjectClass.

The translation of an ObjectClass is the translation of the DefinedObjectClass, ObjectClassDefn, or ParameterizedObjectClass in the ObjectClass.

   The translation of a ParameterizedObjectClass is described in
   Section 13.

The translation of a ParameterizedObjectClass is described in Section 13.

9.1.  DefinedObjectClass Translation

9.1. DefinedObjectClass Translation

   If a DefinedObjectClass is an objectclassreference (not a
   DummyReference), an ExternalObjectClassReference, or a
   UsefulObjectClassReference, then the translation of the

If a DefinedObjectClass is an objectclassreference (not a DummyReference), an ExternalObjectClassReference, or a UsefulObjectClassReference, then the translation of the

Legg                          Experimental                     [Page 66]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 66] RFC 4912 Abstract Syntax Notation X July 2007

   DefinedObjectClass is either the attribute form translation of an
   object class reference, or the element form translation of an object
   class reference.

DefinedObjectClass is either the attribute form translation of an object class reference, or the element form translation of an object class reference.

   The attribute form translation of an object class reference is an
   attribute item with the [local name] "class".  The [normalized value]
   of this attribute item is a qualified name for the expanded name of
   the referenced object class definition (see Section 5.1).  In the
   case of a UsefulObjectClassReference, the namespace name of the
   expanded name is "urn:ietf:params:xml:ns:asnx", and the local name is
   either "TYPE-IDENTIFIER" or "ABSTRACT-SYNTAX", as the case may be.
   The attribute form translation SHALL NOT be used if the expanded name
   is not distinct with respect to the current module and the modules
   referenced by its <import> element items (see Section 5.1).
   Otherwise, the translator is free to choose either the attribute form
   or element form translation for an object class reference.

The attribute form translation of an object class reference is an attribute item with the [local name] "class". The [normalized value] of this attribute item is a qualified name for the expanded name of the referenced object class definition (see Section 5.1). In the case of a UsefulObjectClassReference, the namespace name of the expanded name is "urn:ietf:params:xml:ns:asnx", and the local name is either "TYPE-IDENTIFIER" or "ABSTRACT-SYNTAX", as the case may be. The attribute form translation SHALL NOT be used if the expanded name is not distinct with respect to the current module and the modules referenced by its <import> element items (see Section 5.1). Otherwise, the translator is free to choose either the attribute form or element form translation for an object class reference.

   The element form translation of an object class reference is an
   element item with the [local name] "class".  An element item with the
   [local name] "annotation" MAY be added to the [children] of the
   <class> element item.  An attribute item with the [local name] "ref"
   SHALL be added to the [attributes] of the <class> element item.  The
   [normalized value] of this attribute item is a qualified name for the
   expanded name of the referenced object class definition.  In the case
   of a UsefulObjectClassReference, the namespace name of the expanded
   name is "urn:ietf:params:xml:ns:asnx" and the local name is either
   "TYPE-IDENTIFIER" or "ABSTRACT-SYNTAX", as the case may be.  If the
   expanded name is not distinct with respect to the current module and
   the modules referenced by its <import> element items, then an
   attribute item with the [local name] "context" SHALL be added to the
   [attributes] of the <class> element item; otherwise, if the module
   containing the referenced object class definition has a schema
   identity URI, then an attribute item with the [local name] "context"
   MAY be added to the [attributes] of the <class> element item.  The
   [normalized value] of this attribute item is the schema identity URI
   of the module containing the referenced object class definition.

The element form translation of an object class reference is an element item with the [local name] "class". An element item with the [local name] "annotation" MAY be added to the [children] of the <class> element item. An attribute item with the [local name] "ref" SHALL be added to the [attributes] of the <class> element item. The [normalized value] of this attribute item is a qualified name for the expanded name of the referenced object class definition. In the case of a UsefulObjectClassReference, the namespace name of the expanded name is "urn:ietf:params:xml:ns:asnx" and the local name is either "TYPE-IDENTIFIER" or "ABSTRACT-SYNTAX", as the case may be. If the expanded name is not distinct with respect to the current module and the modules referenced by its <import> element items, then an attribute item with the [local name] "context" SHALL be added to the [attributes] of the <class> element item; otherwise, if the module containing the referenced object class definition has a schema identity URI, then an attribute item with the [local name] "context" MAY be added to the [attributes] of the <class> element item. The [normalized value] of this attribute item is the schema identity URI of the module containing the referenced object class definition.

      Aside: If a reference name is not distinct, then the module
      containing the referenced definition must have a schema identity
      URI (see Section 5.1).

Aside: If a reference name is not distinct, then the module containing the referenced definition must have a schema identity URI (see Section 5.1).

   The translation of the DefinedObjectClass is the same whether the
   object class definition is referenced by an objectclassreference or
   an ExternalObjectClassReference.

The translation of the DefinedObjectClass is the same whether the object class definition is referenced by an objectclassreference or an ExternalObjectClassReference.

   If a DefinedObjectClass is a DummyReference, then the translation of
   the DefinedObjectClass is the translation of the DummyReference (see
   Section 13).

If a DefinedObjectClass is a DummyReference, then the translation of the DefinedObjectClass is the translation of the DummyReference (see Section 13).

Legg                          Experimental                     [Page 67]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 67] RFC 4912 Abstract Syntax Notation X July 2007

9.2.  ObjectClassDefn Translation

9.2. ObjectClassDefn Translation

   The translation of an ObjectClassDefn is an element item with the
   [local name] "class".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <class> element
   item.  The translation of each FieldSpec in the ObjectClassDefn SHALL
   be appended to the [children] of the <class> element item.

The translation of an ObjectClassDefn is an element item with the [local name] "class". An element item with the [local name] "annotation" MAY be added to the [children] of the <class> element item. The translation of each FieldSpec in the ObjectClassDefn SHALL be appended to the [children] of the <class> element item.

   The translation of a FieldSpec is the translation of the
   TypeFieldSpec, FixedTypeValueFieldSpec, VariableTypeValueFieldSpec,
   FixedTypeValueSetFieldSpec, VariableTypeValueSetFieldSpec,
   ObjectFieldSpec, or ObjectSetFieldSpec in the FieldSpec.

The translation of a FieldSpec is the translation of the TypeFieldSpec, FixedTypeValueFieldSpec, VariableTypeValueFieldSpec, FixedTypeValueSetFieldSpec, VariableTypeValueSetFieldSpec, ObjectFieldSpec, or ObjectSetFieldSpec in the FieldSpec.

9.2.1.  TypeFieldSpec Translation

9.2.1. TypeFieldSpec Translation

   The translation of a TypeFieldSpec where the TypeOptionalitySpec is
   absent is an element item with the [local name] "typeField".

The translation of a TypeFieldSpec where the TypeOptionalitySpec is absent is an element item with the [local name] "typeField".

   The translation of a TypeFieldSpec with a TypeOptionalitySpec of the
   "OPTIONAL" form is an element item with the [local name] "optional".
   An element item with the [local name] "typeField" SHALL be added to
   the [children] of the <optional> element item.

The translation of a TypeFieldSpec with a TypeOptionalitySpec of the "OPTIONAL" form is an element item with the [local name] "optional". An element item with the [local name] "typeField" SHALL be added to the [children] of the <optional> element item.

   The translation of a TypeFieldSpec with a TypeOptionalitySpec of the
   "DEFAULT Type" form is an element item with the [local name]
   "optional".  An element item with the [local name] "typeField" SHALL
   be added to the [children] of the <optional> element item.  An
   element item with the [local name] "default" SHALL be appended to the
   [children] of the <optional> element item.  The translation of the
   Type in the TypeOptionalitySpec SHALL be added to the [children] or
   [attributes] of the <default> element item.

The translation of a TypeFieldSpec with a TypeOptionalitySpec of the "DEFAULT Type" form is an element item with the [local name] "optional". An element item with the [local name] "typeField" SHALL be added to the [children] of the <optional> element item. An element item with the [local name] "default" SHALL be appended to the [children] of the <optional> element item. The translation of the Type in the TypeOptionalitySpec SHALL be added to the [children] or [attributes] of the <default> element item.

   An attribute item with the [local name] "name" SHALL be added to the
   [attributes] of the <typeField> element item.  The [normalized value]
   of this attribute item is the typefieldreference in the
   TypeFieldSpec, without the ampersand character ('&', U+0026).  An
   element item with the [local name] "annotation" MAY be added to the
   [children] of the <typeField> element item.

An attribute item with the [local name] "name" SHALL be added to the [attributes] of the <typeField> element item. The [normalized value] of this attribute item is the typefieldreference in the TypeFieldSpec, without the ampersand character ('&', U+0026). An element item with the [local name] "annotation" MAY be added to the [children] of the <typeField> element item.

   Example

Example

      CLASS {
          &One,
          &Two    OPTIONAL,
          &Three  DEFAULT OBJECT IDENTIFIER
      }

CLASS { &One, &Two OPTIONAL, &Three DEFAULT OBJECT IDENTIFIER }

Legg                          Experimental                     [Page 68]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 68] RFC 4912 Abstract Syntax Notation X July 2007

      <class>
       <typeField name="One"/>
       <optional>
        <typeField name="Two"/>
       </optional>
       <optional>
        <typeField name="Three"/>
        <default type="asnx:OBJECT-IDENTIFIER"/>
       </optional>
      </class>

<class> <typeField name="One"/> <optional> <typeField name="Two"/> </optional> <optional> <typeField name="Three"/> <default type="asnx:OBJECT-IDENTIFIER"/> </optional> </class>

9.2.2.  FixedTypeValueFieldSpec Translation

9.2.2. FixedTypeValueFieldSpec Translation

   The translation of a FixedTypeValueFieldSpec where the
   ValueOptionalitySpec is absent is an element item with the
   [local name] "valueField".

The translation of a FixedTypeValueFieldSpec where the ValueOptionalitySpec is absent is an element item with the [local name] "valueField".

   The translation of a FixedTypeValueFieldSpec with a
   ValueOptionalitySpec of the "OPTIONAL" form is an element item with
   the [local name] "optional".  An element item with the [local name]
   "valueField" SHALL be added to the [children] of the <optional>
   element item.

The translation of a FixedTypeValueFieldSpec with a ValueOptionalitySpec of the "OPTIONAL" form is an element item with the [local name] "optional". An element item with the [local name] "valueField" SHALL be added to the [children] of the <optional> element item.

   The translation of a FixedTypeValueFieldSpec with a
   ValueOptionalitySpec of the "DEFAULT Value" form is an element item
   with the [local name] "optional".  An element item with the
   [local name] "valueField" SHALL be added to the [children] of the
   <optional> element item.  An element item with the [local name]
   "default" SHALL be appended to the [children] of the <optional>
   element item.  The translation of the Value in the
   ValueOptionalitySpec SHALL be added to the [children] or [attributes]
   of the <default> element item.

The translation of a FixedTypeValueFieldSpec with a ValueOptionalitySpec of the "DEFAULT Value" form is an element item with the [local name] "optional". An element item with the [local name] "valueField" SHALL be added to the [children] of the <optional> element item. An element item with the [local name] "default" SHALL be appended to the [children] of the <optional> element item. The translation of the Value in the ValueOptionalitySpec SHALL be added to the [children] or [attributes] of the <default> element item.

   An attribute item with the [local name] "name" SHALL be added to the
   [attributes] of the <valueField> element item.  The
   [normalized value] of this attribute item is the valuefieldreference
   in the FixedTypeValueFieldSpec, without the ampersand character ('&',
   U+0026).  If the "UNIQUE" keyword is present, then an attribute item
   with the [local name] "unique" and [normalized value] "true" or "1"
   SHALL be added to the [attributes] of the <valueField> element item;
   otherwise, an attribute item with the [local name] "unique" and
   [normalized value] "false" or "0" MAY be added to the [attributes] of
   the <valueField> element item.  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <valueField>
   element item.  The translation of the Type in the
   FixedTypeValueFieldSpec SHALL be added to the [children] or
   [attributes] of the <valueField> element item.

An attribute item with the [local name] "name" SHALL be added to the [attributes] of the <valueField> element item. The [normalized value] of this attribute item is the valuefieldreference in the FixedTypeValueFieldSpec, without the ampersand character ('&', U+0026). If the "UNIQUE" keyword is present, then an attribute item with the [local name] "unique" and [normalized value] "true" or "1" SHALL be added to the [attributes] of the <valueField> element item; otherwise, an attribute item with the [local name] "unique" and [normalized value] "false" or "0" MAY be added to the [attributes] of the <valueField> element item. An element item with the [local name] "annotation" MAY be added to the [children] of the <valueField> element item. The translation of the Type in the FixedTypeValueFieldSpec SHALL be added to the [children] or [attributes] of the <valueField> element item.

Legg                          Experimental                     [Page 69]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 69] RFC 4912 Abstract Syntax Notation X July 2007

   Example

Example

      CLASS {
          &one    OBJECT IDENTIFIER UNIQUE,
          &two    BOOLEAN OPTIONAL,
          &three  INTEGER DEFAULT 0
      }

CLASS { &one OBJECT IDENTIFIER UNIQUE, &two BOOLEAN OPTIONAL, &three INTEGER DEFAULT 0 }

      <class>
       <valueField name="one" unique="true"
                   type="asnx:OBJECT-IDENTIFIER"/>
       <optional>
        <valueField name="two" type="asnx:BOOLEAN"/>
       </optional>
       <optional>
        <valueField name="three" type="asnx:INTEGER"/>
        <default literalValue="0"/>
       </optional>
      </class>

<class> <valueField name="one" unique="true" type="asnx:OBJECT-IDENTIFIER"/> <optional> <valueField name="two" type="asnx:BOOLEAN"/> </optional> <optional> <valueField name="three" type="asnx:INTEGER"/> <default literalValue="0"/> </optional> </class>

9.2.3.  FixedTypeValueSetFieldSpec Translation

9.2.3. FixedTypeValueSetFieldSpec Translation

   The translation of a FixedTypeValueSetFieldSpec where the
   ValueSetOptionalitySpec is absent is an element item with the
   [local name] "valueSetField".

The translation of a FixedTypeValueSetFieldSpec where the ValueSetOptionalitySpec is absent is an element item with the [local name] "valueSetField".

   The translation of a FixedTypeValueSetFieldSpec with a
   ValueSetOptionalitySpec of the "OPTIONAL" form is an element item
   with the [local name] "optional".  An element item with the
   [local name] "valueSetField" SHALL be added to the [children] of the
   <optional> element item.

The translation of a FixedTypeValueSetFieldSpec with a ValueSetOptionalitySpec of the "OPTIONAL" form is an element item with the [local name] "optional". An element item with the [local name] "valueSetField" SHALL be added to the [children] of the <optional> element item.

   The translation of a FixedTypeValueSetFieldSpec with a
   ValueSetOptionalitySpec of the "DEFAULT ValueSet" form is an element
   item with the [local name] "optional".  An element item with the
   [local name] "valueSetField" SHALL be added to the [children] of the
   <optional> element item.  An element item with the [local name]
   "default" SHALL be appended to the [children] of the <optional>
   element item.  The translation of the ValueSet in the
   ValueSetOptionalitySpec SHALL be added to the [children] of the
   <default> element item.

The translation of a FixedTypeValueSetFieldSpec with a ValueSetOptionalitySpec of the "DEFAULT ValueSet" form is an element item with the [local name] "optional". An element item with the [local name] "valueSetField" SHALL be added to the [children] of the <optional> element item. An element item with the [local name] "default" SHALL be appended to the [children] of the <optional> element item. The translation of the ValueSet in the ValueSetOptionalitySpec SHALL be added to the [children] of the <default> element item.

   An attribute item with the [local name] "name" SHALL be added to the
   [attributes] of the <valueSetField> element item.  The
   [normalized value] of this attribute item is the
   valuesetfieldreference in the FixedTypeValueSetFieldSpec, without the
   ampersand character ('&', U+0026).  An element item with the
   [local name] "annotation" MAY be added to the [children] of the

An attribute item with the [local name] "name" SHALL be added to the [attributes] of the <valueSetField> element item. The [normalized value] of this attribute item is the valuesetfieldreference in the FixedTypeValueSetFieldSpec, without the ampersand character ('&', U+0026). An element item with the [local name] "annotation" MAY be added to the [children] of the

Legg                          Experimental                     [Page 70]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 70] RFC 4912 Abstract Syntax Notation X July 2007

   <valueSetField> element item.  The translation of the Type in the
   FixedTypeValueSetFieldSpec SHALL be added to the [children] or
   [attributes] of the <valueSetField> element item.

<valueSetField> element item. The translation of the Type in the FixedTypeValueSetFieldSpec SHALL be added to the [children] or [attributes] of the <valueSetField> element item.

   Example

Example

      CLASS {
          &One    UTF8String,
          &Two    BOOLEAN OPTIONAL,
          &Three  INTEGER DEFAULT { 1 | 2 }
      }

CLASS { &One UTF8String, &Two BOOLEAN OPTIONAL, &Three INTEGER DEFAULT { 1 | 2 } }

      <class>
       <valueSetField name="One" type="asnx:UTF8String"/>
       <optional>
        <valueSetField name="Two" type="asnx:BOOLEAN"/>
       </optional>
       <optional>
        <valueSetField name="Three" type="asnx:INTEGER"/>
        <default>
         <valueSet>
          <union>
           <literalValue>1</literalValue>
           <literalValue>2</literalValue>
          </union>
         </valueSet>
        </default>
       </optional>
      </class>

<class> <valueSetField name="One" type="asnx:UTF8String"/> <optional> <valueSetField name="Two" type="asnx:BOOLEAN"/> </optional> <optional> <valueSetField name="Three" type="asnx:INTEGER"/> <default> <valueSet> <union> <literalValue>1</literalValue> <literalValue>2</literalValue> </union> </valueSet> </default> </optional> </class>

9.2.4.  VariableTypeValueFieldSpec Translation

9.2.4. VariableTypeValueFieldSpec Translation

   The translation of a VariableTypeValueFieldSpec where the
   ValueOptionalitySpec is absent is an element item with the
   [local name] "valueField".

The translation of a VariableTypeValueFieldSpec where the ValueOptionalitySpec is absent is an element item with the [local name] "valueField".

   The translation of a VariableTypeValueFieldSpec with a
   ValueOptionalitySpec of the "OPTIONAL" form is an element item with
   the [local name] "optional".  An element item with the [local name]
   "valueField" SHALL be added to the [children] of the <optional>
   element item.

The translation of a VariableTypeValueFieldSpec with a ValueOptionalitySpec of the "OPTIONAL" form is an element item with the [local name] "optional". An element item with the [local name] "valueField" SHALL be added to the [children] of the <optional> element item.

   The translation of a VariableTypeValueFieldSpec with a
   ValueOptionalitySpec of the "DEFAULT Value" form is an element item
   with the [local name] "optional".  An element item with the
   [local name] "valueField" SHALL be added to the [children] of the
   <optional> element item.  An element item with the [local name]
   "default" SHALL be appended to the [children] of the <optional>

The translation of a VariableTypeValueFieldSpec with a ValueOptionalitySpec of the "DEFAULT Value" form is an element item with the [local name] "optional". An element item with the [local name] "valueField" SHALL be added to the [children] of the <optional> element item. An element item with the [local name] "default" SHALL be appended to the [children] of the <optional>

Legg                          Experimental                     [Page 71]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 71] RFC 4912 Abstract Syntax Notation X July 2007

   element item.  The translation of the Value in the
   ValueOptionalitySpec SHALL be added to the [children] or [attributes]
   of the <default> element item.

element item. The translation of the Value in the ValueOptionalitySpec SHALL be added to the [children] or [attributes] of the <default> element item.

   An attribute item with the [local name] "name" SHALL be added to the
   [attributes] of the <valueField> element item.  The
   [normalized value] of this attribute item is the valuefieldreference
   in the VariableTypeValueFieldSpec, without the ampersand character
   ('&', U+0026).  An element item with the [local name] "annotation"
   MAY be added to the [children] of the <valueField> element item.  An
   element item with the [local name] "typeFromField" SHALL be appended
   to the [children] of the <valueField> element item.  The translation
   of the FieldName in the VariableTypeValueFieldSpec SHALL be added to
   the [children] or [attributes] of the <typeFromField> element item.

An attribute item with the [local name] "name" SHALL be added to the [attributes] of the <valueField> element item. The [normalized value] of this attribute item is the valuefieldreference in the VariableTypeValueFieldSpec, without the ampersand character ('&', U+0026). An element item with the [local name] "annotation" MAY be added to the [children] of the <valueField> element item. An element item with the [local name] "typeFromField" SHALL be appended to the [children] of the <valueField> element item. The translation of the FieldName in the VariableTypeValueFieldSpec SHALL be added to the [children] or [attributes] of the <typeFromField> element item.

   Example

Example

      CLASS {
          &Syntax DEFAULT INTEGER,
          &one    &Syntax,
          &two    &Syntax OPTIONAL,
          &three  &Syntax DEFAULT 0
      }

CLASS { &Syntax DEFAULT INTEGER, &one &Syntax, &two &Syntax OPTIONAL, &three &Syntax DEFAULT 0 }

      <class>
       <optional>
        <typeField name="Syntax"/>
        <default type="asnx:INTEGER"/>
       </optional>
       <valueField name="one">
        <typeFromField fieldName="Syntax"/>
       </valueField>
       <optional>
        <valueField name="two">
         <typeFromField fieldName="Syntax"/>
        </valueField>
       </optional>
       <optional>
        <valueField name="three">
         <typeFromField fieldName="Syntax"/>
        </valueField>
        <default literalValue="0"/>
       </optional>
      </class>

<class> <optional> <typeField name="Syntax"/> <default type="asnx:INTEGER"/> </optional> <valueField name="one"> <typeFromField fieldName="Syntax"/> </valueField> <optional> <valueField name="two"> <typeFromField fieldName="Syntax"/> </valueField> </optional> <optional> <valueField name="three"> <typeFromField fieldName="Syntax"/> </valueField> <default literalValue="0"/> </optional> </class>

Legg                          Experimental                     [Page 72]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 72] RFC 4912 Abstract Syntax Notation X July 2007

9.2.5.  VariableTypeValueSetFieldSpec Translation

9.2.5. VariableTypeValueSetFieldSpec Translation

   The translation of a VariableTypeValueSetFieldSpec where the
   ValueSetOptionalitySpec is absent is an element item with the
   [local name] "valueSetField".

The translation of a VariableTypeValueSetFieldSpec where the ValueSetOptionalitySpec is absent is an element item with the [local name] "valueSetField".

   The translation of a VariableTypeValueSetFieldSpec with a
   ValueSetOptionalitySpec of the "OPTIONAL" form is an element item
   with the [local name] "optional".  An element item with the
   [local name] "valueSetField" SHALL be added to the [children] of the
   <optional> element item.

The translation of a VariableTypeValueSetFieldSpec with a ValueSetOptionalitySpec of the "OPTIONAL" form is an element item with the [local name] "optional". An element item with the [local name] "valueSetField" SHALL be added to the [children] of the <optional> element item.

   The translation of a VariableTypeValueSetFieldSpec with a
   ValueSetOptionalitySpec of the "DEFAULT ValueSet" form is an element
   item with the [local name] "optional".  An element item with the
   [local name] "valueSetField" SHALL be added to the [children] of the
   <optional> element item.  An element item with the [local name]
   "default" SHALL be appended to the [children] of the <optional>
   element item.  The translation of the ValueSet in the
   ValueSetOptionalitySpec SHALL be added to the [children] of the
   <default> element item.

The translation of a VariableTypeValueSetFieldSpec with a ValueSetOptionalitySpec of the "DEFAULT ValueSet" form is an element item with the [local name] "optional". An element item with the [local name] "valueSetField" SHALL be added to the [children] of the <optional> element item. An element item with the [local name] "default" SHALL be appended to the [children] of the <optional> element item. The translation of the ValueSet in the ValueSetOptionalitySpec SHALL be added to the [children] of the <default> element item.

   An attribute item with the [local name] "name" SHALL be added to the
   [attributes] of the <valueSetField> element item.  The
   [normalized value] of this attribute item is the
   valuesetfieldreference in the VariableTypeValueSetFieldSpec, without
   the ampersand character ('&', U+0026).  An element item with the
   [local name] "annotation" MAY be added to the [children] of the
   <valueSetField> element item.  An element item with the [local name]
   "typeFromField" SHALL be appended to the [children] of the
   <valueSetField> element item.  The translation of the FieldName in
   the VariableTypeValueSetFieldSpec SHALL be added to the [children] or
   [attributes] of the <typeFromField> element item.

An attribute item with the [local name] "name" SHALL be added to the [attributes] of the <valueSetField> element item. The [normalized value] of this attribute item is the valuesetfieldreference in the VariableTypeValueSetFieldSpec, without the ampersand character ('&', U+0026). An element item with the [local name] "annotation" MAY be added to the [children] of the <valueSetField> element item. An element item with the [local name] "typeFromField" SHALL be appended to the [children] of the <valueSetField> element item. The translation of the FieldName in the VariableTypeValueSetFieldSpec SHALL be added to the [children] or [attributes] of the <typeFromField> element item.

   Example

Example

      CLASS {
          &Syntax DEFAULT INTEGER,
          &One    &Syntax,
          &Two    &Syntax OPTIONAL,
          &Three  &Syntax DEFAULT { 1 | 2 }
      }

CLASS { &Syntax DEFAULT INTEGER, &One &Syntax, &Two &Syntax OPTIONAL, &Three &Syntax DEFAULT { 1 | 2 } }

      <class>
       <optional>
        <typeField name="Syntax"/>
        <default type="asnx:INTEGER"/>
       </optional>

<class> <optional> <typeField name="Syntax"/> <default type="asnx:INTEGER"/> </optional>

Legg                          Experimental                     [Page 73]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 73] RFC 4912 Abstract Syntax Notation X July 2007

       <valueSetField name="One">
        <typeFromField fieldName="Syntax"/>
       </valueSetField>
       <optional>
        <valueSetField name="Two">
         <typeFromField fieldName="Syntax"/>
        </valueSetField>
       </optional>
       <optional>
        <valueSetField name="Three">
         <typeFromField fieldName="Syntax"/>
        </valueSetField>
        <default>
         <valueSet>
          <union>
           <literalValue>1</literalValue>
           <literalValue>2</literalValue>
          </union>
         </valueSet>
        </default>
       </optional>
      </class>

<valueSetField name="One"> <typeFromField fieldName="Syntax"/> </valueSetField> <optional> <valueSetField name="Two"> <typeFromField fieldName="Syntax"/> </valueSetField> </optional> <optional> <valueSetField name="Three"> <typeFromField fieldName="Syntax"/> </valueSetField> <default> <valueSet> <union> <literalValue>1</literalValue> <literalValue>2</literalValue> </union> </valueSet> </default> </optional> </class>

9.2.6.  FieldName Translation

9.2.6. FieldName Translation

   The translation of a FieldName is either, at the translator's option,
   an attribute item with the [local name] "fieldName" added to the
   [attributes] of the enclosing element item, or an element item with
   the [local name] "fieldName" appended to the [children] of the
   enclosing element item.

The translation of a FieldName is either, at the translator's option, an attribute item with the [local name] "fieldName" added to the [attributes] of the enclosing element item, or an element item with the [local name] "fieldName" appended to the [children] of the enclosing element item.

   The [normalized value] of the fieldName attribute item is a solidus
   ('/', U+002F) separated list of the PrimitiveFieldName instances in
   the FieldName, without the ampersand characters ('&', U+0026).
   Leading and/or trailing white space characters MAY be added to the
   [normalized value] of the attribute item.  White space characters MAY
   be added immediately before and/or after any solidus character ('/',
   U+002F) in the [normalized value].

The [normalized value] of the fieldName attribute item is a solidus ('/', U+002F) separated list of the PrimitiveFieldName instances in the FieldName, without the ampersand characters ('&', U+0026). Leading and/or trailing white space characters MAY be added to the [normalized value] of the attribute item. White space characters MAY be added immediately before and/or after any solidus character ('/', U+002F) in the [normalized value].

   The [children] property of the <fieldName> element item is set to the
   sequence of character items for a solidus ('/', U+002F) separated
   list of the PrimitiveFieldName instances in the FieldName, without
   the ampersand characters ('&', U+0026).  Leading and/or trailing
   white space character items MAY be added to the [children] of the
   <fieldName> element item.  White space character items MAY be added
   immediately before and/or after any character item for the solidus
   character ('/', U+002F).

The [children] property of the <fieldName> element item is set to the sequence of character items for a solidus ('/', U+002F) separated list of the PrimitiveFieldName instances in the FieldName, without the ampersand characters ('&', U+0026). Leading and/or trailing white space character items MAY be added to the [children] of the <fieldName> element item. White space character items MAY be added immediately before and/or after any character item for the solidus character ('/', U+002F).

Legg                          Experimental                     [Page 74]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 74] RFC 4912 Abstract Syntax Notation X July 2007

   Example

Example

      &Linked.&ArgumentType

&Linked.&ArgumentType

      <fieldName>Linked/ArgumentType</fieldName>

<fieldName>Linked/ArgumentType</fieldName>

9.2.7.  ObjectFieldSpec Translation

9.2.7. ObjectFieldSpec Translation

   The translation of an ObjectFieldSpec where the ObjectOptionalitySpec
   is absent is an element item with the [local name] "objectField".

The translation of an ObjectFieldSpec where the ObjectOptionalitySpec is absent is an element item with the [local name] "objectField".

   The translation of an ObjectFieldSpec with an ObjectOptionalitySpec
   of the "OPTIONAL" form is an element item with the [local name]
   "optional".  An element item with the [local name] "objectField"
   SHALL be added to the [children] of the <optional> element item.

The translation of an ObjectFieldSpec with an ObjectOptionalitySpec of the "OPTIONAL" form is an element item with the [local name] "optional". An element item with the [local name] "objectField" SHALL be added to the [children] of the <optional> element item.

   The translation of an ObjectFieldSpec with an ObjectOptionalitySpec
   of the "DEFAULT Object" form is an element item with the [local name]
   "optional".  An element item with the [local name] "objectField"
   SHALL be added to the [children] of the <optional> element item.  An
   element item with the [local name] "default" SHALL be appended to the
   [children] of the <optional> element item.  The translation of the
   Object in the ObjectOptionalitySpec SHALL be added to the [children]
   or [attributes] of the <default> element item.

The translation of an ObjectFieldSpec with an ObjectOptionalitySpec of the "DEFAULT Object" form is an element item with the [local name] "optional". An element item with the [local name] "objectField" SHALL be added to the [children] of the <optional> element item. An element item with the [local name] "default" SHALL be appended to the [children] of the <optional> element item. The translation of the Object in the ObjectOptionalitySpec SHALL be added to the [children] or [attributes] of the <default> element item.

   An attribute item with the [local name] "name" SHALL be added to the
   [attributes] of the <objectField> element item.  The
   [normalized value] of this attribute item is the objectfieldreference
   in the ObjectFieldSpec, without the ampersand character ('&',
   U+0026).  An element item with the [local name] "annotation" MAY be
   added to the [children] of the <objectField> element item.  The
   translation of the DefinedObjectClass in the ObjectFieldSpec SHALL be
   added to the [children] or [attributes] of the <objectField> element
   item.

An attribute item with the [local name] "name" SHALL be added to the [attributes] of the <objectField> element item. The [normalized value] of this attribute item is the objectfieldreference in the ObjectFieldSpec, without the ampersand character ('&', U+0026). An element item with the [local name] "annotation" MAY be added to the [children] of the <objectField> element item. The translation of the DefinedObjectClass in the ObjectFieldSpec SHALL be added to the [children] or [attributes] of the <objectField> element item.

   Example

Example

      CLASS {
          &one    TYPE-IDENTIFIER,
          &two    ABSTRACT-SYNTAX OPTIONAL,
          &three  TYPE-IDENTIFIER DEFAULT myObject
      }

CLASS { &one TYPE-IDENTIFIER, &two ABSTRACT-SYNTAX OPTIONAL, &three TYPE-IDENTIFIER DEFAULT myObject }

Legg                          Experimental                     [Page 75]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 75] RFC 4912 Abstract Syntax Notation X July 2007

      <class>
       <objectField name="one" class="asnx:TYPE-IDENTIFIER"/>
       <optional>
        <objectField name="two" class="asnx:ABSTRACT-SYNTAX"/>
       </optional>
       <optional>
        <objectField name="three" class="asnx:TYPE-IDENTIFIER"/>
        <default object="tns:myObject"/>
       </optional>
      </class>

<class> <objectField name="one" class="asnx:TYPE-IDENTIFIER"/> <optional> <objectField name="two" class="asnx:ABSTRACT-SYNTAX"/> </optional> <optional> <objectField name="three" class="asnx:TYPE-IDENTIFIER"/> <default object="tns:myObject"/> </optional> </class>

9.2.8.  ObjectSetFieldSpec Translation

9.2.8. ObjectSetFieldSpec Translation

   The translation of an ObjectSetFieldSpec where the
   ObjectSetOptionalitySpec is absent is an element item with the
   [local name] "objectSetField".

The translation of an ObjectSetFieldSpec where the ObjectSetOptionalitySpec is absent is an element item with the [local name] "objectSetField".

   The translation of an ObjectSetFieldSpec with an
   ObjectSetOptionalitySpec of the "OPTIONAL" form is an element item
   with the [local name] "optional".  An element item with the
   [local name] "objectSetField" SHALL be added to the [children] of the
   <optional> element item.

The translation of an ObjectSetFieldSpec with an ObjectSetOptionalitySpec of the "OPTIONAL" form is an element item with the [local name] "optional". An element item with the [local name] "objectSetField" SHALL be added to the [children] of the <optional> element item.

   The translation of an ObjectSetFieldSpec with an
   ObjectSetOptionalitySpec of the "DEFAULT ObjectSet" form is an
   element item with the [local name] "optional".  An element item with
   the [local name] "objectSetField" SHALL be added to the [children] of
   the <optional> element item.  An element item with the [local name]
   "default" SHALL be appended to the [children] of the <optional>
   element item.  The translation of the ObjectSet in the
   ObjectSetOptionalitySpec SHALL be added to the [children] or
   [attributes] of the <default> element item.

The translation of an ObjectSetFieldSpec with an ObjectSetOptionalitySpec of the "DEFAULT ObjectSet" form is an element item with the [local name] "optional". An element item with the [local name] "objectSetField" SHALL be added to the [children] of the <optional> element item. An element item with the [local name] "default" SHALL be appended to the [children] of the <optional> element item. The translation of the ObjectSet in the ObjectSetOptionalitySpec SHALL be added to the [children] or [attributes] of the <default> element item.

   An attribute item with the [local name] "name" SHALL be added to the
   [attributes] of the <objectSetField> element item.  The
   [normalized value] of this attribute item is the
   objectsetfieldreference in the ObjectSetFieldSpec, without the
   ampersand character ('&', U+0026).  An element item with the
   [local name] "annotation" MAY be added to the [children] of the
   <objectSetField> element item.  The translation of the
   DefinedObjectClass in the ObjectSetFieldSpec SHALL be added to the
   [children] or [attributes] of the <objectSetField> element item.

An attribute item with the [local name] "name" SHALL be added to the [attributes] of the <objectSetField> element item. The [normalized value] of this attribute item is the objectsetfieldreference in the ObjectSetFieldSpec, without the ampersand character ('&', U+0026). An element item with the [local name] "annotation" MAY be added to the [children] of the <objectSetField> element item. The translation of the DefinedObjectClass in the ObjectSetFieldSpec SHALL be added to the [children] or [attributes] of the <objectSetField> element item.

Legg                          Experimental                     [Page 76]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 76] RFC 4912 Abstract Syntax Notation X July 2007

   Example

Example

      CLASS {
          &One    TYPE-IDENTIFIER,
          &Two    ABSTRACT-SYNTAX OPTIONAL,
          &Three  TYPE-IDENTIFIER DEFAULT { myObject }
      }

CLASS { &One TYPE-IDENTIFIER, &Two ABSTRACT-SYNTAX OPTIONAL, &Three TYPE-IDENTIFIER DEFAULT { myObject } }

      <class>
       <objectSetField name="One" class="asnx:TYPE-IDENTIFIER"/>
       <optional>
        <objectSetField name="Two" class="asnx:ABSTRACT-SYNTAX"/>
       </optional>
       <optional>
        <objectSetField name="Three" class="asnx:TYPE-IDENTIFIER"/>
        <default>
         <objectSet>
          <object ref="tns:myObject"/>
         </objectSet>
        </default>
       </optional>
      </class>

<class> <objectSetField name="One" class="asnx:TYPE-IDENTIFIER"/> <optional> <objectSetField name="Two" class="asnx:ABSTRACT-SYNTAX"/> </optional> <optional> <objectSetField name="Three" class="asnx:TYPE-IDENTIFIER"/> <default> <objectSet> <object ref="tns:myObject"/> </objectSet> </default> </optional> </class>

10.  Translation of Objects

10. Translation of Objects

   The translation of an Object is the translation of the DefinedObject,
   ObjectDefn, ObjectFromObject, or ParameterizedObject in the Object.

The translation of an Object is the translation of the DefinedObject, ObjectDefn, ObjectFromObject, or ParameterizedObject in the Object.

   The translation of a ParameterizedObject is described in Section 13.

The translation of a ParameterizedObject is described in Section 13.

10.1.  DefinedObject Translation

10.1. DefinedObject Translation

   If a DefinedObject is an objectreference (not a DummyReference) or an
   ExternalObjectReference, then the translation of the DefinedObject is
   either the attribute form translation of an object reference, or the
   element form translation of an object reference.

If a DefinedObject is an objectreference (not a DummyReference) or an ExternalObjectReference, then the translation of the DefinedObject is either the attribute form translation of an object reference, or the element form translation of an object reference.

   The attribute form translation of an object reference is an attribute
   item with the [local name] "object".  The [normalized value] of this
   attribute item is a qualified name for the expanded name of the
   referenced object definition (see Section 5.1).  The attribute form
   translation SHALL NOT be used if this expanded name is not distinct
   with respect to the current module and the modules referenced by its
   <import> element items (see Section 5.1).

The attribute form translation of an object reference is an attribute item with the [local name] "object". The [normalized value] of this attribute item is a qualified name for the expanded name of the referenced object definition (see Section 5.1). The attribute form translation SHALL NOT be used if this expanded name is not distinct with respect to the current module and the modules referenced by its <import> element items (see Section 5.1).

   The element form translation of an object reference is an element
   item with the [local name] "object".  An element item with the
   [local name] "annotation" MAY be added to the [children] of the

The element form translation of an object reference is an element item with the [local name] "object". An element item with the [local name] "annotation" MAY be added to the [children] of the

Legg                          Experimental                     [Page 77]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 77] RFC 4912 Abstract Syntax Notation X July 2007

   <object> element item.  An attribute item with the [local name] "ref"
   SHALL be added to the [attributes] of the <object> element item.  The
   [normalized value] of this attribute item is a qualified name for the
   expanded name of the referenced object definition.  If this expanded
   name is not distinct with respect to the current module and the
   modules referenced by its <import> element items, then an attribute
   item with the [local name] "context" SHALL be added to the
   [attributes] of the <object> element item; otherwise, if the module
   containing the referenced object definition has a schema identity
   URI, then an attribute item with the [local name] "context" MAY be
   added to the [attributes] of the <object> element item.  The
   [normalized value] of this attribute item is the schema identity URI
   of the module containing the referenced object definition.

<object> element item. An attribute item with the [local name] "ref" SHALL be added to the [attributes] of the <object> element item. The [normalized value] of this attribute item is a qualified name for the expanded name of the referenced object definition. If this expanded name is not distinct with respect to the current module and the modules referenced by its <import> element items, then an attribute item with the [local name] "context" SHALL be added to the [attributes] of the <object> element item; otherwise, if the module containing the referenced object definition has a schema identity URI, then an attribute item with the [local name] "context" MAY be added to the [attributes] of the <object> element item. The [normalized value] of this attribute item is the schema identity URI of the module containing the referenced object definition.

      Aside: If a reference name is not distinct, then the module
      containing the referenced definition must have a schema identity
      URI (see Section 5.1).

Aside: If a reference name is not distinct, then the module containing the referenced definition must have a schema identity URI (see Section 5.1).

   The translation of the DefinedObject is the same whether the object
   definition is referenced by an objectreference or an
   ExternalObjectReference.

The translation of the DefinedObject is the same whether the object definition is referenced by an objectreference or an ExternalObjectReference.

   Usually the translator is free to choose either the attribute form or
   element form translation for an object reference; however, in some
   contexts the attribute form is explicitly disallowed.

Usually the translator is free to choose either the attribute form or element form translation for an object reference; however, in some contexts the attribute form is explicitly disallowed.

   If a DefinedObject is a DummyReference, then the translation of the
   DefinedObject is the translation of the DummyReference (see
   Section 13).

If a DefinedObject is a DummyReference, then the translation of the DefinedObject is the translation of the DummyReference (see Section 13).

10.2.  ObjectDefn Translation

10.2. ObjectDefn Translation

   An ObjectDefn that is a DefinedSyntax is first converted to the
   equivalent DefaultSyntax and then translated.

An ObjectDefn that is a DefinedSyntax is first converted to the equivalent DefaultSyntax and then translated.

   The translation of an ObjectDefn is an element item with the
   [local name] "object".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <object> element
   item.  The translation of each FieldSetting in the DefaultSyntax in
   the ObjectClassDefn SHALL be appended to the [children] of the
   <object> element item.

The translation of an ObjectDefn is an element item with the [local name] "object". An element item with the [local name] "annotation" MAY be added to the [children] of the <object> element item. The translation of each FieldSetting in the DefaultSyntax in the ObjectClassDefn SHALL be appended to the [children] of the <object> element item.

   The translation of a FieldSetting is an element item with the
   [local name] "field".  An attribute item with the [local name] "name"
   SHALL be added to the [attributes] of the <field> element item.  The
   [normalized value] of this attribute item is the PrimitiveFieldName
   in the FieldSetting, without the ampersand character ('&', U+0026).
   The translation of the Type, Value, ValueSet, Object, or ObjectSet in

The translation of a FieldSetting is an element item with the [local name] "field". An attribute item with the [local name] "name" SHALL be added to the [attributes] of the <field> element item. The [normalized value] of this attribute item is the PrimitiveFieldName in the FieldSetting, without the ampersand character ('&', U+0026). The translation of the Type, Value, ValueSet, Object, or ObjectSet in

Legg                          Experimental                     [Page 78]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 78] RFC 4912 Abstract Syntax Notation X July 2007

   the Setting in the FieldSetting SHALL be added to the [children] or
   [attributes] of the <field> element item.

the Setting in the FieldSetting SHALL be added to the [children] or [attributes] of the <field> element item.

   Example

Example

      -- This is the governing object class.
      ONE-OF-EVERYTHING ::= CLASS {
          &One,
          &two    INTEGER,
          &Three  INTEGER,
          &four   TYPE-IDENTIFIER,
          &Five   TYPE-IDENTIFIER
      }

-- This is the governing object class. ONE-OF-EVERYTHING ::= CLASS { &One, &two INTEGER, &Three INTEGER, &four TYPE-IDENTIFIER, &Five TYPE-IDENTIFIER }

      <namedClass name="ONE-OF-EVERYTHING">
       <class>
        <typeField name="One"/>
        <valueField name="two" type="asnx:INTEGER"/>
        <valueSetField name="Three" type="asnx:INTEGER"/>
        <objectField name="four" class="asnx:TYPE-IDENTIFIER"/>
        <objectSetField name="Five" class="asnx:TYPE-IDENTIFIER"/>
       </class>
      </namedClass>

<namedClass name="ONE-OF-EVERYTHING"> <class> <typeField name="One"/> <valueField name="two" type="asnx:INTEGER"/> <valueSetField name="Three" type="asnx:INTEGER"/> <objectField name="four" class="asnx:TYPE-IDENTIFIER"/> <objectSetField name="Five" class="asnx:TYPE-IDENTIFIER"/> </class> </namedClass>

      mixedBag ONE-OF-EVERYTHING ::= {
          &One    BOOLEAN,
          &two    99,
          &Three  { 1 | 2 },
          &four   myObject,
          &Five   { myObject }
      }

mixedBag ONE-OF-EVERYTHING ::= { &One BOOLEAN, &two 99, &Three { 1 | 2 }, &four myObject, &Five { myObject } }

      <namedObject name="mixedBag" class="tns:ONE-OF-EVERYTHING">
       <object>
        <field name="One" type="asnx:BOOLEAN"/>
        <field name="two" literalValue="99"/>
        <field name="Three">
         <valueSet>
          <union>
           <literalValue>1</literalValue>
           <literalValue>2</literalValue>
          </union>
         </valueSet>
        </field>
        <field name="four" object="tns:myObject"/>
        <field name="Five">
         <objectSet>
          <object ref="tns:myObject"/>

<namedObject name="mixedBag" class="tns:ONE-OF-EVERYTHING"> <object> <field name="One" type="asnx:BOOLEAN"/> <field name="two" literalValue="99"/> <field name="Three"> <valueSet> <union> <literalValue>1</literalValue> <literalValue>2</literalValue> </union> </valueSet> </field> <field name="four" object="tns:myObject"/> <field name="Five"> <objectSet> <object ref="tns:myObject"/>

Legg                          Experimental                     [Page 79]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 79] RFC 4912 Abstract Syntax Notation X July 2007

         </objectSet>
        </field>
       </object>
      </namedObject>

</objectSet> </field> </object> </namedObject>

10.3.  ObjectFromObject Translation

10.3. ObjectFromObject Translation

   The translation of an ObjectFromObject is an element item with the
   [local name] "object".  An element item with the [local name]
   "annotation" MAY be added to the [children] of the <object> element
   item.  An element item with the [local name] "fromObjects" SHALL be
   appended to the [children] of the <object> element item.

The translation of an ObjectFromObject is an element item with the [local name] "object". An element item with the [local name] "annotation" MAY be added to the [children] of the <object> element item. An element item with the [local name] "fromObjects" SHALL be appended to the [children] of the <object> element item.

   The translation of the ReferencedObjects instance in the
   ObjectFromObject SHALL be added to the [children] or [attributes] of
   the <fromObjects> element item.

The translation of the ReferencedObjects instance in the ObjectFromObject SHALL be added to the [children] or [attributes] of the <fromObjects> element item.

   The translation of the FieldName in the ObjectFromObject SHALL be
   added to the [children] or [attributes] of the <fromObjects> element
   item.

The translation of the FieldName in the ObjectFromObject SHALL be added to the [children] or [attributes] of the <fromObjects> element item.

11.  Translation of Object Sets

11. Translation of Object Sets

   If an ObjectSet matches the form "{ DefinedObjectSet }" (i.e., a
   DefinedObjectSet in an ObjectSetElements instance in an Elements
   instance in a lone IntersectionElements instance in a lone
   Intersections instance in a Unions instance in an ElementSetSpec in a
   RootElementSetSpec in an ObjectSetSpec without an
   AdditionalElementSetSpec), then the translator MAY use the
   translation of the DefinedObjectSet as the translation of the
   ObjectSet; otherwise, the translation of an ObjectSet is an element
   item with the [local name] "objectSet".  An element item with the
   [local name] "annotation" MAY be added to the [children] of the
   <objectSet> element item.  The translation of the ObjectSetSpec in
   the ObjectSet SHALL be appended to the [children] of the <objectSet>
   element item.

If an ObjectSet matches the form "{ DefinedObjectSet }" (i.e., a DefinedObjectSet in an ObjectSetElements instance in an Elements instance in a lone IntersectionElements instance in a lone Intersections instance in a Unions instance in an ElementSetSpec in a RootElementSetSpec in an ObjectSetSpec without an AdditionalElementSetSpec), then the translator MAY use the translation of the DefinedObjectSet as the translation of the ObjectSet; otherwise, the translation of an ObjectSet is an element item with the [local name] "objectSet". An element item with the [local name] "annotation" MAY be added to the [children] of the <objectSet> element item. The translation of the ObjectSetSpec in the ObjectSet SHALL be appended to the [children] of the <objectSet> element item.

      Aside: An ObjectSet that is directly a DefinedObjectSet is a
      notational capability that does not exist in ASN.1, but is allowed
      in ASN.X to avoid excessive nesting of <objectSet> element items
      in the expansion of parameterized definitions.

Aside: An ObjectSet that is directly a DefinedObjectSet is a notational capability that does not exist in ASN.1, but is allowed in ASN.X to avoid excessive nesting of <objectSet> element items in the expansion of parameterized definitions.

   If an ObjectSetSpec contains only a RootElementSetSpec, then the
   translation of the ObjectSetSpec is the translation of the
   ElementSetSpec in the RootElementSetSpec.

If an ObjectSetSpec contains only a RootElementSetSpec, then the translation of the ObjectSetSpec is the translation of the ElementSetSpec in the RootElementSetSpec.

Legg                          Experimental                     [Page 80]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 80] RFC 4912 Abstract Syntax Notation X July 2007

   If an ObjectSetSpec contains a RootElementSetSpec and an ellipsis
   ("..."), then the translation of the ObjectSetSpec is the translation
   of the ElementSetSpec in the RootElementSetSpec followed by an
   element item with the [local name] "extension".  If an
   AdditionalElementSetSpec is present, then the translation of the
   ElementSetSpec in the AdditionalElementSetSpec SHALL be added to the
   [children] of the <extension> element item.

If an ObjectSetSpec contains a RootElementSetSpec and an ellipsis ("..."), then the translation of the ObjectSetSpec is the translation of the ElementSetSpec in the RootElementSetSpec followed by an element item with the [local name] "extension". If an AdditionalElementSetSpec is present, then the translation of the ElementSetSpec in the AdditionalElementSetSpec SHALL be added to the [children] of the <extension> element item.

   If an ObjectSetSpec does not contain a RootElementSetSpec, then the
   translation of the ObjectSetSpec is an element item with the
   [local name] "extension".  If an AdditionalElementSetSpec is present,
   then the translation of the ElementSetSpec in the
   AdditionalElementSetSpec SHALL be added to the [children] of the
   <extension> element item.

If an ObjectSetSpec does not contain a RootElementSetSpec, then the translation of the ObjectSetSpec is an element item with the [local name] "extension". If an AdditionalElementSetSpec is present, then the translation of the ElementSetSpec in the AdditionalElementSetSpec SHALL be added to the [children] of the <extension> element item.

   Nested within the ElementSetSpec will be one or more
   ObjectSetElements instances.

Nested within the ElementSetSpec will be one or more ObjectSetElements instances.

11.1.  DefinedObjectSet Translation

11.1. DefinedObjectSet Translation

   If a DefinedObjectSet is an objectsetreference (not a DummyReference)
   or an ExternalObjectSetReference, then the translation of the
   DefinedObjectSet is either the attribute form translation of an
   object set reference, or the element form translation of an object
   set reference.

If a DefinedObjectSet is an objectsetreference (not a DummyReference) or an ExternalObjectSetReference, then the translation of the DefinedObjectSet is either the attribute form translation of an object set reference, or the element form translation of an object set reference.

   The attribute form translation of an object set reference is an
   attribute item with the [local name] "objectSet".  The
   [normalized value] of this attribute item is a qualified name for the
   expanded name of the referenced object set definition (see
   Section 5.1).  The attribute form translation SHALL NOT be used if
   this expanded name is not distinct with respect to the current module
   and the modules referenced by its <import> element items (see
   Section 5.1).

The attribute form translation of an object set reference is an attribute item with the [local name] "objectSet". The [normalized value] of this attribute item is a qualified name for the expanded name of the referenced object set definition (see Section 5.1). The attribute form translation SHALL NOT be used if this expanded name is not distinct with respect to the current module and the modules referenced by its <import> element items (see Section 5.1).

   The element form translation of an object set reference is an element
   item with the [local name] "objectSet".  An element item with the
   [local name] "annotation" MAY be added to the [children] of the
   <objectSet> element item.  An attribute item with the [local name]
   "ref" SHALL be added to the [attributes] of the <objectSet> element
   item.  The [normalized value] of this attribute item is a qualified
   name for the expanded name of the referenced object set definition.
   If this expanded name is not distinct with respect to the current
   module and the modules referenced by its <import> element items, then
   an attribute item with the [local name] "context" SHALL be added to
   the [attributes] of the <objectSet> element item; otherwise, if the
   module containing the referenced object set definition has a schema
   identity URI, then an attribute item with the [local name] "context"

The element form translation of an object set reference is an element item with the [local name] "objectSet". An element item with the [local name] "annotation" MAY be added to the [children] of the <objectSet> element item. An attribute item with the [local name] "ref" SHALL be added to the [attributes] of the <objectSet> element item. The [normalized value] of this attribute item is a qualified name for the expanded name of the referenced object set definition. If this expanded name is not distinct with respect to the current module and the modules referenced by its <import> element items, then an attribute item with the [local name] "context" SHALL be added to the [attributes] of the <objectSet> element item; otherwise, if the module containing the referenced object set definition has a schema identity URI, then an attribute item with the [local name] "context"

Legg                          Experimental                     [Page 81]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 81] RFC 4912 Abstract Syntax Notation X July 2007

   MAY be added to the [attributes] of the <objectSet> element item.
   The [normalized value] of this attribute item is the schema identity
   URI of the module containing the referenced object set definition.

MAY be added to the [attributes] of the <objectSet> element item. The [normalized value] of this attribute item is the schema identity URI of the module containing the referenced object set definition.

      Aside: If a reference name is not distinct, then the module
      containing the referenced definition must have a schema identity
      URI (see Section 5.1).

Aside: If a reference name is not distinct, then the module containing the referenced definition must have a schema identity URI (see Section 5.1).

   The translation of the DefinedObjectSet is the same whether the
   object definition is referenced by an objectsetreference or an
   ExternalObjectSetReference.

The translation of the DefinedObjectSet is the same whether the object definition is referenced by an objectsetreference or an ExternalObjectSetReference.

   Usually the translator is free to choose either the attribute form or
   element form translation for an object set reference; however, in
   some contexts the attribute form is explicitly disallowed.

Usually the translator is free to choose either the attribute form or element form translation for an object set reference; however, in some contexts the attribute form is explicitly disallowed.

   If a DefinedObjectSet is a DummyReference, then the translation of
   the DefinedObjectSet is the translation of the DummyReference (see
   Section 13).

If a DefinedObjectSet is a DummyReference, then the translation of the DefinedObjectSet is the translation of the DummyReference (see Section 13).

11.2.  ObjectSetElements Translation

11.2. ObjectSetElements Translation

   If an ObjectSetElements instance is an Object, then the translation
   of the ObjectSetElements instance is the translation of the Object,
   except that the attribute form of the DefinedObject translation SHALL
   NOT be used if the Object is a DefinedObject.

If an ObjectSetElements instance is an Object, then the translation of the ObjectSetElements instance is the translation of the Object, except that the attribute form of the DefinedObject translation SHALL NOT be used if the Object is a DefinedObject.

   If an ObjectSetElements instance is a DefinedObjectSet, then the
   translation of the ObjectSetElements instance is the translation of
   the DefinedObjectSet, except that the attribute form of the
   DefinedObjectSet translation SHALL NOT be used.

If an ObjectSetElements instance is a DefinedObjectSet, then the translation of the ObjectSetElements instance is the translation of the DefinedObjectSet, except that the attribute form of the DefinedObjectSet translation SHALL NOT be used.

   If an ObjectSetElements instance is an ObjectSetFromObjects, then the
   translation of the ObjectSetElements instance is the translation of
   the ObjectSetFromObjects.

If an ObjectSetElements instance is an ObjectSetFromObjects, then the translation of the ObjectSetElements instance is the translation of the ObjectSetFromObjects.

   If an ObjectSetElements instance is a ParameterizedObjectSet, then
   the translation of the ObjectSetElements instance is the translation
   of the ParameterizedObjectSet (see Section 13).

If an ObjectSetElements instance is a ParameterizedObjectSet, then the translation of the ObjectSetElements instance is the translation of the ParameterizedObjectSet (see Section 13).

      Aside: The in-line expansion of a ParameterizedObjectSet results
      in an ObjectSet.  An ObjectSetElements instance that is an
      ObjectSet is a notational capability that does not exist in ASN.1,
      but is allowed in ASN.X to avoid the need to manufacture a
      reference name for the expanded parameterized definition.

Aside: The in-line expansion of a ParameterizedObjectSet results in an ObjectSet. An ObjectSetElements instance that is an ObjectSet is a notational capability that does not exist in ASN.1, but is allowed in ASN.X to avoid the need to manufacture a reference name for the expanded parameterized definition.

Legg                          Experimental                     [Page 82]

RFC 4912               Abstract Syntax Notation X              July 2007

[82ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

11.2.1.  ObjectSetFromObjects Translation

11.2.1. ObjectSetFromObjects翻訳

   The translation of an ObjectSetFromObjects instance is an element
   item with the [local name] "objectSet".  An element item with the
   [local name] "annotation" MAY be added to the [children] of the
   <objectSet> element item.  An element item with the [local name]
   "fromObjects" SHALL be appended to the [children] of the <objectSet>
   element item.

ObjectSetFromObjects例に関する翻訳は[地方名]"objectSet"がある要素の品目です。 [地方名]「注釈」がある要素の品目は<objectSet>要素の品目の[子供]に加えられるかもしれません。 <objectSet>要素の品目の[子供]に[地方名]「fromObjects」SHALLを追加している要素の品目。

   The translation of the ReferencedObjects instance in the
   ObjectSetFromObjects SHALL be added to the [children] or [attributes]
   of the <fromObjects> element item.

ReferencedObjectsに関する翻訳は中でObjectSetFromObjects SHALLを例証します。<fromObjects>要素の品目の[子供]か[属性]に加えられます。

   The translation of the FieldName in the ObjectSetFromObjects SHALL be
   added to the [children] or [attributes] of the <fromObjects> element
   item.

翻訳、ObjectSetFromObjects SHALLのFieldNameでは、<fromObjects>要素の品目の[子供]か[属性]に加えられてください。

12.  Translation of Information From Objects

12. 物からの情報の翻訳

   If a ReferencedObjects instance is a DefinedObject (not a
   DummyReference), then the translation of the ReferencedObjects
   instance is the translation of the DefinedObject.

ReferencedObjects例がDefinedObject(DummyReferenceでない)であるなら、ReferencedObjects例に関する翻訳はDefinedObjectに関する翻訳です。

   If a ReferencedObjects instance is a DefinedObjectSet (not a
   DummyReference), then the translation of the ReferencedObjects
   instance is the translation of the DefinedObjectSet.

ReferencedObjects例がDefinedObjectSet(DummyReferenceでない)であるなら、ReferencedObjects例に関する翻訳はDefinedObjectSetに関する翻訳です。

   If a ReferencedObjects instance is a DummyReference,
   ParameterizedObject, or ParameterizedObjectSet, then the translation
   of the ReferencedObjects instance is the translation of that
   DummyReference, ParameterizedObject, or ParameterizedObjectSet (see
   Section 13).

ReferencedObjects例がDummyReference、ParameterizedObject、またはParameterizedObjectSetであるなら、ReferencedObjects例に関する翻訳はそのDummyReference、ParameterizedObject、またはParameterizedObjectSetに関する翻訳(セクション13を見る)です。

      Aside: The in-line expansion of a ParameterizedObject or
      ParameterizedObjectSet results in an Object or ObjectSet,
      respectively.  A ReferencedObjects instance that is an Object or
      ObjectSet is a notational capability that does not exist in ASN.1,
      but is allowed in ASN.X to avoid the need to manufacture a
      reference name for an expanded parameterized definition.

傍らに: ParameterizedObjectかParameterizedObjectSetのインライン拡大はそれぞれObjectかObjectSetをもたらします。 ObjectかObjectSetであるReferencedObjects例はASN.1に存在していませんが、ASN.Xで拡張parameterized定義のために参照名を製造する必要性を避けることができる記号法の能力です。

13.  Translation of Parameterized Definitions

13. Parameterized定義に関する翻訳

   The translation of an ASN.1 specification into ASN.X replaces any
   DummyReference [X.683] or reference to a parameterized definition
   [X.683] with the definition expanded in-line (except for a special
   case involving recursive parameterized types).  For example, a
   ParameterizedObject is replaced by the Object on the right-hand side
   of the referenced ParameterizedObjectAssignment.

ASN.XへのASN.1仕様に関する翻訳はインラインで(再帰的なparameterizedタイプにかかわる特別なケースを除いた)広げられる定義にparameterized定義[X.683]のどんなDummyReference[X.683]や参照にも取って代わります。 例えば、ParameterizedObjectを参照をつけられたParameterizedObjectAssignmentの右側の上のObjectに取り替えます。

Legg                          Experimental                     [Page 83]

RFC 4912               Abstract Syntax Notation X              July 2007

[83ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   The definition that substitutes for a DummyReference or parameterized
   reference (e.g., the Object that substitutes for a
   ParameterizedObject) potentially comes from a different module from
   the reference.  Expanding a DummyReference or parameterized reference
   in-line puts the substitute definition into the context of the module
   containing the reference, which could therefore alter the
   interpretation of the substitute definition.

DummyReferenceかparameterized参照(例えば、ParameterizedObjectのために代理をするObject)のために代理をする定義は参照と異なったモジュールから潜在的に来ます。 DummyReferenceかparameterized参照インラインでaを広げると、代わりの定義はしたがって、代わりの定義の解釈を変更できた参照を含むモジュールの文脈に入れられます。

   A type definition is potentially dependent on the TagDefault and
   ExtensionDefault of the module in which it appears, and may also be
   affected by encoding instructions in an XML Encoding Rules (XER)
   [X.693] encoding control section [X.693-1].  Other kinds of
   definitions are not dependent on the module context; however, type
   definitions can be nested within the other kinds of definitions, so a
   change of context can still be significant.

型定義は、潜在的にそれが現れるモジュールのTagDefaultとExtensionDefaultに依存していて、また、制御セクション[X.693-1]をコード化しながらXML Encoding Rules(XER)[X.693]での指示をコード化することによって、影響を受けるかもしれません。 他の種類の定義はモジュール文脈に依存していません。 しかしながら、他の種類の定義の中で型定義を入れ子にすることができるので、文脈の変化はまだ重要である場合があります。

      Aside: Type definitions are not dependent on their module's RXER
      or Generic String Encoding Rules (GSER) [GSER] encoding control
      section [RXEREI][GSEREI] (as they are currently defined), so the
      presence of an encoding control section for RXER or GSER is not
      significant in a change of context.

傍らに: 型定義が制御セクション[RXEREI][GSEREI]をコード化しながら(彼らが現在定義されるとき)それらのモジュールのRXERかGeneric String Encoding Rules(GSER)[GSER]に依存していないので、RXERかGSERのためのコード化制御セクションの存在は文脈の変化で重要ではありません。

   The remainder of this section describes how and when a change of
   context is indicated in the ASN.X translation of a DummyReference or
   parameterized reference.

このセクションの残りは、文脈の変化がどのように、いつDummyReferenceかparameterized参照に関するASN.X翻訳で示されるかを説明します。

   In any instance of use, the module containing the DummyReference or
   parameterized reference is the referencing module, and the module
   providing the substitute definition is the referenced module.  The
   referenced and referencing modules may be the same module.

使用のどんな例でも、DummyReferenceかparameterized参照を含むモジュールは参照箇所モジュールです、そして、代わりの定義を提供するモジュールは参照をつけられたモジュールです。 参照箇所とモジュールに参照をつけるのは、同じモジュールであるかもしれません。

   In the case of a ParameterizedType, the substitute definition is the
   Type on the right-hand side of the referenced
   ParameterizedTypeAssignment.

ParameterizedTypeの場合では、代わりの定義は参照をつけられたParameterizedTypeAssignmentの右側の上のTypeです。

   In the case of a ParameterizedValueSetType, the substitute definition
   is the constrained type on the right-hand side of the notional
   ParameterizedTypeAssignment equivalent to the referenced
   ParameterizedValueSetTypeAssignment (see Clause 15.8 of X.680
   [X.680]).

ParameterizedValueSetTypeの場合では、代わりの定義は参照をつけられたParameterizedValueSetTypeAssignmentに同等な概念的なParameterizedTypeAssignmentの右側の制約つきタイプ(X.680[X.680]のClause15.8を見る)です。

   In the case of a ParameterizedValue, the substitute definition is the
   Value on the right-hand side of the referenced
   ParameterizedValueAssignment.

ParameterizedValueの場合では、代わりの定義は参照をつけられたParameterizedValueAssignmentの右側の上のValueです。

   In the case of a ParameterizedObjectClass, the substitute definition
   is the ObjectClass on the right-hand side of the referenced
   ParameterizedObjectClassAssignment.

ParameterizedObjectClassの場合では、代わりの定義は参照をつけられたParameterizedObjectClassAssignmentの右側の上のObjectClassです。

Legg                          Experimental                     [Page 84]

RFC 4912               Abstract Syntax Notation X              July 2007

[84ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   In the case of a ParameterizedObject, the substitute definition is
   the Object on the right-hand side of the referenced
   ParameterizedObjectAssignment.

ParameterizedObjectの場合では、代わりの定義は参照をつけられたParameterizedObjectAssignmentの右側の上のObjectです。

   In the case of a ParameterizedObjectSet, the substitute definition is
   the ObjectSet on the right-hand side of the referenced
   ParameterizedObjectSetAssignment.

ParameterizedObjectSetの場合では、代わりの定義は参照をつけられたParameterizedObjectSetAssignmentの右側の上のObjectSetです。

   If the ActualParameter corresponding to a DummyReference is not a
   ValueSet, then the substitute definition for that DummyReference is
   the Type, Value, DefinedObjectClass, Object, or ObjectSet in the
   ActualParameter.

DummyReferenceに対応するActualParameterがValueSetでないなら、そのDummyReferenceのための代わりの定義は、ActualParameterのType、Value、DefinedObjectClass、Object、またはObjectSetです。

   If the ActualParameter corresponding to a DummyReference is a
   ValueSet, then the substitute definition for that DummyReference is
   the notional constrained type equivalent to the ValueSet; the
   ElementSetSpecs of the ValueSet contributes to the constraint of the
   constrained type, and the governor of the Parameter corresponding to
   the ActualParameter is used as the parent type that is constrained.

DummyReferenceに対応するActualParameterがValueSetであるなら、そのDummyReferenceのための代わりの定義はValueSetに同等な概念的な制約つきタイプです。 ValueSetのElementSetSpecsは制約つきタイプの規制に貢献します、そして、ActualParameterに対応するParameterの知事は制約つきである親タイプとして使用されます。

   Definition (interchangeable):  The contexts of the referencing and
   referenced modules are interchangeable with respect to interpreting
   the substitute definition if:

(交換可能)の定義: 参照をつけて参照をつけられたモジュールの文脈が代わりの定義を解釈することに関して交換可能である、:

   (1) the referenced module is the referencing module and does not
       contain an XER encoding control section, or

または(1) 参照をつけられたモジュールが参照箇所モジュールであり、制御セクションをコード化するXERを含んでいない。

   (2) the referenced module and referencing module have the same
       TagDefault (where an absent TagDefault is taken to be equivalent
       to "EXPLICIT TAGS"), the referenced module and referencing module
       have the same ExtensionDefault, and neither module has an XER
       encoding control section.

(2) 参照をつけられたモジュールとモジュールに参照をつけるのにおいて同じTagDefault(欠けているTagDefaultが「明白なタグ」に相当しているように取られるところ)があります、そして、参照をつけられたモジュールとモジュールに参照をつけるのにおいて同じExtensionDefaultがあります、そして、どちらのモジュールも、XERは制御セクションをコード化しません。

      Aside: A module with an XER encoding control section is not
      considered to have a context interchangeable with another module,
      including itself, because the typereference by which a substitute
      type definition is identified may appear in a TargetList in the
      XER encoding control section of the referenced module, and because
      the in-line expansion of a substitute definition may cause its
      text to come within the scope of a TargetList in the XER encoding
      control section of the referencing module that would not apply
      otherwise.

傍らに: XERが制御セクションをコード化しているモジュールで文脈が別のモジュールで交換可能になると考えられません、それ自体を含んでいて; 代わりの型定義が特定されるtypereferenceが参照をつけられたモジュールの制御セクションをコード化するXERのTargetListに現れるかもしれなくて、テキストがそうでなければ適用されない参照箇所モジュールの制御セクションをコード化するXERで代わりの定義のインライン拡大でTargetListの範囲に含まれるかもしれないので。

   Definition (recursively contained):  A ParameterizedType is
   recursively contained if its translation will be nested within the
   translation (i.e., in-line expansion) of another ParameterizedType to

定義(再帰的に含まれています): 翻訳が別のParameterizedTypeに関する翻訳(すなわち、インライン拡大)の中で入れ子にされるなら、ParameterizedTypeは再帰的に含まれています。

Legg                          Experimental                     [Page 85]

RFC 4912               Abstract Syntax Notation X              July 2007

[85ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   which it is equivalent.  A ParameterizedValueSetType is recursively
   contained if its translation will be nested within the translation of
   another ParameterizedValueSetType to which it is equivalent.

どれ、それは同等であるか。 翻訳がそれが相当している別のParameterizedValueSetTypeに関する翻訳の中で入れ子にされるなら、ParameterizedValueSetTypeは再帰的に含まれています。

      Aside: ASN.1 does not permit the other kinds of parameterized
      reference to be recursive.

傍らに: ASN.1は、他の種類のparameterized参照が再帰的であることを可能にしません。

   The translation of a DummyReference, a ParameterizedType that is not
   recursively contained, a ParameterizedValue, a
   ParameterizedValueSetType that is not recursively contained, a
   ParameterizedObjectClass, a ParameterizedObject, or a
   ParameterizedObjectSet is either:

DummyReference、再帰的に含まれていないParameterizedType、ParameterizedValue、再帰的に含まれていないParameterizedValueSetType、ParameterizedObjectClass、ParameterizedObject、またはParameterizedObjectSetに関する翻訳はどちらかです:

   (a) the translation of the substitute definition, or

または(a) 代わりの定義に関する翻訳。

   (b) an element item with the [local name] "type" if the substitute
       definition is a Type, "value" if the substitute definition is a
       Value, "class" if the substitute definition is an ObjectClass or
       DefinedObjectClass, "object" if the substitute definition is an
       Object, or "objectSet" if the substitute definition is an
       ObjectSet.  A fully expanded reference (described shortly) SHALL
       be added to the [children] of the element item.

(b) 代わりの定義であるなら、[地方名]「タイプ」がある要素の品目はTypeです、と「値」の「クラス」の代わりの定義がValueであるか、そして、代わりの定義がObjectClassであるか、そして、DefinedObjectClassが代わりの定義がObject、または"objectSet"であるなら代わりの定義がObjectSetであるなら「反対します」。 Aは参照(まもなく、説明される)SHALLを完全に広げました。要素の品目の[子供]に加えられます。

   The translation in case (b) is always allowed and provides
   information to identify the referenced module and the referenced
   definition.

場合(b)における翻訳は、参照をつけられたモジュールと参照をつけられた定義を特定するためにいつも許容されていて、情報を提供します。

   The translation in case (a) MAY be used instead if and only if the
   contexts of the referencing and referenced modules are
   interchangeable, or the contexts of the referencing and referenced
   modules are not interchangeable, but the difference between them does
   not affect how the substitute definition is interpreted.

そして、場合(a)における翻訳が代わりに使用されるかもしれない、参照をつけて参照をつけられたモジュールの文脈が交換可能であるか、参照をつけて参照をつけられたモジュールの文脈が交換可能ではありませんが、またはそれらの違いが代わりの定義がどう解釈されるかに影響しない場合にだけ。

      Aside: There are many ways in which the substitute definition can
      be unaffected by a difference between the contexts of the
      referencing and referenced modules.  One example would be where
      the referencing and referenced modules differ only in their
      TagDefault, but the substitute definition does not contain any
      TaggedType notation.

傍らに: 代わりの定義が参照をつけて参照をつけられたモジュールの文脈の違いで影響を受けない場合がある多くの方法があります。 1つの例が参照をつけて参照をつけられたモジュールがそれらのTagDefaultだけにおいて異なるところでしょうが、代わりの定義は少しのTaggedType記法も含んでいません。

   Note that if the translation in case (a) is used, then the
   referencing module is still the referencing module when considering a
   nested in-line expansion.  If the translation in case (b) is used,
   then the referenced module becomes the referencing module when
   considering a nested in-line expansion.

入れ子にされたインライン拡大を考えるとき、それでも、場合(a)における翻訳が使用されているなら参照箇所モジュールが参照箇所モジュールであることに注意してください。 入れ子にされたインライン拡大を考えるとき、場合(b)における翻訳が使用されているなら、参照をつけられたモジュールは参照箇所モジュールになります。

Legg                          Experimental                     [Page 86]

RFC 4912               Abstract Syntax Notation X              July 2007

[86ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   If case (a) is used for the translation of a DummyReference where the
   substitute definition is a Type, then an attribute form translation
   of the substitute definition SHALL NOT be used, and an attribute item
   with the [local name] "explicit" and [normalized value] "true" or "1"
   SHALL be added to the [attributes] of the <type> element item
   resulting from the translation of the substitute definition.  Where
   the automatic tagging transformation applies [X.680], this attribute
   item indicates that explicit tagging applies to the type instead of
   the usual implicit tagging.

代わりの定義がTypeであり、次に、代わりの定義に関する属性フォーム翻訳がSHALLであるDummyReferenceに関する翻訳において使用されているのが、ケース(a)がそうであるなら使用されていて[地方名]が「明白であり」、[正常にされた値]が「本当」の属性項目でない「1インチは代わりの定義に関する翻訳から生じる<タイプ>要素の品目の[属性]に加えられるものとします」。 自動タグ付け変化が[X.680]を適用するところでは、この属性項目は、明白なタグ付けが普通の暗黙のタグ付けの代わりにタイプに適用されるのを示します。

   If case (b) is used for the translation of a DummyReference where the
   substitute definition is a Type, then an attribute item with the
   [local name] "explicit" and [normalized value] "true" or "1" SHALL be
   added to the [attributes] of the <type> element item generated by
   case (b).

[地方名]が「明白であり」、[正常にされた値]が「本当」の状態でケース(b)が代わりの定義がTypeであり、その時が属性項目であるDummyReferenceに関する翻訳に使用されるか、または「1インチはケース(b)で発生する<タイプ>要素の品目の[属性]に加えられるものとする」なら。

   A fully expanded reference is an element item with the [local name]
   "expanded".  Except in the case of a DummyReference, the reference
   name is indicated by an attribute item with the [local name] "name"
   added to the [attributes] of the <expanded> element item.

完全に拡張している参照は[地方名]が「広げられている」要素の品目です。 DummyReferenceに関するケースを除いて、存在という[地方名]「名前」が<の[属性]に加えられている状態で属性項目によって示された参照名は>要素の品目を広くしました。

   In the case of a ParameterizedType or ParameterizedValueSetType, the
   [normalized value] of this attribute item is the typereference of the
   ParameterizedType or ParameterizedValueSetType.

ParameterizedTypeかParameterizedValueSetTypeの場合でこの属性項目の[正常にされた値]はParameterizedTypeかParameterizedValueSetTypeのtypereferenceです。

   In the case of a ParameterizedValue, the [normalized value] of this
   attribute item is the valuereference of the ParameterizedValue.

ParameterizedValueの場合でこの属性項目の[正常にされた値]はParameterizedValueのvaluereferenceです。

   In the case of a ParameterizedObjectClass, the [normalized value] of
   this attribute item is the objectclassreference of the
   ParameterizedObjectClass.

ParameterizedObjectClassの場合でこの属性項目の[正常にされた値]はParameterizedObjectClassのobjectclassreferenceです。

   In the case of a ParameterizedObject, the [normalized value] of this
   attribute item is the objectreference of the ParameterizedObject.

ParameterizedObjectの場合でこの属性項目の[正常にされた値]はParameterizedObjectのobjectreferenceです。

   In the case of a ParameterizedObjectSet, the [normalized value] of
   this attribute item is the objectsetreference of the
   ParameterizedObjectSet.

ParameterizedObjectSetの場合でこの属性項目の[正常にされた値]はParameterizedObjectSetのobjectsetreferenceです。

   The "name" attribute item MAY be omitted if:

「名前」属性項目が省略されるかもしれない、:

   (1) the conditions permitting the use of the translation in case (a)
       are satisfied, or

または(1) 場合(a)における翻訳の使用を可能にする状態が満たされている。

   (2) the reference is not a typereference, or

または(2) 参照がtypereferenceでない。

Legg                          Experimental                     [Page 87]

RFC 4912               Abstract Syntax Notation X              July 2007

[87ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   (3) the reference is a typereference that does not appear in any
       TargetList in an XER encoding control section of the referenced
       module.

(3) 参照は参照をつけられたモジュールの制御セクションをコード化するXERのどんなTargetListにも現れないtypereferenceです。

   The "name" attribute SHALL NOT appear in the translation of a
   DummyReference.

「名前」属性SHALL NOTはDummyReferenceに関する翻訳に現れます。

   The referenced module is indicated by an element item with the
   [local name] "module" added to the [children] of the <expanded>
   element item.  The <module> element item MAY be omitted if the
   conditions permitting the use of the translation in case (a) are
   satisfied, or if the referencing module is the referenced module.
   When the <module> element item is present:

参照をつけられたモジュールは<の[子供]に加えられた[地方名]「モジュール」拡張>要素の品目がある要素の品目によって示されます。 <モジュール>要素の品目は場合(a)における翻訳の使用を可能にする状態が満たされているか、または参照箇所モジュールが参照をつけられたモジュールであるなら省略されるかもしれません。 <モジュール>要素の品目が存在しているとき:

   (1) An attribute item with the [local name] "name" SHOULD be added to
       the [attributes] of the <module> element item.  The
       [normalized value] of this attribute item is the modulereference
       in the ModuleIdentifier in the ModuleDefinition of the referenced
       module.

(1) SHOULDという[地方名]「名前」が<モジュール>要素の品目の[属性]に加えられている属性項目。 この属性項目の[正常にされた値]は参照をつけられたモジュールのModuleDefinitionのModuleIdentifierのmodulereferenceです。

   (2) If the DefinitiveIdentifier in the ModuleIdentifier in the
       ModuleDefinition of the referenced module is not empty, then an
       attribute item with the [local name] "identifier" SHALL be added
       to the [attributes] of the <module> element item.  The
       [normalized value] of this attribute item is the RXER character
       data translation of the DefinitiveIdentifier.

(2)は参照をつけられたモジュールのModuleDefinitionのModuleIdentifierのDefinitiveIdentifierであるなら空でなく、その時は[地方名]「識別子」SHALLが<モジュール>要素の品目の[属性]に加えられている属性項目です。 この属性項目の[正常にされた値]はDefinitiveIdentifierに関するRXERキャラクタデータ変換です。

   (3) If the referenced module has a schema identity URI, then an
       attribute item with the [local name] "schemaIdentity" SHALL be
       added to the [attributes] of the <module> element item.  The
       [normalized value] of this attribute item is the schema identity
       URI of the referenced module.

(3) 参照をつけられたモジュールには図式アイデンティティURIがあって、次に、[地方名]がある属性項目が"schemaIdentity"であるというSHALLであるなら、<モジュール>要素の品目の[属性]に加えられてください。 この属性項目の[正常にされた値]は参照をつけられたモジュールの図式アイデンティティURIです。

   The [attributes] of the <module> element item MUST contain at least
   one of the attribute items specified in cases (1), (2), and (3).

<モジュール>要素の品目の[属性]は少なくとも場合(1)、(2)、および(3)で指定された属性項目の1つを含まなければなりません。

   The translation of the substitute definition SHALL be added to the
   [children] or [attributes] of the <expanded> element item.

翻訳、代わりの定義SHALLでは、[子供]に加えられてください。さもないと、<の[属性]は>要素の品目を広げました。

Legg                          Experimental                     [Page 88]

RFC 4912               Abstract Syntax Notation X              July 2007

[88ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   Example

      Consider these module definitions:

これらのモジュール定義を考えてください:

         Templates
         DEFINITIONS
         AUTOMATIC TAGS ::=
         BEGIN

テンプレート定義オートマチックは以下にタグ付けをします:= 始まってください。

         CollectionOfThings { Thing } ::= SEQUENCE OF thing Thing
             -- the Thing on the right-hand side of the assignment is
             -- a DummyReference

CollectionOfThingsもの:、:= 課題の右側の上のThingがそうであるというSEQUENCE OFものThing、DummyReference

         END

終わり

         ProtocolDefinitions
         DEFINITIONS
         AUTOMATIC TAGS ::=
         BEGIN

ProtocolDefinitions定義オートマチックは以下にタグ付けをします:= 始まってください。

         IMPORTS
             CollectionOfThings{}
                 FROM Templates
             ;

輸入CollectionOfThings、テンプレートから。

         CollectionOfIntegers ::= CollectionOfThings { INTEGER }
             -- the right-hand side of the assignment is
             -- a ParameterizedType

CollectionOfIntegers:、:= 課題の右側がそうであるというCollectionOfThings INTEGERはParameterizedTypeです。

         END

終わり

      Without using the translation in case (a), the translations of
      these modules are:

場合(a)に翻訳を使用するのがなければ、これらのモジュールに関する翻訳は以下の通りです。

         <asnx:module name="Templates"/>

<asnx: モジュール名前=「テンプレート」/>。

         <asnx:module xmlns:asnx="urn:ietf:params:xml:ns:asnx"
                      name="ProtocolDefinitions">

<asnx: モジュールxmlns: asnx=「つぼ:ietf:params:xml:ナノ秒: asnx」名=、「ProtocolDefinitions">"

          <namedType name="CollectionOfIntegers">
           <type>
            <expanded name="CollectionOfThings">
             <module name="Templates"/>
             <type>
              <sequenceOf>
               <element name="thing">
                <type>
                 <expanded>

<namedTypeが=を命名する、「CollectionOfIntegers、「><タイプ><が名前=「CollectionOfThings「><モジュール名=」テンプレート」/><タイプ><sequenceOf><要素名=を広げた、「もの、「><タイプ><は>を広げました」。

Legg                          Experimental                     [Page 89]

RFC 4912               Abstract Syntax Notation X              July 2007

[89ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

                  <module name="ProtocolDefinitions"/>
                  <type ref="asnx:INTEGER"/>
                 </expanded>
                </type>
               </element>
              </sequenceOf>
             </type>
            </expanded>
           </type>
          </namedType>

<モジュール名=の「ProtocolDefinitions」/><タイプ審判=「asnx: 整数」/></拡張している></タイプ></要素></sequenceOf></タイプ></拡張している></タイプ></namedType>。

         </asnx:module>

</asnx: モジュール>。

      The translation of the Templates module is empty because the
      module contains only a parameterized assignment.

モジュールがparameterized課題だけを含んでいるので、Templatesモジュールの翻訳は空です。

      Since the contexts of the Templates and ProtocolDefinitions
      modules are interchangeable, a simpler translation of the
      ProtocolDefinitions module is permitted:

TemplatesとProtocolDefinitionsモジュールの文脈が交換可能であるので、ProtocolDefinitionsモジュールの、より簡単な翻訳は受入れられます:

         <asnx:module xmlns:asnx="urn:ietf:params:xml:ns:asnx"
                      name="ProtocolDefinitions">

<asnx: モジュールxmlns: asnx=「つぼ:ietf:params:xml:ナノ秒: asnx」名=、「ProtocolDefinitions">"

          <namedType name="CollectionOfIntegers">
           <type>
            <sequenceOf>
             <element name="thing">
              <type ref="asnx:INTEGER" explicit="true"/>
             </element>
            </sequenceOf>
           </type>
          </namedType>

<namedTypeが=を命名する、「「><は><sequenceOf><要素名=をタイプする」というCollectionOfIntegersもの「><タイプ審判=「asnx: INTEGER」=「本当」明白な/></要素></sequenceOf></タイプ></namedType>」

         </asnx:module>

</asnx: モジュール>。

   If a ParameterizedType or ParameterizedValueSetType is recursively
   contained, then its translation is an element item with the
   [local name] "type".  An attribute item with the [local name]
   "ancestor" SHALL be added to the [attributes] of the <type> element
   item.  The [normalized value] of this attribute item is the decimal
   digit string representing the integer value of one plus the number of
   intermediate enclosing <type> element items between the <type>
   element items resulting from the translations of the two equivalent
   instances of ParameterizedType or ParameterizedValueSetType.  An
   element item with the [local name] "annotation" MAY be added to the
   [children] of the <type> element item.

ParameterizedTypeかParameterizedValueSetTypeが再帰的に含まれているなら、翻訳は[地方名]「タイプ」がある要素の品目です。 [地方名]「先祖」SHALLが<タイプ>要素の品目の[属性]に加えられている属性項目。 この属性項目の[正常にされた値]は1の整数値を表す10進数字ストリングです、そして、<を同封する中間的数はParameterizedTypeかParameterizedValueSetTypeの2つの同等な例に関する翻訳から生じながら、<タイプ>要素の品目の間で>要素の品目をタイプします。 [地方名]「注釈」がある要素の品目は<タイプ>要素の品目の[子供]に加えられるかもしれません。

Legg                          Experimental                     [Page 90]

RFC 4912               Abstract Syntax Notation X              July 2007

[90ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   A <type> element item with an ancestor attribute item is a reference
   to an ancestor <type> element item.  This form for a <type> element
   item SHOULD NOT be used in original specifications written in ASN.X.

先祖属性項目がある<タイプ>要素の品目は先祖<タイプ>要素の品目の参照です。 ASN.Xに書かれていて、<のためのこのフォームは中古のコネが正式仕様書であったなら>要素の品目SHOULD NOTをタイプします。

      Aside: The form is only intended for the purpose of handling
      recursive parameterized type definitions in an ASN.1 specification
      being translated into ASN.X.  Such definitions are
      self-referencing, but have no obvious name.  It is also not easy
      to construct a suitable name from the surrounding context because
      recursive parameterized types can be embedded in other constructs,
      such as information objects, that are themselves unnamed.

傍らに: フォームはASN.X. Such定義に翻訳されているのが、自己参照箇所であることであるということであるのでASN.1仕様で再帰的なparameterized型定義を扱う目的のために意図するだけですが、どんな明白な名前も持たないでください。 また、周囲の文脈から適当な名前を構成するのも、情報物などの他の自分たちで無名である構造物に再帰的なparameterizedタイプを埋め込むことができるので、簡単ではありません。

   Example

      Consider these type definitions, assumed to be defined in a module
      that does not have an XER encoding control section:

XERが制御セクションをコード化しないモジュールで定義されると思われたこれらの型定義を考えてください:

         Tree { ValueType } ::= SEQUENCE {
             value          [0] ValueType,
             left-subtree   [1] Tree { ValueType } OPTIONAL,
             right-subtree  [2] Tree { ValueType } OPTIONAL
         }

木のValueType:、:= 系列OPTIONALと、正しい下位木で[0]ValueType、左下位木[1]木のValueTypeを評価してください、[2] 木のValueType、OPTIONAL

         NumberTree ::= [APPLICATION 13] Tree { INTEGER }

NumberTree:、:= [アプリケーション13] 木整数

      The assignment for "Tree" is not directly translated because it is
      a ParameterizedAssignment.  The translation for the "NumberTree"
      assignment, up to but not yet including the Type in the
      TaggedType, is as follows:

それがParameterizedAssignmentであるので、「木」のための課題は直接翻訳されません。 上がっていますが、TaggedTypeにまだTypeを含んでいない"NumberTree"課題のための翻訳は以下の通りです:

         <namedType name="NumberTree">
          <type>
           <tagged tagClass="application" number="13"/>
          </type>
         </namedType>

<namedType名前=「「><タイプ><はtagClass=にタグ付けをした」というNumberTreeアプリケーション」番号は「13インチ/>の</タイプ></namedType>」と等しいです。

      The Type in the TaggedType is a ParameterizedType.  Since the
      ParameterizedType is not recursively contained, the translation of
      the ParameterizedType (using the translation in case (a) above) is
      the translation of the Type on the right-hand side of the
      referenced ParameterizedTypeAssignment, namely this type:

TaggedTypeのTypeはParameterizedTypeです。 ParameterizedTypeが再帰的に含まれていないので、ParameterizedType(場合(a)における上記の翻訳を使用する)に関する翻訳はすなわち、参照をつけられたParameterizedTypeAssignment、このタイプの右側におけるTypeに関する翻訳です:

         SEQUENCE {
             value          [0] ValueType,
             left-subtree   [1] Tree { ValueType } OPTIONAL,
             right-subtree  [2] Tree { ValueType } OPTIONAL
         }

系列OPTIONALと、正しい下位木で[0]ValueType、左下位木[1]木のValueTypeを評価してください、[2] 木のValueType、OPTIONAL

Legg                          Experimental                     [Page 91]

RFC 4912               Abstract Syntax Notation X              July 2007

[91ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

      ValueType is a DummyReference.  The translation of the actual
      parameter substitutes for the DummyReference.  In this case, the
      actual parameter is the INTEGER type.

ValueTypeはDummyReferenceです。 実引数に関する翻訳はDummyReferenceのために代理をします。 この場合、実引数はINTEGERタイプです。

      The translation for the SEQUENCE type, up to the first component,
      is added to the <tagged> element:

SEQUENCEタイプが<に最初のコンポーネントまで加えられるので、翻訳は>要素にタグ付けをしました:

         <namedType name="NumberTree">
          <type>
           <tagged tagClass="application" number="13">
            <type><!-- Tree { INTEGER } -->
             <sequence>
              <element name="value">
               <type>
                <tagged number="0">
                 <type ref="asnx:INTEGER"
                       explicit="true"/><!-- ValueType -->
                </tagged>
               </type>
              </element>
             </sequence>
            </type>
           </tagged>
          </type>
         </namedType>

<namedType名前=「「><タイプ><はtagClass=にタグ付けをした」というNumberTreeアプリケーション」番号は「13インチの><タイプ><!--木のINTEGER--><系列><要素名=」の値の「><タイプ><は数=にタグ付けをした」0インチの><タイプ審判=「asnx: INTEGER」=「本当」明白な/><と等しいです!; ValueType--></タグ付けをされた></タイプ></要素></系列></タイプ></タグ付けをされた></タイプ></namedType>。

      The Type in the TaggedType for the second component is a
      ParameterizedType.  Since this ParameterizedType is recursively
      contained, its translation is a <type> element with the ancestor
      attribute.  The value of the ancestor attribute is "2" because
      there is one intermediate <type> element (for a TaggedType).  Put
      another way, the translations of the equivalent instances of
      ParameterizedType are two <type> steps apart.

2番目のコンポーネントのためのTaggedTypeのTypeはParameterizedTypeです。 このParameterizedTypeが再帰的に含まれているので、翻訳は先祖属性がある<タイプ>要素です。 先祖属性の値は「1中間的<があるので、2インチは>要素(TaggedTypeのための)をタイプします」です。 別の方法を置いてください、そして、ParameterizedTypeの同等な例に関する翻訳が2<タイプ>ステップ離れてあります。

      The translation of the third component of the SEQUENCE type
      follows the same pattern as the second component.  The completed
      translation is as follows:

SEQUENCEタイプの3番目の成分に関する翻訳は2番目のコンポーネントと同じパターンに従います。 完成した翻訳は以下の通りです:

         <namedType name="NumberTree">
          <type>
           <tagged tagClass="application" number="13">
            <type><!-- Tree { INTEGER } -->
             <sequence>
              <element name="value">
               <type>
                <tagged number="0">
                 <type ref="asnx:INTEGER"
                       explicit="true"/><!-- ValueType -->

<namedType名前=「「><タイプ><はtagClass=にタグ付けをした」というNumberTreeアプリケーション」番号は値の「><タイプ><は数=にタグ付けをした」0インチの><タイプ審判=「asnx: INTEGER」=「本当」明白な/><!--ValueType--「13インチの><タイプ><!--木のINTEGER--><系列><要素名=」>と等しいです。

Legg                          Experimental                     [Page 92]

RFC 4912               Abstract Syntax Notation X              July 2007

[92ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

                </tagged>
               </type>
              </element>
              <optional>
               <element name="left-subtree">
                <type>
                 <tagged number="1">
                  <type ancestor="2"/><!-- Tree { ValueType } -->
                 </tagged>
                </type>
               </element>
              </optional>
              <optional>
               <element name="right-subtree">
                <type>
                 <tagged number="2">
                  <type ancestor="2"/><!-- Tree { ValueType } -->
                 </tagged>
                </type>
               </element>
              </optional>
             </sequence>
            </type>
           </tagged>
          </type>
         </namedType>

</タグ付けをされた></タイプ></要素の<の任意の><要素>名=、「左下位木「><タイプ><は数=にタグ付けをした」1インチの><タイプ先祖=「2インチ/>の<!」; ValueTypeを木に追い上げてください--></が></タイプ></要素></任意の>の<任意の><要素名=にタグ付けをした、「正しい下位木「><タイプ><は数=にタグ付けをした」2インチの><タイプ先祖=「2インチ/>の<!」; 木のValueType--></タグ付けをされた></タイプ></要素></任意の></系列></タイプ></タグ付けをされた></タイプ></namedType>。

14.  EncodingControlSections Translation

14. EncodingControlSections翻訳

   If an EncodingControlSections instance contains at least one
   EncodingControlSection with an encodingreference that is not RXER,
   then the translation of the EncodingControlSections instance is an
   element item with the [local name] "encodingControls".  The
   translation of each EncodingControlSection with an encodingreference
   that is not RXER SHALL be appended to the [children] of the
   <encodingControls> element item.

EncodingControlSections例がRXERでないencodingreferenceと少なくとも1EncodingControlSectionを含んでいるなら、EncodingControlSections例に関する翻訳は[地方名]「encodingControls」がある要素の品目です。 翻訳、RXER SHALLでないencodingreferenceと各EncodingControlSectionでは、<encodingControls>要素の品目の[子供]に追加してください。

      Aside: This is not suggesting that RXER encoding control sections
      are ignored.  Encoding control sections for RXER are not
      explicitly represented in ASN.X, but rather affect how an ASN.1
      module is translated into an ASN.X module.  The effect of an RXER
      encoding control section on the translation is addressed in other
      parts of this specification.

傍らに: これは、制御セクションをコード化するRXERが無視されるのを示していません。 コントロールをコード化して、RXERのためのセクションはASN.Xで明らかに代表されませんが、むしろASN.1モジュールがどうASN.Xモジュールに翻訳されるかに影響してください。 RXERが制御セクションをコード化するという翻訳への効果はこの仕様の他の部分で扱われます。

      Encoding control sections for other encoding rules will have
      explicit representations in ASN.X.

他の符号化規則のために制御セクションをコード化すると、明白な表現はASN.Xに持たれるでしょう。

Legg                          Experimental                     [Page 93]

RFC 4912               Abstract Syntax Notation X              July 2007

[93ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   If the encodingreference in an EncodingControlSection is GSER, then
   the translation of the EncodingControlSection is an element item with
   the [local name] "GSER".  The translation of the
   EncodingInstructionAssignmentList in the EncodingControlSection SHALL
   be added to the [children] of the <GSER> element item.

EncodingControlSectionのencodingreferenceがGSERであるなら、EncodingControlSectionに関する翻訳は[地方名]"GSER"がある要素の品目です。 翻訳、EncodingControlSection SHALLのEncodingInstructionAssignmentListでは、<GSER>要素の品目の[子供]に加えられてください。

   The EncodingInstructionAssignmentList notation is different for each
   set of encoding instructions.  The translation into ASN.X of an
   EncodingInstructionAssignmentList for GSER is specified in a separate
   document [GSEREIT].

指示をコード化する各セットにおいて、EncodingInstructionAssignmentList記法は異なっています。 GSERのためのEncodingInstructionAssignmentListのASN.Xへの翻訳は別々のドキュメント[GSEREIT]で指定されます。

      Aside: The translation of an EncodingInstructionAssignmentList for
      GSER, as it is currently defined, is always empty.

傍らに: それが現在定義されるとき、GSERのためのEncodingInstructionAssignmentListの翻訳はいつも空です。

   If the encodingreference in an EncodingControlSection is XER, then
   the translation of the EncodingControlSection is an element item with
   the [local name] "XER".  The translation of the
   EncodingInstructionAssignmentList in the EncodingControlSection SHALL
   be added to the [children] of the <XER> element item.  The
   translation into ASN.X of an EncodingInstructionAssignmentList for
   XER is specified in a separate document [XEREIT].

EncodingControlSectionのencodingreferenceがXERであるなら、EncodingControlSectionに関する翻訳は[地方名]"XER"がある要素の品目です。 翻訳、EncodingControlSection SHALLのEncodingInstructionAssignmentListでは、<XER>要素の品目の[子供]に加えられてください。 XERのためのEncodingInstructionAssignmentListのASN.Xへの翻訳は別々のドキュメント[XEREIT]で指定されます。

15.  Security Considerations

15. セキュリティ問題

   The ASN.X translation of an ASN.1 specification is semantically
   equivalent to the original ASN.1 specification.  The security
   considerations that apply to an application built from the original
   ASN.1 specification apply equally to an application built from the
   ASN.X translation.

ASN.1仕様のASN.X翻訳はオリジナルのASN.1仕様に意味的に同等です。 当初のASN.1仕様から組立てられたアプリケーションに適用されるセキュリティ問題は等しくASN.X翻訳から組立てられたアプリケーションに適用されます。

   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 module potentially
   changes if it is decoded and re-encoded (though its ASN.1 value is
   preserved), disrupting the Canonical XML representation.  To avoid
   this problem, ASN.X modules MUST be normalized prior to the
   application of syntax-based canonicalization.  The normalization
   rules can be found in Section 6.13 of the specification for RXER
   [RXER].

XMLドキュメント(例えば、Canonical XML[CXML])のための構文ベースのcanonicalizationは保存されるXMLドキュメントのInfosetによります。 しかしながら、ASN.XモジュールのInfoset表現は、それが解読されて、再コード化されるかどうかを(ASN.1価値は守られますが)潜在的に変えます、Canonical XML表現を中断して。 この問題を避けるために、構文ベースのcanonicalizationのアプリケーションの前にASN.Xモジュールを正常にしなければなりません。 RXER[RXER]のための仕様のセクション6.13で正常化規則を見つけることができます。

16.  Acknowledgements

16. 承認

   The technology described in this document is the product of a
   research project begun jointly by Adacel Technologies Limited and
   Deakin University, and subsequently refined and completed by eB2Bcom.

本書では説明された技術はeB2BcomによってAdacel Technologies株式会社とディーキン大学によって共同で始められて、次に、洗練されて、完成した研究計画の製品です。

Legg                          Experimental                     [Page 94]

RFC 4912               Abstract Syntax Notation X              July 2007

[94ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

17.  References

17. 参照

17.1.  Normative References

17.1. 引用規格

   [BCP14]    Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

[BCP14] ブラドナー、S.、「Indicate Requirement LevelsへのRFCsにおける使用のためのキーワード」、BCP14、RFC2119、1997年3月。

   [URI]      Berners-Lee, T., Fielding, R. and L. Masinter, "Uniform
              Resource Identifiers (URI): Generic Syntax", STD 66, RFC
              3986, January 2005.

[URI]バーナーズ・リー、T.、フィールディング、R.、およびL.Masinter、「Uniform Resource Identifier(URI):」 「ジェネリック構文」、STD66、RFC3986、2005年1月。

   [GSER]     Legg, S., "Generic String Encoding Rules (GSER) for ASN.1
              Types", RFC 3641, October 2003.

[GSER]Legg、2003年10月のS.、「ASN.1タイプのためのジェネリックストリング符号化規則(GSER)」RFC3641。

   [GSEREI]   Legg, S., "Encoding Instructions for the Generic String
              Encoding Rules (GSER)", RFC 4792, January 2007.

[GSEREI]Legg、S.、「ジェネリックストリング符号化規則(GSER)のための指示をコード化します」、RFC4792、2007年1月。

   [RXER]     Legg, S. and D. Prager, "Robust XML Encoding Rules (RXER)
              for Abstract Syntax Notation One (ASN.1)",
               RFC 4910, July 2007.

[RXER] Legg、S.、およびD.プラーガー、「強健なXMLコード化は抽象構文記法1(ASN.1)のために(RXER)を統治します」、RFC4910、2007年7月。

   [RXEREI]   Legg, S., "Encoding Instructions for the Robust XML
              Encoding Rules (RXER)",
               RFC 4911, July 2007.

[RXEREI] Legg、S.、「強健なXML符号化規則(RXER)のために指示をコード化します」、RFC4911、2007年7月。

   [GSEREIT]  Legg, S., "Abstract Syntax Notation X (ASN.X)
              Representation of Encoding Instructions for the Generic
              String Encoding Rules (GSER)",
               RFC 4913, July 2007.

[GSEREIT]Legg、S.、「ジェネリックストリングコード化のためのコード化指示の抽象構文記法X(ASN.X)表現は(GSER)を統治します」、RFC4913、2007年7月。

   [XEREIT]   Legg, S., "Abstract Syntax Notation X (ASN.X)
              Representation of Encoding Instructions for the XML
              Encoding Rules (XER)",
               RFC 4914, July 2007.

[XEREIT]Legg、S.、「XMLコード化のためのコード化指示の抽象構文記法X(ASN.X)表現は(XER)を統治します」、RFC4914、2007年7月。

   [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]ITU-T推薦X.680(07/02)| ISO/IEC8824-1、情報技術--抽象的なSyntax Notation One(ASN.1): 基本的な記法の仕様。

   [X.680-1]  ITU-T Recommendation X.680 (2002) Amendment 1 (10/03) |
              ISO/IEC 8824-1:2002/Amd 1:2004, Support for EXTENDED-XER.

[X.680-1]ITU-T推薦X.680(2002)修正1(10/03)| ISO/IEC8824-1: 2002/Amd1:2004、拡張XERのサポート。

   [X.681]    ITU-T Recommendation X.681 (07/02) | ISO/IEC 8824-2,
              Information technology - Abstract Syntax Notation One
              (ASN.1):  Information object specification.

[X.681]ITU-T推薦X.681(07/02)| ISO/IEC8824-2、情報技術--抽象的なSyntax Notation One(ASN.1): 情報オブジェクト仕様。

Legg                          Experimental                     [Page 95]

RFC 4912               Abstract Syntax Notation X              July 2007

[95ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   [X.682]    ITU-T Recommendation X.682 (07/02) | ISO/IEC 8824-3,
              Information technology - Abstract Syntax Notation One
              (ASN.1):  Constraint specification.

[X.682]ITU-T推薦X.682(07/02)| ISO/IEC8824-3、情報技術--抽象的なSyntax Notation One(ASN.1): 規制仕様。

   [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.683]ITU-T推薦X.683(07/02)| ISO/IEC8824-4、情報技術--抽象的なSyntax Notation One(ASN.1): ASN.1仕様のパラメタリゼーション。

   [X.693]    ITU-T Recommendation X.693 (12/01) | ISO/IEC 8825-4:2002,
              Information technology - ASN.1 encoding rules: XML
              encoding rules (XER).

[X.693]ITU-T推薦X.693(12/01)| ISO/IEC8825-4: 2002、情報技術--ASN.1符号化規則: XMLコード化は(XER)を統治します。

   [X.693-1]  Amendment 1: (to ITU-T Rec. X.693 | ISO/IEC 8825-4) XER
              encoding instructions and EXTENDED-XER.

[X.693-1]修正1: (ITU-T Recに。 X.693| ISO/IEC8825-4) 指示をコード化するXERとEXTENDED-XER。

   [XML10]    Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E. and
              F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fourth
              Edition)", W3C Recommendation,
              http://www.w3.org/TR/2006/REC-xml-20060816, August 2006.

[XML10] ロバの鳴き声とT.とパオリとJ.とSperberg-マックィーンとC.とMalerとE.とF.Yergeau、「拡張マークアップ言語(XML)1.0(第4版)」、W3C推薦、 http://www.w3.org/TR/2006/REC-xml-20060816 (2006年8月)。

   [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.

[XML11]は、T.、パオリ、J.、Sperberg-マックィーン、C.、Maler、E.、Yergeau、F.、およびJ.カウァン、「拡張マークアップ言語(XML)1.1(第2版)」をいななかせます、W3C推薦、 http://www.w3.org/TR/2006/REC-xml11-20060816 、2006年8月。

   [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.

[XMLNS10]は、T.、オランダ人、D.、俗人、A.、およびR.トビン、「XML1.0(第2版)の名前空間」をいななかせます、W3C推薦、 http://www.w3.org/TR/2006/REC-xml-names-20060816 、2006年8月。

   [XMLNS11]  Bray, T., Hollander, D., Layman, A. and R. Tobin,
              "Namespaces in XML 1.1 (Second Edition)", W3C
              Recommendation,
              http://www.w3.org/TR/2006/REC-xml-names11-20060816, August
              2006.

[XMLNS11]は、T.とオランダ人とD.と俗人とA.とR.トビン、「XML1.1(第2版)の名前空間」をいななかせます、W3C推薦、 http://www.w3.org/TR/2006/REC-xml-names11-20060816 、2006年8月。

   [INFOSET]  Cowan, J. and R. Tobin, "XML Information Set (Second
              Edition)", W3C Recommendation,
              http://www.w3.org/TR/2004/REC-xml-infoset-20040204,
              February 2004.

[INFOSET] カウァンとJ.とR.トビン、「XML一組の情報(第2版)」、W3C推薦、 http://www.w3.org/TR/2004/REC-xml-infoset-20040204 、2004年2月。

   [UNICODE]  The Unicode Consortium, "The Unicode Standard, Version
              4.0", Boston, MA, Addison-Wesley Developers Press, 2003.
              ISBN 0-321-18578-1.

[ユニコード] ユニコード共同体、「ユニコード規格、バージョン4インチ、ボストン(MA)アディソン-ウエスリー開発者プレス、2003。」 ISBN0-321-18578-1。

Legg                          Experimental                     [Page 96]

RFC 4912               Abstract Syntax Notation X              July 2007

[96ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

17.2.  Informative References

17.2. 有益な参照

   [CXML]     Boyer, J., "Canonical XML Version 1.0", W3C
              Recommendation,
              http://www.w3.org/TR/2001/REC-xml-c14n-20010315, March
              2001.

[CXML]ボワイエ、J.、「正準なXML、バージョン1インチ、W3C推薦、 http://www.w3.org/TR/2001/REC-xml-c14n-20010315 、2001インチ年3月。

   [XSD1]     Thompson, H., Beech, D., Maloney, M. and N. Mendelsohn,
              "XML Schema Part 1: Structures Second Edition", W3C
              Recommendation,
              http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/,
              October 2004.

[XSD1] トンプソン、H.、ぶな、D.、マローニー、M.、およびN.メンデルゾーン、「XML図式第1部:」 「構造第2版」、W3C推薦、 http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/ 、2004年10月。

   [RNG]      Clark, J. and M. Makoto, "RELAX NG Tutorial", OASIS
              Committee Specification, http://www.oasis-open.org/
              committees/relax-ng/tutorial-20011203.html, December 2001.

[RNG] クラークとJ.とM.誠、「RELAX NGチュートリアル」、OASIS Committee Specification、ngを http://www.oasis-open.org/ 委員会/寛げる/チュートリアル-20011203.html、2001年12月。

Legg                          Experimental                     [Page 97]

RFC 4912               Abstract Syntax Notation X              July 2007

[97ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

Appendix A.  ASN.1 for ASN.X

ASN.Xのための付録A.ASN.1

   This appendix is normative.

この付録は規範的です。

   AbstractSyntaxNotation-X
       { iso(1) identified-organization(3) dod(6)
         internet(1) private(4) enterprise(1)
         xmled(21472) asnx(1) module(0) notation(1) }

AbstractSyntaxNotation-X特定された組織(3)dod(6)のiso(1)のインターネット(1)個人的な(4)企業(1)xmled(21472) asnx(1)モジュール(0)記法(1)

   -- Copyright (C) The IETF Trust (2007).  This version of
   -- this ASN.1 module is part of RFC 4912; see the RFC itself
   -- for full legal notices.
   --
   -- Regarding this ASN.1 module or any portion of it, the author
   -- makes no guarantees and is not responsible for any damage
   -- resulting from its use.  The author grants irrevocable permission
   -- to anyone to use, modify, and distribute it in any way that does
   -- not diminish the rights of anyone else to use, modify, and
   -- distribute it, provided that redistributed derivative works do
   -- not contain misleading author or version information.
   -- Derivative works need not be licensed under similar terms.

-- IETFが信じる著作権(C)(2007)。 このバージョン、--このASN.1モジュールはRFC4912の一部です。 完全な法定の通知に関してRFC自身を見てください。 -- -- このASN.1モジュールかそれのどんな部分も見なす作者--使用から生じて、造のノーは、どんな損害にも保証して、原因となりません。 それを分配してください、そして、再配付された派生物が働いていれば、してください。作者が、何らかの方法でそれを使用して、変更して、分配するそれがする人はだれへのも呼び戻せない許可--使用する他の誰の権利も減少させないのを与える、変更、--、--作者かバージョンが情報であるとミスリードしながら、含んでいません。 -- 派生している作品は同類項に基づき認可される必要はありません。

   DEFINITIONS
   RXER INSTRUCTIONS
   AUTOMATIC TAGS
   EXTENSIBILITY IMPLIED ::= BEGIN

定義RXER指示オートマチックは含意された伸展性にタグ付けをします:、:= 始まってください。

   IMPORTS
       Markup,
       AnyURI,
       NCName,
       Name,
       QName
           FROM AdditionalBasicDefinitions
               { iso(1) identified-organization(3) dod(6)
                 internet(1) private(4) enterprise(1)
                 xmled(21472) asnx(1) module(0) basic(0) }
       GSER-EncodingInstruction,
       GSER-EncodingInstructionAssignmentList
           FROM GSER-EncodingInstructionNotation
               { iso(1) identified-organization(3) dod(6)
                 internet(1) private(4) enterprise(1)
                 xmled(21472) asnx(1) module(0) gser-ei-notation(2) }
       XER-EncodingInstruction,
       XER-EncodingInstructionAssignmentList
           FROM XER-EncodingInstructionNotation
               { iso(1) identified-organization(3) dod(6)
                 internet(1) private(4) enterprise(1)

IMPORTS Markup、AnyURI、NCName、Name、QName FROM AdditionalBasicDefinitionsのiso(1)の特定された組織(3)dod(6)のインターネットの(1)の個人的な(4)企業(1)xmled(21472) asnx(1)モジュール(0)基本的な(0)GSER-EncodingInstruction; 特定された組織(3)dod(6)のGSER-EncodingInstructionAssignmentListのインターネット(1)個人的な(4)企業(1)xmled(21472) asnx(1)モジュール(0)gser-ei FROM GSER-EncodingInstructionNotation iso(1)記法(2)XER-EncodingInstruction、XER-EncodingInstructionAssignmentList FROM XER-EncodingInstructionNotation、iso(1)の特定された組織(3)dod(6)のインターネット(1)私設の(4)企業(1)

Legg                          Experimental                     [Page 98]

RFC 4912               Abstract Syntax Notation X              July 2007

[98ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

                 xmled(21472) asnx(1) module(0) xer-ei-notation(3) }
       ;

xmled(21472) asnx(1)モジュール(0)xer-ei記法(3) ;

   ModuleDefinition ::= [HOLLOW-INSERTIONS] SEQUENCE {
       annotation            Annotation OPTIONAL,
       format                [ATTRIBUTE] [VERSION-INDICATOR]
                                 UTF8String ("1.0", ...) DEFAULT "1.0",
       name                  [ATTRIBUTE] ModuleReference,
       identifier            [ATTRIBUTE] DefinitiveIdentifier OPTIONAL,
       schemaIdentity        [ATTRIBUTE] AnyURI OPTIONAL,
       targetNamespace       [ATTRIBUTE] AnyURI OPTIONAL,
       targetPrefix          [ATTRIBUTE] NCName OPTIONAL,
       tagDefault            [ATTRIBUTE] TagDefault DEFAULT automatic,
       extensibilityImplied  [ATTRIBUTE] BOOLEAN DEFAULT FALSE,
       export                SEQUENCE { } OPTIONAL,
           -- export is not used in this version
       imports               [GROUP] ImportList OPTIONAL,
       assignments           [GROUP] AssignmentList OPTIONAL,
       encodingControls      EncodingControlSections OPTIONAL
   }

ModuleDefinition:、:= [空洞の入] 系列{ 注釈Annotation OPTIONAL、形式ATTRIBUTEバージョン-INDICATOR UTF8String、(「1インチ、…)、デフォルト、「1インチ、名前属性ModuleReference、識別子のDefinitiveIdentifierの任意の、そして、schemaIdentityの属性のAnyURIの任意の、そして、targetNamespace属性AnyURI任意のtargetPrefix属性NCName任意のtagDefault属性TagDefault属性デフォルト自動です、extensibilityImpliedはブールデフォルトを虚偽で結果と考えます、輸出系列、任意である、」; 輸出はこのバージョン輸入GROUP ImportList OPTIONAL、課題GROUP AssignmentList OPTIONAL、encodingControls EncodingControlSections OPTIONALで使用されません; }

   ModuleReference ::= TypeReference

ModuleReference:、:= TypeReference

   DefinitiveIdentifier ::= OBJECT IDENTIFIER

DefinitiveIdentifier:、:= オブジェクト識別子

   TagDefault ::= ENUMERATED { explicit, implicit, automatic }

TagDefault:、:= 列挙されます。明白で、暗黙で、自動です。

   Annotation ::= Markup

注釈:、:= マークアップ

   ImportList ::= SEQUENCE SIZE (1..MAX) OF import Import

ImportList:、:= SEQUENCE SIZE(1..MAX)OF輸入Import

   Import ::= SEQUENCE {
       name            [ATTRIBUTE] ModuleReference OPTIONAL,
       identifier      [ATTRIBUTE] DefinitiveIdentifier OPTIONAL,
       schemaIdentity  [ATTRIBUTE] AnyURI OPTIONAL,
       namespace       [ATTRIBUTE] AnyURI OPTIONAL,
       schemaLocation  [ATTRIBUTE] AnyURI OPTIONAL
   }

以下をインポートしてください:= 系列[ATTRIBUTE]をModuleReference OPTIONALと命名してください、識別子[ATTRIBUTE]DefinitiveIdentifier OPTIONAL、schemaIdentity[ATTRIBUTE]AnyURI OPTIONAL、名前空間[ATTRIBUTE]AnyURI OPTIONAL、schemaLocation[ATTRIBUTE]AnyURI OPTIONAL

   AssignmentList ::= SEQUENCE SIZE (1..MAX) OF
       assignment [GROUP] Assignment

AssignmentList:、:= SEQUENCE SIZE(1..MAX)OF課題[GROUP]課題

   Assignment ::= [NO-INSERTIONS] CHOICE {
       namedType       TypeAssignment,
       namedValue      ValueAssignment,
       namedValueSet   ValueSetTypeAssignment,
       namedClass      ObjectClassAssignment,
       namedObject     ObjectAssignment,

課題:、:= [入がありません]選択、namedType TypeAssignment、namedValue ValueAssignment、namedValueSet ValueSetTypeAssignment、namedClass ObjectClassAssignment、namedObject ObjectAssignment

Legg                          Experimental                     [Page 99]

RFC 4912               Abstract Syntax Notation X              July 2007

[99ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

       namedObjectSet  ObjectSetAssignment,
       component       [GROUP] TopLevelNamedType
   }

namedObjectSet ObjectSetAssignment、コンポーネント[GROUP]TopLevelNamedType

   TypeAssignment ::= SEQUENCE {
       annotation  Annotation OPTIONAL,
       name        [ATTRIBUTE] TypeReference,
       type        [GROUP] Type
   }

TypeAssignment:、:= 系列注釈Annotation OPTIONAL(名前[ATTRIBUTE]TypeReference)は[GROUP]タイプをタイプします。

   TypeReference ::= UTF8String (PATTERN "[A-Z]\w*(-\w+)*")
                                 -- \w is equivalent to [a-zA-Z0-9]

TypeReference:、:= UTF8String、(PATTERN、「[A-Z]\w*、(-、\w+) *、」、)、--、\wは相当しています。[a-zA-Z0-9]

   ValueAssignment ::= SEQUENCE {
       annotation  Annotation OPTIONAL,
       name        [ATTRIBUTE] ValueReference,
       type        [GROUP] Type,
       value       [GROUP] Value
   }

ValueAssignment:、:= 系列値の[GROUP]は、注釈Annotation OPTIONAL(名前[ATTRIBUTE]ValueReference)が[GROUP]タイプをタイプするのを評価します。

   ValueReference ::= Identifier

ValueReference:、:= 識別子

   Identifier ::= UTF8String (PATTERN "[a-z]\w(-\w+)*")

識別子:、:= UTF8String(パターン、「[a-z]\w、(-、\w+) *、」、)

   ValueSetTypeAssignment ::= SEQUENCE {
       annotation  Annotation OPTIONAL,
       name        [ATTRIBUTE] TypeReference,
       type        [GROUP] Type,
       valueSet    [GROUP] ValueSet
   }

ValueSetTypeAssignment:、:= 系列注釈Annotation OPTIONAL(名前[ATTRIBUTE]TypeReference)は[GROUP]タイプ、valueSet[GROUP]ValueSetをタイプします。

   ObjectClassAssignment ::= SEQUENCE {
       annotation   Annotation OPTIONAL,
       name         [ATTRIBUTE] ObjectClassReference,
       objectClass  [GROUP] ObjectClass
   }

ObjectClassAssignment:、:= 系列注釈Annotation OPTIONAL、名前[ATTRIBUTE]ObjectClassReference、objectClass[GROUP]ObjectClass

   ObjectClassReference ::= UTF8String
                                (PATTERN "[A-Z][A-Z0-9]*(-[A-Z0-9]+)*")

ObjectClassReference:、:= UTF8String(パターン、「[A-Z][A-Z0-9]*、(-、[A-Z0-9]+) *、」、)

   ObjectAssignment ::= SEQUENCE {
       annotation   Annotation OPTIONAL,
       name         [ATTRIBUTE] ObjectReference,
       objectClass  [GROUP] DefinedObjectClass,
       object       [GROUP] Object
   }

ObjectAssignment:、:= 系列注釈Annotation OPTIONAL、名前[ATTRIBUTE]ObjectReference、objectClass[GROUP]DefinedObjectClass、オブジェクト[GROUP]が反対します。

   ObjectReference ::= ValueReference

ObjectReference:、:= ValueReference

Legg                          Experimental                    [Page 100]

RFC 4912               Abstract Syntax Notation X              July 2007

[100ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   ObjectSetAssignment ::= SEQUENCE {
       annotation   Annotation OPTIONAL,
       name         [ATTRIBUTE] ObjectSetReference,
       objectClass  [GROUP] DefinedObjectClass,
       objectSet    [GROUP] ObjectSet
   }

ObjectSetAssignment:、:= 系列注釈Annotation OPTIONAL、名前[ATTRIBUTE]ObjectSetReference、objectClass[GROUP]DefinedObjectClass、objectSet[GROUP]ObjectSet

   ObjectSetReference ::= TypeReference

ObjectSetReference:、:= TypeReference

   TopLevelNamedType ::= NamedType
       (WITH COMPONENTS { ...,
           component (WITH COMPONENTS { ...,
               definition (WITH COMPONENTS { ..., reference ABSENT })
           }),
           element   (WITH COMPONENTS { ...,
               definition (WITH COMPONENTS { ..., reference ABSENT })
           }),
           attribute (WITH COMPONENTS { ...,
               definition (WITH COMPONENTS { ..., reference ABSENT })
           }),
           group         ABSENT,
           member        ABSENT,
           item          ABSENT,
           simpleContent ABSENT })

TopLevelNamedType:、:= NamedType(WITH COMPONENTS { ..., component (WITH COMPONENTS { ..., definition (WITH COMPONENTS { ..., reference ABSENT }) }), element (WITH COMPONENTS { ..., definition (WITH COMPONENTS { ..., reference ABSENT }) }), attribute (WITH COMPONENTS { ..., definition (WITH COMPONENTS { ..., reference ABSENT }) }), group ABSENT, member ABSENT, item ABSENT, simpleContent ABSENT })

   NamedType ::= [SINGULAR-INSERTIONS] CHOICE {
       component      Element,
       element        Element,
       attribute      Attribute,
       group          InvisibleNamedType,
       member         InvisibleNamedType,
       item           InvisibleNamedType,
       simpleContent  InvisibleNamedType
   }

NamedType:、:= [まれな入] 選択コンポーネントElement(要素Element)はAttribute、グループInvisibleNamedType、メンバーInvisibleNamedType、項目InvisibleNamedType、simpleContent InvisibleNamedTypeを結果と考えます。

   Attribute ::= GenericNamedType
       (WITH COMPONENTS { ...,
           definition (WITH COMPONENTS { ...,
               local (WITH COMPONENTS { ...,
                   typeAsVersion ABSENT }) }) })

以下を結果と考えてください:= GenericNamedType(WITH COMPONENTS、…、定義、(WITH COMPONENTS、…で、地方、(WITH COMPONENTS、…、typeAsVersion ABSENT)、)、)

   Element ::= GenericNamedType
       (WITH COMPONENTS { ...,
           definition (WITH COMPONENTS { ...,
               local (WITH COMPONENTS { ...,
                   versionIndicator ABSENT }) }) })

要素:、:= GenericNamedType(WITH COMPONENTS、…、定義、(WITH COMPONENTS、…で、地方、(WITH COMPONENTS、…、versionIndicator ABSENT)、)、)

Legg                          Experimental                    [Page 101]

RFC 4912               Abstract Syntax Notation X              July 2007

[101ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   InvisibleNamedType ::= GenericNamedType
       (WITH COMPONENTS { ...,
           definition (WITH COMPONENTS { ...,
               reference  ABSENT,
               local (WITH COMPONENTS { ...,
                   typeAsVersion ABSENT,
                   versionIndicator ABSENT }) }) })

InvisibleNamedType:、:= GenericNamedType(WITH COMPONENTS、…、定義、(WITH COMPONENTS、参照ABSENTの、そして、地方の…、(WITH COMPONENTS、…、typeAsVersion ABSENT、versionIndicator ABSENT)、)、)

   GenericNamedType ::= [HOLLOW-INSERTIONS] SEQUENCE {
       annotation  Annotation OPTIONAL,
       identifier  [ATTRIBUTE] IdentifierOrEmpty OPTIONAL,
       definition  [GROUP] CHOICE {
           reference   [GROUP] DefinedComponent,
           local       [GROUP] LocalComponent
       }
   }

GenericNamedType:、:= [空洞の入] 系列注釈Annotation OPTIONAL、識別子[ATTRIBUTE]IdentifierOrEmpty OPTIONAL、定義[GROUP]CHOICEは[GROUP]DefinedComponent、地方の[GROUP]LocalComponentに参照をつけます。

   IdentifierOrEmpty ::= UTF8String (INCLUDES Identifier | "")

IdentifierOrEmpty:、:= UTF8String(識別子を含んでいます|、「「)」

   DefinedComponent ::= [HOLLOW-INSERTIONS] SEQUENCE {
       name         [GROUP] [NO-INSERTIONS] CHOICE {
           ref          [ATTRIBUTE] QName,
           elementType  [ATTRIBUTE] Name
       },
       namespace    [ATTRIBUTE] AnyURI OPTIONAL,
       context      [ATTRIBUTE] AnyURI OPTIONAL,
       embedded     [ATTRIBUTE] BOOLEAN OPTIONAL,
       prefixes     [GROUP] EncodingPrefixes OPTIONAL
   }
   (WITH COMPONENTS { ...,
        name (WITH COMPONENTS { ref PRESENT }),
        namespace ABSENT } |
    WITH COMPONENTS { ...,
        name (WITH COMPONENTS { elementType PRESENT }),
        embedded ABSENT })

DefinedComponent:、:= [HOLLOW-INSERTIONS]SEQUENCE、審判[ATTRIBUTE]QName、elementType[ATTRIBUTE]名と[GROUP][INSERTIONSがない]CHOICEを命名してください、名前空間[ATTRIBUTE]AnyURI OPTIONAL、文脈[ATTRIBUTE]AnyURI OPTIONAL、埋め込まれた[ATTRIBUTE]BOOLEAN OPTIONAL、接頭語[GROUP]EncodingPrefixes OPTIONAL(WITH COMPONENTS、…、名前、(WITH COMPONENTS、審判PRESENT)、名前空間ABSENT、| WITH COMPONENTS、…、名前(WITH COMPONENTS elementType PRESENT)、埋め込まれたABSENT)

   LocalComponent ::= SEQUENCE {
       name              [ATTRIBUTE] NCName,
       typeAsVersion     [ATTRIBUTE] BOOLEAN OPTIONAL,
       versionIndicator  [ATTRIBUTE] BOOLEAN OPTIONAL,
       type              [GROUP] Type
   }

LocalComponent:、:= 系列名前[ATTRIBUTE]NCName(typeAsVersion[ATTRIBUTE]BOOLEAN OPTIONAL、versionIndicator[ATTRIBUTE]BOOLEAN OPTIONAL)は[GROUP]タイプをタイプします。

   Type ::= [NO-INSERTIONS] CHOICE {
       typeRef  [NAME AS "type"] [ATTRIBUTE] QName,
       type     ElementFormType
   }

以下をタイプしてください:= [入がありません] 選択typeRef[NAME ASは「タイプする」][ATTRIBUTE]QName、タイプElementFormType

Legg                          Experimental                    [Page 102]

RFC 4912               Abstract Syntax Notation X              July 2007

[102ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   ElementFormType ::= [HOLLOW-INSERTIONS] SEQUENCE {
       annotation  Annotation OPTIONAL,
       explicit    [ATTRIBUTE] BOOLEAN OPTIONAL,
       definition  [GROUP] CHOICE {
           reference        [GROUP] DefinedType,
           expanded         ExpandedType,
           ancestor         [ATTRIBUTE] INTEGER (1..MAX),
           namedBitList     NamedBitList,
           namedNumberList  NamedNumberList,
           enumerated       EnumeratedType,
           tagged           TaggedType,
           prefixed         EncodingPrefixedType,
           selection        SelectionType,
           instanceOf       InstanceOfType,
           fromClass        ObjectClassFieldType,
           fromObjects      InformationFromObjects,
           sequence         SequenceType,
           set              SetType,
           choice           ChoiceType,
           union            UnionType,
           sequenceOf       SequenceOfType,
           setOf            SetOfType,
           list             ListType,
           constrained      ConstrainedType
       }
   }

ElementFormType:、:= [空洞の入] 系列{ 注釈Annotation OPTIONAL、明白なATTRIBUTE BOOLEAN OPTIONAL; 定義GROUP CHOICE; 参照GROUP DefinedType、拡張ExpandedType、先祖ATTRIBUTE INTEGER(1..MAX)、namedBitList NamedBitList(namedNumberList NamedNumberList)はEnumeratedTypeを数え上げました、タグ付けをされたTaggedType、前に置かれたEncodingPrefixedType、選択SelectionType、instanceOf InstanceOfType、fromClass ObjectClassFieldType、fromObjects InformationFromObjects、系列SequenceType、セットSetType、選択ChoiceType、組合UnionType、sequenceOf SequenceOfType、setOf SetOfType、リストListType、強制的なConstrainedType; }

   DefinedType ::= SEQUENCE {
       name       [GROUP] [NO-INSERTIONS] CHOICE {
           ref          [ATTRIBUTE] QName,
           elementType  [ATTRIBUTE] Name
       },
       context    [ATTRIBUTE] AnyURI OPTIONAL,
       embedded   [ATTRIBUTE] BOOLEAN OPTIONAL
   }
   (WITH COMPONENTS { ...,
        name (WITH COMPONENTS { ref PRESENT }) } |
    WITH COMPONENTS { ...,
        name (WITH COMPONENTS { elementType PRESENT }),
        embedded ABSENT })

DefinedType:、:= SEQUENCE、審判[ATTRIBUTE]QName、elementType[ATTRIBUTE]名と[GROUP][INSERTIONSがない]CHOICEを命名してください、文脈[ATTRIBUTE]AnyURI OPTIONAL、埋め込まれた[ATTRIBUTE]BOOLEAN OPTIONAL(WITH COMPONENTS、…、名前、(WITH COMPONENTS、審判PRESENT)、| WITH COMPONENTS、…、名前(WITH COMPONENTS elementType PRESENT)、埋め込まれたABSENT)

   ExpandedType ::= SEQUENCE {
       name    [ATTRIBUTE] NCName OPTIONAL,
       module  ReferencedModule OPTIONAL,
       type    [GROUP] Type
   }

ExpandedType:、:= 系列名前[ATTRIBUTE]NCName OPTIONAL(モジュールReferencedModule OPTIONAL)は[GROUP]タイプをタイプします。

   ReferencedModule ::= SEQUENCE {

ReferencedModule:、:= 系列

Legg                          Experimental                    [Page 103]

RFC 4912               Abstract Syntax Notation X              July 2007

[103ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

       name            [ATTRIBUTE] ModuleReference OPTIONAL,
       identifier      [ATTRIBUTE] DefinitiveIdentifier OPTIONAL,
       schemaIdentity  [ATTRIBUTE] AnyURI OPTIONAL
   }

[ATTRIBUTE]ModuleReference OPTIONAL、識別子[ATTRIBUTE]DefinitiveIdentifier OPTIONALをschemaIdentity[ATTRIBUTE]AnyURI OPTIONALと命名してください。

   NamedBitList ::= SEQUENCE SIZE (1..MAX) OF namedBit NamedBit

NamedBitList:、:= namedBit NamedBitの系列サイズ(1..MAX)

   NamedBit ::= SEQUENCE {
       name        [ATTRIBUTE] NCName,
       identifier  [ATTRIBUTE] Identifier OPTIONAL,
       bit         [ATTRIBUTE] INTEGER (0..MAX)
   }

NamedBit:、:= 系列名前[ATTRIBUTE]NCName(識別子[ATTRIBUTE]識別子OPTIONAL)は[ATTRIBUTE]INTEGER(0..MAX)に噛み付きました。

   NamedNumberList ::= SEQUENCE SIZE (1..MAX) OF
       namedNumber NamedNumber

NamedNumberList:、:= namedNumber NamedNumberの系列サイズ(1..MAX)

   NamedNumber ::= SEQUENCE {
       name        [ATTRIBUTE] NCName,
       identifier  [ATTRIBUTE] Identifier OPTIONAL,
       number      [ATTRIBUTE] INTEGER
   }

NamedNumber:、:= 系列[ATTRIBUTE]NCName、識別子[ATTRIBUTE]識別子OPTIONALを数[ATTRIBUTE]のINTEGERと命名してください。

   EnumeratedType ::= SEQUENCE {
       root       [GROUP] Enumeration,
       extension  SEQUENCE {
           exception  ExceptionSpec OPTIONAL,
           additions  [GROUP] Enumeration OPTIONAL
       } OPTIONAL
   }

EnumeratedType:、:= 系列[GROUP]列挙、拡大SEQUENCEを根づかせてください、例外ExceptionSpec OPTIONAL、追加[GROUP]列挙OPTIONAL、OPTIONAL

   Enumeration ::= SEQUENCE SIZE (1..MAX) OF
       enumeration EnumerationItem

列挙:、:= SEQUENCE SIZE(1..MAX)OF列挙EnumerationItem

   EnumerationItem ::= SEQUENCE {
       name        [ATTRIBUTE] NCName,
       identifier  [ATTRIBUTE] Identifier OPTIONAL,
       number      [ATTRIBUTE] INTEGER OPTIONAL
   }

EnumerationItem:、:= 系列[ATTRIBUTE]NCName、識別子[ATTRIBUTE]識別子OPTIONALを数[ATTRIBUTE]のINTEGER OPTIONALと命名してください。

   Tag ::= SEQUENCE {
       tagClass  [ATTRIBUTE] TagClass OPTIONAL,
       number    [ATTRIBUTE] INTEGER (0..MAX),
       tagging   [ATTRIBUTE] Tagging OPTIONAL
   }

以下にタグ付けをしてください:= 系列tagClass[ATTRIBUTE]TagClass OPTIONAL、OPTIONALにタグ付けをしながら[ATTRIBUTE]にタグ付けをする数[ATTRIBUTE]のINTEGER(0..MAX)

   TaggedType ::= SEQUENCE {
       COMPONENTS OF Tag,
       type  [GROUP] Type

TaggedType:、:= SEQUENCE、COMPONENTS OF Tag、タイプ[GROUP]がタイプします。

Legg                          Experimental                    [Page 104]

RFC 4912               Abstract Syntax Notation X              July 2007

[104ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   }

}

   TagClass ::= ENUMERATED { universal, application, private }

TagClass:、:= 列挙されます。普遍的であって、アプリケーション的で、個人的です。

   Tagging ::= ENUMERATED { explicit, implicit }

以下にタグ付けをします:= 列挙されます。明白であって、暗黙です。

   EncodingPrefixedType ::= [HOLLOW-INSERTIONS] SEQUENCE {
       prefixes  [GROUP] EncodingPrefixes,
       type      [GROUP] Type
   }

EncodingPrefixedType:、:= [空洞の入] 系列接頭語[GROUP]EncodingPrefixes、タイプ[GROUP]がタイプします。

   EncodingPrefixes ::= SEQUENCE SIZE (1..MAX) OF
       prefix [GROUP] EncodingPrefix

EncodingPrefixes:、:= SEQUENCE SIZE(1..MAX)OF接頭語[GROUP]EncodingPrefix

   EncodingPrefix ::= [SINGULAR-INSERTIONS] CHOICE {
       tag   [NAME AS "TAG"] Tag,
       gser  [NAME AS "GSER"] GSER-EncodingInstruction,
       xer   [NAME AS "XER"] XER-EncodingInstruction
       -- plus encoding instructions
       -- for other encoding rules in the future
   }

EncodingPrefix:、:= [まれな入] 選択{[NAME AS「タグ」]タグにタグ付けをしてください、gser["GSER"として、命名する]GSER-EncodingInstruction、xer["XER"として、命名する]XER-EncodingInstruction--そのうえ、将来、他の符号化規則のための指示をコード化します}

   SelectionType ::= SEQUENCE {
       alternative  [GROUP] [SINGULAR-INSERTIONS] CHOICE {
           component    [ATTRIBUTE] QName,
           element      [ATTRIBUTE] QName,
           attribute    [ATTRIBUTE] QName,
           group        [ATTRIBUTE] QName,
           member       [ATTRIBUTE] QName
       },
       type         [GROUP] Type
   }

SelectionType:、:= 系列コンポーネント[ATTRIBUTE]QName、要素[ATTRIBUTE]QName、属性[ATTRIBUTE]QName、グループ[ATTRIBUTE]QName、メンバー[ATTRIBUTE]QNameがタイプする代替手段[GROUP][SINGULAR-INSERTIONS]CHOICE[GROUP]はタイプします。

   InstanceOfType ::= DefinedObjectClass

InstanceOfType:、:= DefinedObjectClass

   ObjectClassFieldType ::= SEQUENCE {
       objectClass  [GROUP] DefinedObjectClass,
       fieldName    [GROUP] FieldName
   }

ObjectClassFieldType:、:= 系列objectClass[グループ]DefinedObjectClass、fieldName[グループ]FieldName

   FieldName ::= [SINGULAR-INSERTIONS] CHOICE {
       fieldNameAtt  [NAME AS "fieldName"]
                         [ATTRIBUTE] PrimitiveFieldNames,
       fieldName     PrimitiveFieldNames
   }

FieldName:、:= [まれな入] 選択fieldNameAtt["fieldName"として、命名する][属性]PrimitiveFieldNames、fieldName PrimitiveFieldNames

   PrimitiveFieldNames ::= UTF8String

PrimitiveFieldNames:、:= UTF8String

Legg                          Experimental                    [Page 105]

RFC 4912               Abstract Syntax Notation X              July 2007

[105ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   InformationFromObjects ::= [HOLLOW-INSERTIONS] SEQUENCE {
       referencedObjects  [GROUP] ReferencedObjects,
       fieldName          [GROUP] FieldName
   }

InformationFromObjects:、:= [空洞の入] 系列referencedObjects[グループ]ReferencedObjects、fieldName[グループ]FieldName

   ReferencedObjects ::= [SINGULAR-INSERTIONS] CHOICE {
       object     [GROUP] Object,
       objectSet  [GROUP] ObjectSet
   }

ReferencedObjects:、:= [まれな入] 選択objectSet[GROUP]ObjectSet、オブジェクト[GROUP]は反対します。

   Insertions ::=
       ENUMERATED { none, hollow, singular, uniform, multiform }

入:、:= 列挙されます。なにも、まれで、一定の、そして、多様なくぼみ

   SequenceType ::= [HOLLOW-INSERTIONS] SEQUENCE {
       insertions         [ATTRIBUTE] Insertions OPTIONAL,
       root               [GROUP] ComponentTypeList OPTIONAL,
       extensionAndFinal  [GROUP] [HOLLOW-INSERTIONS] SEQUENCE {
           extension          [HOLLOW-INSERTIONS] SEQUENCE {
               exception          ExceptionSpec OPTIONAL,
               additions          [GROUP] ExtensionAdditions OPTIONAL
           },
           root               [GROUP] ComponentTypeList OPTIONAL
       } OPTIONAL
   }

SequenceType:、:= [空洞の入] 系列入[ATTRIBUTE]の入のOPTIONAL、[GROUP]ComponentTypeList OPTIONALを根づかせてください、extensionAndFinal[GROUP][HOLLOW-INSERTIONS]SEQUENCE、例外ExceptionSpec OPTIONAL、追加[GROUP]ExtensionAdditions OPTIONALが根づかせる拡大[HOLLOW-INSERTIONS]SEQUENCE[GROUP]、ComponentTypeList OPTIONAL、OPTIONAL

   ComponentTypeList ::= SEQUENCE SIZE (1..MAX) OF
       componentType [GROUP] ComponentType

ComponentTypeList:、:= componentType[グループ]ComponentTypeの系列サイズ(1..MAX)

   ComponentType ::= [NO-INSERTIONS] CHOICE {
       component     [GROUP] SequenceNamedType,
       optional      SEQUENCE {
           component     [GROUP] SequenceNamedType,
           default       Value OPTIONAL
       },
       componentsOf  Type
   }

ComponentType:、:= [入がありません] 選択コンポーネント[GROUP]SequenceNamedType、任意のSEQUENCE、コンポーネント[GROUP]SequenceNamedType、デフォルトValue OPTIONAL、componentsOf Type

   SequenceNamedType ::= NamedType
       (WITH COMPONENTS { ..., member ABSENT, item ABSENT })

SequenceNamedType:、:= NamedType(WITH COMPONENTS、…、メンバーABSENT、項目ABSENT)

   ExtensionAdditions ::= SEQUENCE SIZE (1..MAX) OF
       addition [GROUP] ExtensionAddition

ExtensionAdditions:、:= SEQUENCE SIZE(1..MAX)OF追加[GROUP]ExtensionAddition

   ExtensionAddition ::= [NO-INSERTIONS] CHOICE {
       extensionGroup  ExtensionAdditionGroup,
       componentType   [GROUP] ComponentType
   }

ExtensionAddition:、:= [入がありません] 選択extensionGroup ExtensionAdditionGroup、componentType[グループ]ComponentType

Legg                          Experimental                    [Page 106]

RFC 4912               Abstract Syntax Notation X              July 2007

[106ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   ExtensionAdditionGroup ::= [HOLLOW-INSERTIONS] SEQUENCE {
       version         [ATTRIBUTE] VersionNumber OPTIONAL,
       componentTypes  [GROUP] ComponentTypeList
   }

ExtensionAdditionGroup:、:= [空洞の入] 系列バージョン[ATTRIBUTE]VersionNumber OPTIONAL、componentTypes[GROUP]ComponentTypeList

   VersionNumber ::= INTEGER (2..MAX)

VersionNumber:、:= 整数(2..MAX)

   SetType ::= SequenceType

SetType:、:= SequenceType

   ChoiceOrUnionType ::= [HOLLOW-INSERTIONS] SEQUENCE {
       insertions  [ATTRIBUTE] Insertions OPTIONAL,
       precedence  [ATTRIBUTE] PrecedenceList OPTIONAL,
       root        [GROUP] AlternativeTypeList,
       extension   [HOLLOW-INSERTIONS] SEQUENCE {
           exception   ExceptionSpec OPTIONAL,
           additions   [GROUP] ExtensionAdditionAlternatives OPTIONAL
       } OPTIONAL
   }

ChoiceOrUnionType:、:= [空洞の入] 系列入[ATTRIBUTE]の入のOPTIONAL(先行[ATTRIBUTE]PrecedenceList OPTIONAL)は[GROUP]AlternativeTypeListを根づかせます、拡大[HOLLOW-INSERTIONS]SEQUENCE、例外ExceptionSpec OPTIONAL、追加[GROUP]ExtensionAdditionAlternatives OPTIONAL、OPTIONAL

   PrecedenceList ::= [LIST] SEQUENCE SIZE (1..MAX) OF member QName

PrecedenceList:、:= [LIST]SEQUENCE SIZE(1..MAX)OFメンバーQName

   AlternativeTypeList ::= SEQUENCE SIZE (1..MAX) OF
       component [GROUP] ChoiceOrUnionNamedType

AlternativeTypeList:、:= SEQUENCE SIZE(1..MAX)OFの部品[GROUP]ChoiceOrUnionNamedType

   ChoiceOrUnionNamedType ::= NamedType
       (WITH COMPONENTS { ..., item ABSENT, simpleContent ABSENT })

ChoiceOrUnionNamedType:、:= NamedType(WITH COMPONENTS、…、項目ABSENT、simpleContent ABSENT)

   ExtensionAdditionAlternatives ::= SEQUENCE SIZE (1..MAX) OF
       addition [GROUP] ExtensionAdditionAlternative

ExtensionAdditionAlternatives:、:= SEQUENCE SIZE(1..MAX)OF追加[GROUP]ExtensionAdditionAlternative

   ExtensionAdditionAlternative ::= [NO-INSERTIONS] CHOICE {
       extensionGroup  ExtensionAdditionAlternativesGroup,
       component       [GROUP] ChoiceOrUnionNamedType
   }

ExtensionAdditionAlternative:、:= [入がありません] 選択extensionGroup ExtensionAdditionAlternativesGroup、コンポーネント[GROUP]ChoiceOrUnionNamedType

   ExtensionAdditionAlternativesGroup ::= [HOLLOW-INSERTIONS] SEQUENCE {
       version       [ATTRIBUTE] VersionNumber OPTIONAL,
       alternatives  [GROUP] AlternativeTypeList
   }

ExtensionAdditionAlternativesGroup:、:= [空洞の入] 系列バージョン[ATTRIBUTE]VersionNumber OPTIONAL、代替手段[GROUP]AlternativeTypeList

   ChoiceType ::= ChoiceOrUnionType
       (WITH COMPONENTS { ...,
           precedence ABSENT,
           root (WITH COMPONENT (INCLUDES ChoiceNamedType)),
           extension (WITH COMPONENTS { ...,
               additions (WITH COMPONENT (WITH COMPONENTS { ...,
                   extensionGroup (WITH COMPONENTS { ...,
                       alternatives (WITH COMPONENT

ChoiceType:、:= ChoiceOrUnionType、(WITH COMPONENTS、… 先行ABSENT、(WITH COMPONENT(INCLUDES ChoiceNamedType))を根づかせてください、拡大、(WITH COMPONENTS、…、追加、(WITH COMPONENT、(WITH COMPONENTS、…、extensionGroup、(WITH COMPONENTS、…、代替手段、(WITH COMPONENT

Legg                          Experimental                    [Page 107]

RFC 4912               Abstract Syntax Notation X              July 2007

[107ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

                           (INCLUDES ChoiceNamedType)) }),
                   component (INCLUDES ChoiceNamedType) })) }) })

(ChoiceNamedTypeを含んでいます) )、コンポーネント(INCLUDES ChoiceNamedType)、)、)、)

   ChoiceNamedType ::= ChoiceOrUnionNamedType
       (WITH COMPONENTS { ..., member ABSENT })

ChoiceNamedType:、:= ChoiceOrUnionNamedType(WITH COMPONENTS、…、メンバーABSENT)

   UnionType ::= ChoiceOrUnionType
       (WITH COMPONENTS { ...,
           insertions ABSENT,
           root (WITH COMPONENT (INCLUDES UnionNamedType)),
           extension (WITH COMPONENTS { ...,
               additions (WITH COMPONENT (WITH COMPONENTS { ...,
                   extensionGroup (WITH COMPONENTS { ...,
                       alternatives (WITH COMPONENT
                           (INCLUDES UnionNamedType)) }),
                   component (INCLUDES UnionNamedType) })) }) })

UnionType:、:= ChoiceOrUnionType(WITH COMPONENTS、… 入のABSENT、(WITH COMPONENT(INCLUDES UnionNamedType))を根づかせてください、拡大、(WITH COMPONENTS、…、追加、(WITH COMPONENT、(WITH COMPONENTS、…、extensionGroup(WITH COMPONENTS…、代替手段(WITH COMPONENT(INCLUDES UnionNamedType)))、コンポーネント(INCLUDES UnionNamedType))、)、)

   UnionNamedType ::= ChoiceOrUnionNamedType
       (WITH COMPONENTS { ...,
           component ABSENT,
           element   ABSENT,
           attribute ABSENT,
           group     ABSENT })

UnionNamedType:、:= ChoiceOrUnionNamedType(WITH COMPONENTS、…、コンポーネントABSENT、要素ABSENT、属性ABSENT、グループABSENT)

   SequenceOfOrListType ::= SEQUENCE {
       minSize    [ATTRIBUTE] INTEGER (0..MAX) OPTIONAL,
       maxSize    [ATTRIBUTE] INTEGER (0..MAX) OPTIONAL,
       component  [GROUP] NamedType
                      (WITH COMPONENTS { ...,
                          attribute     ABSENT,
                          member        ABSENT,
                          simpleContent ABSENT })
   }

SequenceOfOrListType:、:= 系列[ATTRIBUTE]INTEGER(0..MAX)OPTIONAL、maxSize[ATTRIBUTE]INTEGER(0..MAX)OPTIONAL、コンポーネント[GROUP]NamedTypeをminSizeする、(WITH COMPONENTS、…、属性ABSENT、メンバーABSENT、simpleContent ABSENT)

   SequenceOfType ::= SequenceOfOrListType
       (WITH COMPONENTS { ...,
           component (WITH COMPONENTS { ..., item ABSENT }) })

SequenceOfType:、:= SequenceOfOrListType(WITH COMPONENTS、…、コンポーネント、(WITH COMPONENTS、…、項目ABSENT)、)

   SetOfType ::= SequenceOfType

SetOfType:、:= SequenceOfType

   ListType ::= SequenceOfOrListType
       (WITH COMPONENTS { ...,
           component (WITH COMPONENTS { ...,
                         component ABSENT,
                         element   ABSENT,
                         group     ABSENT }) })

ListType:、:= SequenceOfOrListType(WITH COMPONENTS、…、コンポーネント、(WITH COMPONENTS、…、コンポーネントABSENT、要素ABSENT、グループABSENT)、)

   ConstrainedType ::= [HOLLOW-INSERTIONS] SEQUENCE {

ConstrainedType:、:= [空洞の入]の系列

Legg                          Experimental                    [Page 108]

RFC 4912               Abstract Syntax Notation X              July 2007

[108ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

       type        [GROUP] Type,
       constraint  [GROUP] Constraint
   }

[GROUP]タイプ、規制[GROUP]規制をタイプしてください。

   Constraint ::= SEQUENCE {
       constraintSpec  [GROUP] [NO-INSERTIONS] CHOICE {
           subtype         [GROUP] ElementSetSpecs,
           constrainedBy   UserDefinedConstraint,
           table           TableConstraint,
           contents        ContentsConstraint
       },
       exception       ExceptionSpec OPTIONAL
   }

規制:、:= 系列constraintSpec[GROUP][INSERTIONSがない]CHOICEは[GROUP]ElementSetSpecs、constrainedBy UserDefinedConstraint、テーブルTableConstraint、コンテンツContentsConstraintを副タイプして、例外はExceptionSpec OPTIONALです。

   UserDefinedConstraint ::= [HOLLOW-INSERTIONS] SEQUENCE {
       annotation  Annotation OPTIONAL,
       parameters  [GROUP] ConstraintParameters OPTIONAL
   }

UserDefinedConstraint:、:= [空洞の入] 系列注釈Annotation OPTIONAL、パラメタ[GROUP]ConstraintParameters OPTIONAL

   ConstraintParameters ::= SEQUENCE SIZE (1..MAX) OF
       parameter [GROUP] UserDefinedConstraintParameter

ConstraintParameters:、:= SEQUENCE SIZE(1..MAX)OFパラメタ[GROUP]UserDefinedConstraintParameter

   UserDefinedConstraintParameter ::= [SINGULAR-INSERTIONS] CHOICE {
       valueParameter      SEQUENCE {
           type                [GROUP] Type,
           value               [GROUP] Value
       },
       valueSetParameter   SEQUENCE {
           type                [GROUP] Type,
           valueSet            [GROUP] ValueSet
       },
       objectParameter     SEQUENCE {
           objectClass         [GROUP] DefinedObjectClass,
           object              [GROUP] Object
       },
       objectSetParameter  SEQUENCE {
           objectClass         [GROUP] DefinedObjectClass,
           objectSet           [GROUP] ObjectSet
       },
       typeParameter       SEQUENCE {
           type                [GROUP] Type
       },
       classParameter      SEQUENCE {
           objectClass         [GROUP] DefinedObjectClass
       }
   }

UserDefinedConstraintParameter:、:= [まれな入] 選択valueParameter SEQUENCEは[GROUP]タイプ、値[GROUP]の値をタイプして、valueSetParameter SEQUENCEは[GROUP]タイプ、valueSet[GROUP]ValueSetをタイプします、objectParameter SEQUENCE。objectClass[GROUP]DefinedObjectClass、オブジェクト[GROUP]が反対する、objectSetParameter SEQUENCE、objectClass[GROUP]DefinedObjectClass、objectSet[GROUP]ObjectSet、typeParameter SEQUENCEは[GROUP]タイプをタイプします、classParameter SEQUENCE objectClass[GROUP]DefinedObjectClass

   TableConstraint ::= SEQUENCE {

TableConstraint:、:= 系列

Legg                          Experimental                    [Page 109]

RFC 4912               Abstract Syntax Notation X              July 2007

[109ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

       objectSet          [GROUP] ObjectSet,
       componentRelation  [GROUP] AtNotations OPTIONAL
   }

objectSet[グループ]ObjectSetで、componentRelation[グループ]AtNotations任意

   AtNotations ::= SEQUENCE SIZE (1..MAX) OF
       restrictBy AtNotation

AtNotations:、:= restrictBy AtNotationの系列サイズ(1..MAX)

   AtNotation ::= Markup

AtNotation:、:= マークアップ

   ContentsConstraint ::= SEQUENCE {
       containing  Type OPTIONAL,
       encodedBy   Value OPTIONAL
   } ((WITH COMPONENTS { ..., containing PRESENT }) |
      (WITH COMPONENTS { ..., encodedBy PRESENT }))

ContentsConstraint:、:= Type OPTIONAL、encodedBy Value OPTIONALを含むSEQUENCE(WITH COMPONENTS、…、PRESENTを含みます)、|、(WITH COMPONENTS、…、encodedBy PRESENT)

   ExceptionSpec ::= SEQUENCE {
       type   [GROUP] Type,
       value  [GROUP] Value
   }

ExceptionSpec:、:= 系列値の[GROUP]は、タイプ[GROUP]がタイプするのを評価します。

   Value ::= [NO-INSERTIONS] CHOICE {
       literalValueAtt  [NAME AS "literalValue"] [ATTRIBUTE] UTF8String,
       literalValue     ElementFormLiteralValue,
       valueRef         [NAME AS "value"] [ATTRIBUTE] QName,
       value            ElementFormNotationalValue
   }

以下を評価してください:= [入がありません] 選択literalValueAtt[NAME AS"literalValue"][ATTRIBUTE]UTF8String(literalValue ElementFormLiteralValue、valueRef[NAME AS「値」][ATTRIBUTE]QName)はElementFormNotationalValueを評価します。

   ElementFormLiteralValue ::= Markup
   -- If asnx:literal="false" then the governing type of
   -- ElementFormLiteralValue is ElementFormNotationalValue.

ElementFormLiteralValue:、:= マークアップ--治めるのは、asnx: リテラル=であるならそして「虚偽」とタイプします--ElementFormLiteralValueはElementFormNotationalValueです。

   ElementFormNotationalValue ::= [HOLLOW-INSERTIONS] SEQUENCE {
       annotation  Annotation OPTIONAL,
       definition  [GROUP] [NO-INSERTIONS] CHOICE {
           reference      [GROUP] Reference,
           expanded       ExpandedValue,
           fromObjects    InformationFromObjects,
           openTypeValue  SEQUENCE {
               type           [GROUP] Type,
               value          [GROUP] Value
           },
           components     [GROUP] ComponentValueList
       }
   }

ElementFormNotationalValue:、:= [空洞の入] 系列注釈Annotation OPTIONAL、定義[GROUP][INSERTIONSがない]CHOICE、参照[GROUP]参照、拡張ExpandedValue、fromObjects InformationFromObjects、openTypeValue SEQUENCEは[GROUP]タイプ、値[GROUP]の値をタイプします、コンポーネント[GROUP]ComponentValueList

   Reference ::= SEQUENCE {
       ref      [ATTRIBUTE] QName,
       context  [ATTRIBUTE] AnyURI OPTIONAL

以下に参照をつけてください:= SEQUENCE、審判[ATTRIBUTE]QName、文脈[ATTRIBUTE]AnyURI OPTIONAL

Legg                          Experimental                    [Page 110]

RFC 4912               Abstract Syntax Notation X              July 2007

[110ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   }

}

   ExpandedValue ::= SEQUENCE {
       name    [ATTRIBUTE] NCName OPTIONAL,
       module  ReferencedModule OPTIONAL,
       value   [GROUP] Value
   }

ExpandedValue:、:= 系列名前[ATTRIBUTE]NCName OPTIONAL(モジュールReferencedModule OPTIONAL)は[GROUP]値を評価します。

   ComponentValueList ::= SEQUENCE SIZE (1..MAX) OF
       component [GROUP] NamedValue

ComponentValueList:、:= SEQUENCE SIZE(1..MAX)OFの部品[GROUP]NamedValue

   NamedValue ::= [SINGULAR-INSERTIONS] CHOICE {
       component      GenericNamedValue,
       element        GenericNamedValue,
       attribute      GenericNamedValue,
       group          GenericNamedValue,
       member         GenericNamedValue,
       item           GenericNamedValue,
       simpleContent  GenericNamedValue
   }

NamedValue:、:= [まれな入] 選択コンポーネントGenericNamedValue(要素GenericNamedValue)はGenericNamedValue、グループGenericNamedValue、メンバーGenericNamedValue、項目GenericNamedValue、simpleContent GenericNamedValueを結果と考えます。

   GenericNamedValue ::= SEQUENCE {
       name   [ATTRIBUTE] QName,
       value  [GROUP] Value
   }

GenericNamedValue:、:= 系列名前[ATTRIBUTE]QName、値[GROUP]の値

   ValueSet ::= [NO-INSERTIONS] CHOICE {
       valueSetRef  [NAME AS "valueSet"] [ATTRIBUTE] QName,
           -- valueSetRef is not used in this version
       valueSet     ElementFormValueSet
   }

ValueSet:、:= [入がありません] 選択valueSetRef[NAME AS"valueSet"][ATTRIBUTE]QName--、valueSetRefはこのバージョンvalueSet ElementFormValueSetで使用されません。

   ElementFormValueSet ::= [HOLLOW-INSERTIONS] SEQUENCE {
       annotation  Annotation OPTIONAL,
       definition  [GROUP] [NO-INSERTIONS] CHOICE {
           elementSetSpecs  [GROUP] ElementSetSpecs
       }
   }

ElementFormValueSet:、:= [空洞の入] 系列注釈Annotation OPTIONAL、定義[GROUP][INSERTIONSがない]CHOICE elementSetSpecs[GROUP]ElementSetSpecs

   ElementSetSpecs ::= [HOLLOW-INSERTIONS] SEQUENCE {
       root       [GROUP] ValueElementSetSpec,
       extension  [HOLLOW-INSERTIONS] SEQUENCE {
           additions  [GROUP] ValueElementSetSpec OPTIONAL
       } OPTIONAL
   }

ElementSetSpecs:、:= [空洞の入] 系列根[GROUP]のValueElementSetSpec、拡大[HOLLOW-INSERTIONS]SEQUENCE追加[GROUP]ValueElementSetSpec OPTIONAL OPTIONAL

   ValueElementSetSpec ::= ElementSetSpec
   (WITH COMPONENTS { ...,

ValueElementSetSpec:、:= ElementSetSpec、(コンポーネント、…

Legg                          Experimental                    [Page 111]

RFC 4912               Abstract Syntax Notation X              July 2007

[111ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

       object        ABSENT,
       objectSet     ABSENT,
       union         (WITH COMPONENT (INCLUDES ValueElementSetSpec)),
       intersection  (WITH COMPONENT (INCLUDES ValueElementSetSpec)),
       all           (WITH COMPONENTS { ...,
           elements      (INCLUDES ValueElementSetSpec),
           except        (INCLUDES ValueElementSetSpec) }) })

オブジェクトABSENT、objectSet ABSENT、組合(WITH COMPONENT(INCLUDES ValueElementSetSpec))、交差点(WITH COMPONENT(INCLUDES ValueElementSetSpec))、すべて(…、要素(INCLUDES ValueElementSetSpec)が除く(INCLUDES ValueElementSetSpec)WITH COMPONENTS)、)

   ElementSetSpec ::= [SINGULAR-INSERTIONS] CHOICE {
       literalValue    ElementFormLiteralValue,
       value           ElementFormNotationalValue,
       includes        Type,
       range           ValueRange,
       size            Constraint,
       typeConstraint  Type,
       from            Constraint,
       withComponent   Constraint,
       withComponents  MultipleTypeConstraints,
       pattern         Value,
       object          ElementFormObject,
       objectSet       ElementFormObjectSet,
       union           ElementSetSpecList,
       intersection    ElementSetSpecList,
       all             SEQUENCE {
           elements        [GROUP] ElementSetSpec OPTIONAL,
           except          ElementSetSpec
       }
   }

ElementSetSpec:、:= [まれな入] 選択literalValue ElementFormLiteralValue(値のElementFormNotationalValue)はTypeを含んでいます、範囲ValueRange、サイズConstraint、typeConstraint Type、Constraintから、withComponent Constraint、withComponents MultipleTypeConstraints、パターンValue、オブジェクトElementFormObject、objectSet ElementFormObjectSet、組合ElementSetSpecList、交差点ElementSetSpecList、すべてのSEQUENCE、ElementSetSpec以外の要素[GROUP]ElementSetSpec OPTIONAL

   ElementSetSpecList ::= SEQUENCE SIZE (2..MAX) OF
       elements [GROUP] ElementSetSpec

ElementSetSpecList:、:= SEQUENCE SIZE(2..MAX)OF要素[GROUP]ElementSetSpec

   ValueRange ::= SEQUENCE {
       minimum  [GROUP] [NO-INSERTIONS] CHOICE {
           minInclusive  EndValue,
           minExclusive  EndValue
       } DEFAULT minInclusive:{},
       maximum  [GROUP] [NO-INSERTIONS] CHOICE {
           maxInclusive  EndValue,
           maxExclusive  EndValue
       } DEFAULT maxInclusive:{}
   }

ValueRange:、:= 系列最小の[GROUP][INSERTIONSがない]CHOICE、minInclusive EndValue、minExclusive EndValue、DEFAULT minInclusive:、最大の[GROUP][INSERTIONSがない]CHOICE、maxInclusive EndValue、maxExclusive EndValue、DEFAULT maxInclusive:

   EndValue ::= [HOLLOW-INSERTIONS] SEQUENCE {
       value  [GROUP] Value OPTIONAL
   }

EndValue:、:= [空洞の入] 系列値[GROUP]の値のOPTIONAL

   MultipleTypeConstraints ::= [HOLLOW-INSERTIONS] SEQUENCE {

MultipleTypeConstraints:、:= [空洞の入]の系列

Legg                          Experimental                    [Page 112]

RFC 4912               Abstract Syntax Notation X              July 2007

[112ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

       partial          [ATTRIBUTE] BOOLEAN DEFAULT FALSE,
       typeConstraints  [GROUP] TypeConstraints
   }

部分的な[ATTRIBUTE]BOOLEAN DEFAULT FALSE、typeConstraints[GROUP]TypeConstraints

   TypeConstraints ::= SEQUENCE SIZE (1..MAX) OF
       namedConstraint [GROUP] NamedConstraint

TypeConstraints:、:= namedConstraint[グループ]NamedConstraintの系列サイズ(1..MAX)

   NamedConstraint ::= [SINGULAR-INSERTIONS] CHOICE {
       component      GenericNamedConstraint,
       element        GenericNamedConstraint,
       attribute      GenericNamedConstraint,
       group          GenericNamedConstraint,
       member         GenericNamedConstraint,
       item           GenericNamedConstraint,
       simpleContent  GenericNamedConstraint
   }

NamedConstraint:、:= [まれな入] 選択コンポーネントGenericNamedConstraint(要素GenericNamedConstraint)はGenericNamedConstraint、グループGenericNamedConstraint、メンバーGenericNamedConstraint、項目GenericNamedConstraint、simpleContent GenericNamedConstraintを結果と考えます。

   GenericNamedConstraint ::= [HOLLOW-INSERTIONS] SEQUENCE {
       name        [ATTRIBUTE] QName,
       use         [ATTRIBUTE] PresenceConstraint OPTIONAL,
       constraint  [GROUP] Constraint OPTIONAL
   }

GenericNamedConstraint:、:= [空洞の入] 系列[ATTRIBUTE]をQNameと命名してください、そして、[ATTRIBUTE]PresenceConstraint OPTIONAL、規制[GROUP]規制OPTIONALを使用してください。

   PresenceConstraint ::= ENUMERATED { present, absent, optional }

PresenceConstraint:、:= 列挙されます。現在であって、休んで、任意です。

   ObjectClass ::= [SINGULAR-INSERTIONS] CHOICE {
       classRef  [NAME AS "class"] [ATTRIBUTE] QName,
       class     ElementFormObjectClass
   }

ObjectClass:、:= [まれな入] 選択classRef[NAME AS「クラス」][ATTRIBUTE]QName、クラスElementFormObjectClass

   DefinedObjectClass ::= ObjectClass
       (WITH COMPONENTS { ...,
           class (WITH COMPONENTS { ...,
               definition (WITH COMPONENTS { ...,
                   objectClassDefn ABSENT }) }) })

DefinedObjectClass:、:= ObjectClass(WITH COMPONENTS、…、クラス、(WITH COMPONENTS、…、定義、(WITH COMPONENTS、…、objectClassDefn ABSENT)、)、)

   ElementFormObjectClass ::= [HOLLOW-INSERTIONS] SEQUENCE {
       annotation  Annotation OPTIONAL,
       definition  [GROUP] [NO-INSERTIONS] CHOICE {
           reference        [GROUP] Reference,
           expanded         ExpandedObjectClass,
           objectClassDefn  [GROUP] ObjectClassDefn
       }
   }

ElementFormObjectClass:、:= [空洞の入] 系列注釈Annotation OPTIONAL、定義[GROUP][INSERTIONSがない]CHOICEは[GROUP]参照、拡張ExpandedObjectClass、objectClassDefn[GROUP]ObjectClassDefnに参照をつけます。

   ExpandedObjectClass ::= SEQUENCE {
       name         [ATTRIBUTE] NCName OPTIONAL,
       module       ReferencedModule OPTIONAL,

ExpandedObjectClass:、:= SEQUENCE、[ATTRIBUTE]をNCName OPTIONAL、モジュールReferencedModule OPTIONALと命名してください。

Legg                          Experimental                    [Page 113]

RFC 4912               Abstract Syntax Notation X              July 2007

[113ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

       objectClass  [GROUP] ObjectClass
   }

objectClass[グループ]ObjectClass

   ObjectClassDefn ::= SEQUENCE SIZE (1..MAX) OF
       fieldSpec [GROUP] FieldSpec

ObjectClassDefn:、:= fieldSpec[グループ]FieldSpecの系列サイズ(1..MAX)

   FieldSpec ::= [SINGULAR-INSERTIONS] CHOICE {
       typeField       TypeField,
       valueField      ValueField,
       valueSetField   ValueSetField,
       objectField     ObjectField,
       objectSetField  ObjectSetField,
       optional        OptionalField
   }

FieldSpec:、:= [まれな入] 選択typeField TypeField、valueField ValueField、valueSetField ValueSetField、objectField ObjectField、objectSetField ObjectSetField、任意のOptionalField

   OptionalField ::= SEQUENCE {
       field    [GROUP] [SINGULAR-INSERTIONS] CHOICE {
           typeField       TypeField,
           valueField      ValueField,
           valueSetField   ValueSetField,
           objectField     ObjectField,
           objectSetField  ObjectSetField
       },
       default  Setting OPTIONAL
   } (WITH COMPONENTS { ...,
         field (WITH COMPONENTS { typeField PRESENT }),
         default (WITH COMPONENTS { ...,
             value ABSENT,
             valueSet ABSENT,
             object ABSENT,
             objectSet ABSENT }) } |
      WITH COMPONENTS { ...,
         field (WITH COMPONENTS { valueField PRESENT }),
         default (WITH COMPONENTS { ...,
             type ABSENT,
             valueSet ABSENT,
             object ABSENT,
             objectSet ABSENT }) } |
      WITH COMPONENTS { ...,
         field (WITH COMPONENTS { valueSetField PRESENT }),
         default (WITH COMPONENTS { ...,
             type ABSENT,
             value ABSENT,
             object ABSENT,
             objectSet ABSENT }) } |
      WITH COMPONENTS { ...,
         field (WITH COMPONENTS { objectField PRESENT }),
         default (WITH COMPONENTS { ...,

OptionalField:、:= SEQUENCE、GROUP SINGULAR-INSERTIONS CHOICEをさばいてください、typeField TypeField、valueField ValueField、valueSetField ValueSetField、objectField ObjectField、objectSetField ObjectSetFieldがデフォルトとする、Setting OPTIONAL、(WITH COMPONENTS、… (WITH COMPONENTS typeField PRESENT)をさばいてください、デフォルト、(WITH COMPONENTS、…、値のABSENT、valueSet ABSENT、オブジェクトABSENT、objectSet ABSENT); | WITH COMPONENTS、… (WITH COMPONENTS valueField PRESENT)をさばいてください、デフォルト、(WITH COMPONENTS、…、タイプABSENT、valueSet ABSENT、オブジェクトABSENT、objectSet ABSENT)、| WITH COMPONENTS、… (WITH COMPONENTS valueSetField PRESENT)をさばいてください、デフォルト、(WITH COMPONENTS、…、タイプABSENT、値のABSENT、オブジェクトABSENT、objectSet ABSENT)、| WITH COMPONENTS; (WITH COMPONENTS objectField PRESENT)をさばいてくださいといって、デフォルトとしてください、(WITH COMPONENTS、…

Legg                          Experimental                    [Page 114]

RFC 4912               Abstract Syntax Notation X              July 2007

[114ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

             type ABSENT,
             value ABSENT,
             valueSet ABSENT,
             objectSet ABSENT }) } |
      WITH COMPONENTS { ...,
         field (WITH COMPONENTS { objectSetField PRESENT }),
         default (WITH COMPONENTS { ...,
             type ABSENT,
             value ABSENT,
             valueSet ABSENT,
             object ABSENT }) })

ABSENT、値のABSENT、valueSet ABSENT、objectSet ABSENTをタイプしてください、)| コンポーネント、…, (WITH COMPONENTS objectSetField PRESENT)をさばいてくださいといって、デフォルトとしてください、(WITH COMPONENTS、…, ABSENT、値のABSENT、valueSet ABSENT、オブジェクトABSENTをタイプしてください、)、)

   TypeField ::= SEQUENCE {
       annotation  Annotation OPTIONAL,
       name        [ATTRIBUTE] TypeFieldReference
   }

TypeField:、:= 系列注釈Annotation OPTIONAL、名前[ATTRIBUTE]TypeFieldReference

   TypeFieldReference ::= TypeReference

TypeFieldReference:、:= TypeReference

   ValueField ::= SEQUENCE {
       annotation  Annotation OPTIONAL,
       name        [ATTRIBUTE] ValueFieldReference,
       unique      [ATTRIBUTE] BOOLEAN OPTIONAL,
       governor    [GROUP] [SINGULAR-INSERTIONS] CHOICE {
           type           [GROUP] Type,
           typeFromField  FieldName
       }
   } ((WITH COMPONENTS { ..., unique ABSENT }) |
      (WITH COMPONENTS { ...,
          governor (WITH COMPONENTS { ..., typeFromField ABSENT }) }))

ValueField:、:= SEQUENCE、注釈Annotation OPTIONAL、名前[ATTRIBUTE]ValueFieldReference、ユニークな[ATTRIBUTE]BOOLEAN OPTIONAL、知事[GROUP][SINGULAR-INSERTIONS]CHOICEは[GROUP]タイプ、typeFromField FieldNameをタイプします。(WITH COMPONENTS、…、ユニークなABSENT)、|、(WITH COMPONENTS、…、知事、(WITH COMPONENTS、…、typeFromField ABSENT)、)

   ValueFieldReference ::= ValueReference

ValueFieldReference:、:= ValueReference

   ValueSetField ::= SEQUENCE {
       annotation  Annotation OPTIONAL,
       name        [ATTRIBUTE] ValueSetFieldReference,
       governor    [GROUP] [SINGULAR-INSERTIONS] CHOICE {
           type           [GROUP] Type,
           typeFromField  FieldName
       }
   }

ValueSetField:、:= 系列注釈Annotation OPTIONAL、名前[ATTRIBUTE]ValueSetFieldReference、知事[GROUP][SINGULAR-INSERTIONS]CHOICEは[GROUP]タイプ、typeFromField FieldNameをタイプします。

   ValueSetFieldReference ::= TypeReference

ValueSetFieldReference:、:= TypeReference

   ObjectField ::= SEQUENCE {
       annotation   Annotation OPTIONAL,
       name         [ATTRIBUTE] ObjectFieldReference,
       objectClass  [GROUP] DefinedObjectClass

ObjectField:、:= SEQUENCE、注釈Annotation OPTIONAL、名前[ATTRIBUTE]ObjectFieldReference、objectClass[GROUP]DefinedObjectClass

Legg                          Experimental                    [Page 115]

RFC 4912               Abstract Syntax Notation X              July 2007

[115ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   }

}

   ObjectFieldReference ::= ObjectReference

ObjectFieldReference:、:= ObjectReference

   ObjectSetField ::= SEQUENCE {
       annotation   Annotation OPTIONAL,
       name         [ATTRIBUTE] ObjectSetFieldReference,
       objectClass  [GROUP] DefinedObjectClass
   }

ObjectSetField:、:= 系列注釈Annotation OPTIONAL、名前[ATTRIBUTE]ObjectSetFieldReference、objectClass[GROUP]DefinedObjectClass

   ObjectSetFieldReference ::= ObjectSetReference

ObjectSetFieldReference:、:= ObjectSetReference

   Object ::= [NO-INSERTIONS] CHOICE {
       objectRef  [NAME AS "object"] [ATTRIBUTE] QName,
       object     ElementFormObject
   }

オブジェクト:、:= [入がありません] 選択objectRef[NAME ASは「反対する」][ATTRIBUTE]QName、オブジェクトElementFormObject

   ElementFormObject ::= [HOLLOW-INSERTIONS] SEQUENCE {
       annotation  Annotation OPTIONAL,
       definition  [GROUP] [SINGULAR-INSERTIONS] CHOICE {
           reference    [GROUP] Reference,
           expanded     ExpandedObject,
           fromObjects  InformationFromObjects,
           fields       [GROUP] ObjectDefn
       }
   }

ElementFormObject:、:= [空洞の入] 系列注釈Annotation OPTIONAL、定義[GROUP][SINGULAR-INSERTIONS]CHOICEは[GROUP]参照、拡張ExpandedObject、fromObjects InformationFromObjects、分野[GROUP]ObjectDefnに参照をつけます。

   ExpandedObject ::= SEQUENCE {
       name    [ATTRIBUTE] NCName OPTIONAL,
       module  ReferencedModule OPTIONAL,
       object  [GROUP] Object
   }

ExpandedObject:、:= 系列[ATTRIBUTE]NCName OPTIONAL、モジュールReferencedModule OPTIONALをオブジェクト[GROUP]オブジェクトと命名してください。

   ObjectDefn ::= SEQUENCE OF field FieldSetting

ObjectDefn:、:= SEQUENCE OF分野FieldSetting

   FieldSetting ::= [HOLLOW-INSERTIONS] SEQUENCE {
       name     [ATTRIBUTE] NCName,
       setting  [GROUP] Setting
   }

FieldSetting:、:= [空洞の入] 系列[GROUP]設定を設定して、[ATTRIBUTE]をNCNameと命名してください。

   Setting ::= CHOICE {
       type       [GROUP] Type,
       value      [GROUP] Value,
       valueSet   [GROUP] ValueSet,
       object     [GROUP] Object,
       objectSet  [GROUP] ObjectSet
   }

以下を設定します:= 選択objectSet[GROUP]ObjectSet、valueSet[GROUP]ValueSet、値の[GROUP]はタイプ[GROUP]がタイプするのを評価して、オブジェクト[GROUP]は反対します。

Legg                          Experimental                    [Page 116]

RFC 4912               Abstract Syntax Notation X              July 2007

[116ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

   ObjectSet ::= [NO-INSERTIONS] CHOICE {
       objectSetRef  [NAME AS "objectSet"] [ATTRIBUTE] QName,
       objectSet     ElementFormObjectSet
   }

ObjectSet:、:= [入がありません] 選択objectSetRef["objectSet"として、命名する][属性]QName、objectSet ElementFormObjectSet

   ElementFormObjectSet ::= [HOLLOW-INSERTIONS] SEQUENCE {
       annotation  Annotation OPTIONAL,
       definition  [GROUP] [NO-INSERTIONS] CHOICE {
           reference      [GROUP] Reference,
           expanded       ExpandedObjectSet,
           objectSetSpec  [GROUP] ObjectSetSpec,
           fromObjects    InformationFromObjects
       }
   }

ElementFormObjectSet:、:= [空洞の入] 系列注釈Annotation OPTIONAL、定義[GROUP][INSERTIONSがない]CHOICEは[GROUP]参照、拡張ExpandedObjectSet、objectSetSpec[GROUP]ObjectSetSpec、fromObjects InformationFromObjectsに参照をつけます。

   ExpandedObjectSet ::= SEQUENCE {
       name       [ATTRIBUTE] NCName OPTIONAL,
       module     ReferencedModule OPTIONAL,
       objectSet  [GROUP] ObjectSet
   }

ExpandedObjectSet:、:= 系列[ATTRIBUTE]NCName OPTIONAL、モジュールReferencedModule OPTIONALをobjectSet[GROUP]ObjectSetと命名してください。

   ObjectSetSpec ::= [HOLLOW-INSERTIONS] SEQUENCE {
       root       [GROUP] ObjectElementSetSpec OPTIONAL,
       extension  [HOLLOW-INSERTIONS] SEQUENCE {
           additions  [GROUP] ObjectElementSetSpec OPTIONAL
       } OPTIONAL
   } ((WITH COMPONENTS { ..., root PRESENT }) |
      (WITH COMPONENTS { ..., extension PRESENT }))

ObjectSetSpec:、:= [HOLLOW-INSERTIONS]SEQUENCEは[GROUP]ObjectElementSetSpec OPTIONAL、拡大[HOLLOW-INSERTIONS]SEQUENCE追加[GROUP]ObjectElementSetSpec OPTIONAL OPTIONALを根づかせます。(WITH COMPONENTS、…、根のPRESENT)、|、(WITH COMPONENTS、…、拡大PRESENT)

   ObjectElementSetSpec ::= ElementSetSpec
   (WITH COMPONENTS { ...,
       literalValue    ABSENT,
       value           ABSENT,
       includes        ABSENT,
       range           ABSENT,
       size            ABSENT,
       typeConstraint  ABSENT,
       from            ABSENT,
       withComponent   ABSENT,
       withComponents  ABSENT,
       pattern         ABSENT,
       union           (WITH COMPONENT (INCLUDES ObjectElementSetSpec)),
       intersection    (WITH COMPONENT (INCLUDES ObjectElementSetSpec)),
       all             (WITH COMPONENTS { ...,
           elements        (INCLUDES ObjectElementSetSpec),
           except          (INCLUDES ObjectElementSetSpec) }) })

ObjectElementSetSpec:、:= ElementSetSpec(WITH COMPONENTS、… literalValue ABSENT(値のABSENT)はABSENTを含んでいます、範囲ABSENT、サイズABSENT、typeConstraint ABSENT、ABSENTから、withComponent ABSENT、withComponents ABSENT、パターンABSENT、組合(WITH COMPONENT(INCLUDES ObjectElementSetSpec))、交差点(WITH COMPONENT(INCLUDES ObjectElementSetSpec))、すべて(…、要素(INCLUDES ObjectElementSetSpec)が除く(INCLUDES ObjectElementSetSpec)WITH COMPONENTS)、)

   EncodingControlSections ::= SEQUENCE SIZE (1..MAX) OF

EncodingControlSections:、:= サイズ(1..MAX)を配列します。

Legg                          Experimental                    [Page 117]

RFC 4912               Abstract Syntax Notation X              July 2007

[117ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

       section [GROUP] EncodingControlSection

セクション[GROUP]EncodingControlSection

   EncodingControlSection ::= [SINGULAR-INSERTIONS] CHOICE {
       gser  [NAME AS "GSER"] GSER-EncodingInstructionAssignmentList,
       xer   [NAME AS "XER"] XER-EncodingInstructionAssignmentList
       -- plus encoding control sections
       -- for other encoding rules in the future
   }

EncodingControlSection:、:= [まれな入] 選択gser[NAME AS"GSER"]GSER-EncodingInstructionAssignmentList(他のコード化のためのそのうえ、制御セクションをコード化するというxer["XER"として、命名する]XER-EncodingInstructionAssignmentList)は将来、統治します。

   ENCODING-CONTROL RXER

コード化しているコントロールRXER

       SCHEMA-IDENTITY  "urn:oid:1.3.6.1.4.1.21472.1.0.1"
       TARGET-NAMESPACE "urn:ietf:params:xml:ns:asnx" PREFIX "asnx"

図式アイデンティティ、「つぼ:oid:1.3、.6、.1、.4、.1、.21472、.1、.0の0.1インチの目的の名前空間の「つぼ:ietf:params:xml:ナノ秒: 」 接頭語が"asnxする"であるasnx」

       COMPONENT module ModuleDefinition

COMPONENTモジュールModuleDefinition

       COMPONENT literal [ATTRIBUTE] BOOLEAN

COMPONENTリテラル[ATTRIBUTE]ブールです。

   END

終わり

Appendix B.  ASN.X for ASN.X

ASN.Xのための付録B.ASN.X

   This appendix is non-normative.

この付録は非規範的です。

   <?xml version="1.0"?>
   <asnx:module xmlns:asnx="urn:ietf:params:xml:ns:asnx"
                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"
                targetNamespace="urn:ietf:params:xml:ns:asnx"
                targetPrefix="asnx"
                extensibilityImplied="true">

<?xmlバージョン= 「1インチ?」><asnx: モジュールxmlns: asnx=「つぼ:ietf:params:xml:ナノ秒: asnx」名前="AbstractSyntaxNotation-X"識別子=の「asnxである」「1.3の.6の.1の.4の.1の.21472の.1の.0の0.1インチのschemaIdentity=」つぼ:oid:1.3の.6の.1の.4の.1の.21472の.1の.0の0.1インチのtargetNamespace=「つぼ:ietf:params:xml:ナノ秒: asnx」targetPrefix=extensibilityImpliedが等しい、「本当の">"

    <annotation>
     Copyright (C) The IETF Trust (2007).  This version of
     this ASN.X module is part of RFC 4912; see the RFC itself
     for full legal notices.

IETFが信じる<注釈>著作権(C)(2007)。 このASN.XモジュールのこのバージョンはRFC4912の一部です。 完全な法定の通知に関してRFC自身を見てください。

     Regarding this ASN.X module or any portion of it, the author
     makes no guarantees and is not responsible for any damage
     resulting from its use.  The author grants irrevocable permission
     to anyone to use, modify, and distribute it in any way that does
     not diminish the rights of anyone else to use, modify, and
     distribute it, provided that redistributed derivative works do
     not contain misleading author or version information.
     Derivative works need not be licensed under similar terms.
    </annotation>

このASN.Xモジュールかそれのどんな部分に関しても、作者は、保証を全くしないで、また使用から生じるどんな損害にも責任がありません。 作者は他の誰もそれを使用して、変更して、分配する権利を減少させないどんな方法でもそれを使用して、変更して、分配するために呼び戻せない許可をだれにも与えます、再配付された派生している作品が紛らわしい作者かバージョン情報を含んでいなければ。 派生している作品は同類項</注釈>の下で認可される必要はありません。

Legg                          Experimental                    [Page 118]

RFC 4912               Abstract Syntax Notation X              July 2007

[118ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

    <import name="GSER-EncodingInstructionNotation"
            identifier="1.3.6.1.4.1.21472.1.0.2"
            schemaIdentity="urn:oid:1.3.6.1.4.1.21472.1.0.2"
            namespace="urn:ietf:params:xml:ns:asnx"/>

<の輸入の名前の=の"GSER-EncodingInstructionNotation"の識別子の=「1.3の.6の.1の.4の.1の.21472の.1の.0の0.2インチのschemaIdentity=」つぼ:oid:1.3の.6の.1の.4の.1の.21472の.1の.0の0.2インチの名前空間=「つぼ:ietf:params:xml:ナノ秒: asnx」/>。

    <import 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"
            namespace="urn:ietf:params:xml:ns:asnx"/>

<の輸入の名前の=の"XER-EncodingInstructionNotation"の識別子の=「1.3の.6の.1の.4の.1の.21472の.1の.0の0.3インチのschemaIdentity=」つぼ:oid:1.3の.6の.1の.4の.1の.21472の.1の.0の0.3インチの名前空間=「つぼ:ietf:params:xml:ナノ秒: asnx」/>。

    <namedType name="ModuleDefinition">
     <type>
      <sequence insertions="hollow">
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <optional>
        <attribute name="format" versionIndicator="true">
         <type>
          <constrained type="asnx:UTF8String">
           <literalValue>1.0</literalValue>
           <extension/>
          </constrained>
         </type>
        </attribute>
        <default literalValue="1.0"/>
       </optional>
       <attribute name="name" type="asnx:ModuleReference"/>
       <optional>
        <attribute name="identifier" type="asnx:DefinitiveIdentifier"/>
       </optional>
       <optional>
        <attribute name="schemaIdentity" type="asnx:AnyURI"/>
       </optional>
       <optional>
        <attribute name="targetNamespace" type="asnx:AnyURI"/>
       </optional>
       <optional>
        <attribute name="targetPrefix" type="asnx:NCName"/>
       </optional>
       <optional>
        <attribute name="tagDefault" type="asnx:TagDefault"/>
        <default literalValue="automatic"/>
       </optional>
       <optional>
        <attribute name="extensibilityImplied" type="asnx:BOOLEAN"/>
        <default literalValue="false"/>
       </optional>

<namedType名前=「空洞のModuleDefinition「><タイプ><系列入=」「>の<の任意の><要素名=」注釈」タイプが「asnx: 注釈」任意の任意の/><属性名前=>><</「形式」versionIndicator=と等しい、「本当である、「><が抑制した><タイプが=をタイプする、「asnx: UTF8String「><literalValue>1」; 「0</literalValue><拡大/></制約つきな></タイプ></属性><デフォルトliteralValue=「1インチ/>の</任意の><属性名=」名」タイプは「asnx: ModuleReference」/>と等しいです; 任意の<><属性名前=「識別子」タイプは「asnx: DefinitiveIdentifier」/></任意の>の<の任意の><属性名=の"schemaIdentity"タイプ=「asnx: AnyURI」/></任意の><任意の>と等しいです; <属性名前="targetNamespace"は=></任意の>の<の任意の><属性名=の"targetPrefix"タイプ=「asnx: NCName」/></任意の「asnx: AnyURI」<任意の><属性/>名="tagDefault"をタイプします; 任意の任意のタイプ><属性名前==「asnx: TagDefault」/><デフォルトliteralValue=「自動」/>><</"extensibilityImplied"は=「asnx: 論理演算子」/><デフォルトliteralValue=「誤りであっている」/></任意の>をタイプします。

Legg                          Experimental                    [Page 119]

RFC 4912               Abstract Syntax Notation X              July 2007

[119ページ]RFC4912抽象構文記法X2007年7月に実験的なLegg

       <optional>
        <element name="export">
         <annotation> export is not used in this version </annotation>
         <type>
          <sequence/>
         </type>
        </element>
       </optional>
       <optional>
        <group name="imports" type="asnx:ImportList"/>
       </optional>
       <optional>
        <group name="assignments" type="asnx:AssignmentList"/>
       </optional>
       <optional>
        <element name="encodingControls"
                 type="asnx:EncodingControlSections"/>
       </optional>
      </sequence>
     </type>
    </namedType>

任意の<<要素名前=「「><注釈>輸出はこのバージョン</注釈><タイプ><系列/></タイプ></要素></任意の><任意の><グループ名=に使用されないこと」がインポートする輸出」タイプ=「asnx: ImportList」>/> </任意の>の<の任意の><グループ名=「課題」タイプ=「asnx: AssignmentList」/></任意の>の<の任意の><要素名=の「encodingControls」タイプ=「asnx: EncodingControlSections」/></任意の></系列></タイプ></namedType>。

    <namedType name="ModuleReference" type="asnx:TypeReference"/>

<namedType名前="ModuleReference"は=「asnx: TypeReference」/>をタイプします。

    <namedType name="DefinitiveIdentifier"
               type="asnx:OBJECT-IDENTIFIER"/>

<namedType名前="DefinitiveIdentifier"は=「asnx: オブジェクト識別子」/>をタイプします。

    <namedType name="TagDefault">
     <type>
      <enumerated>
       <enumeration name="explicit"/>
       <enumeration name="implicit"/>
       <enumeration name="automatic"/>
      </enumerated>
     </type>
    </namedType>

<namedType name="TagDefault"> <type> <enumerated> <enumeration name="explicit"/> <enumeration name="implicit"/> <enumeration name="automatic"/> </enumerated> </type> </namedType>

    <namedType name="Annotation" type="asnx:Markup"/>

<namedType name="Annotation" type="asnx:Markup"/>

    <namedType name="ImportList">
     <type>
      <sequenceOf minSize="1">
       <element name="import" type="asnx:Import"/>
      </sequenceOf>
     </type>
    </namedType>

<namedType name="ImportList"> <type> <sequenceOf minSize="1"> <element name="import" type="asnx:Import"/> </sequenceOf> </type> </namedType>

    <namedType name="Import">

<namedType name="Import">

Legg                          Experimental                    [Page 120]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 120] RFC 4912 Abstract Syntax Notation X July 2007

     <type>
      <sequence>
       <optional>
        <attribute name="name" type="asnx:ModuleReference"/>
       </optional>
       <optional>
        <attribute name="identifier" type="asnx:DefinitiveIdentifier"/>
       </optional>
       <optional>
        <attribute name="schemaIdentity" type="asnx:AnyURI"/>
       </optional>
       <optional>
        <attribute name="namespace" type="asnx:AnyURI"/>
       </optional>
       <optional>
        <attribute name="schemaLocation" type="asnx:AnyURI"/>
       </optional>
      </sequence>
     </type>
    </namedType>

<type> <sequence> <optional> <attribute name="name" type="asnx:ModuleReference"/> </optional> <optional> <attribute name="identifier" type="asnx:DefinitiveIdentifier"/> </optional> <optional> <attribute name="schemaIdentity" type="asnx:AnyURI"/> </optional> <optional> <attribute name="namespace" type="asnx:AnyURI"/> </optional> <optional> <attribute name="schemaLocation" type="asnx:AnyURI"/> </optional> </sequence> </type> </namedType>

    <namedType name="AssignmentList">
     <type>
      <sequenceOf minSize="1">
       <group name="assignment" type="asnx:Assignment"/>
      </sequenceOf>
     </type>
    </namedType>

<namedType name="AssignmentList"> <type> <sequenceOf minSize="1"> <group name="assignment" type="asnx:Assignment"/> </sequenceOf> </type> </namedType>

    <namedType name="Assignment">
     <type>
      <choice insertions="none">
       <element name="namedType" type="asnx:TypeAssignment"/>
       <element name="namedValue" type="asnx:ValueAssignment"/>
       <element name="namedValueSet"
                type="asnx:ValueSetTypeAssignment"/>
       <element name="namedClass" type="asnx:ObjectClassAssignment"/>
       <element name="namedObject" type="asnx:ObjectAssignment"/>
       <element name="namedObjectSet" type="asnx:ObjectSetAssignment"/>
       <group name="component" type="asnx:TopLevelNamedType"/>
      </choice>
     </type>
    </namedType>

<namedType name="Assignment"> <type> <choice insertions="none"> <element name="namedType" type="asnx:TypeAssignment"/> <element name="namedValue" type="asnx:ValueAssignment"/> <element name="namedValueSet" type="asnx:ValueSetTypeAssignment"/> <element name="namedClass" type="asnx:ObjectClassAssignment"/> <element name="namedObject" type="asnx:ObjectAssignment"/> <element name="namedObjectSet" type="asnx:ObjectSetAssignment"/> <group name="component" type="asnx:TopLevelNamedType"/> </choice> </type> </namedType>

    <namedType name="TypeAssignment">
     <type>
      <sequence>
       <optional>

<namedType name="TypeAssignment"> <type> <sequence> <optional>

Legg                          Experimental                    [Page 121]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 121] RFC 4912 Abstract Syntax Notation X July 2007

        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <attribute name="name" type="asnx:TypeReference"/>
       <group name="type" type="asnx:Type"/>
      </sequence>
     </type>
    </namedType>

<element name="annotation" type="asnx:Annotation"/> </optional> <attribute name="name" type="asnx:TypeReference"/> <group name="type" type="asnx:Type"/> </sequence> </type> </namedType>

    <namedType name="TypeReference">
     <type>
      <constrained type="asnx:UTF8String">
       <pattern literalValue="[A-Z]\w*(-\w+)*"/>
       <!-- \w is equivalent to [a-zA-Z0-9] -->
      </constrained>
     </type>
    </namedType>

<namedType name="TypeReference"> <type> <constrained type="asnx:UTF8String"> <pattern literalValue="[A-Z]\w*(-\w+)*"/> <!-- \w is equivalent to [a-zA-Z0-9] --> </constrained> </type> </namedType>

    <namedType name="ValueAssignment">
     <type>
      <sequence>
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <attribute name="name" type="asnx:ValueReference"/>
       <group name="type" type="asnx:Type"/>
       <group name="value" type="asnx:Value"/>
      </sequence>
     </type>
    </namedType>

<namedType name="ValueAssignment"> <type> <sequence> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <attribute name="name" type="asnx:ValueReference"/> <group name="type" type="asnx:Type"/> <group name="value" type="asnx:Value"/> </sequence> </type> </namedType>

    <namedType name="ValueReference" type="asnx:Identifier"/>

<namedType name="ValueReference" type="asnx:Identifier"/>

    <namedType name="Identifier">
     <type>
      <constrained type="asnx:UTF8String">
       <pattern literalValue="[a-z]\w(-\w+)*"/>
      </constrained>
     </type>
    </namedType>

<namedType name="Identifier"> <type> <constrained type="asnx:UTF8String"> <pattern literalValue="[a-z]\w(-\w+)*"/> </constrained> </type> </namedType>

    <namedType name="ValueSetTypeAssignment">
     <type>
      <sequence>
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <attribute name="name" type="asnx:TypeReference"/>
       <group name="type" type="asnx:Type"/>

<namedType name="ValueSetTypeAssignment"> <type> <sequence> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <attribute name="name" type="asnx:TypeReference"/> <group name="type" type="asnx:Type"/>

Legg                          Experimental                    [Page 122]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 122] RFC 4912 Abstract Syntax Notation X July 2007

       <group name="valueSet" type="asnx:ValueSet"/>
      </sequence>
     </type>
    </namedType>

<group name="valueSet" type="asnx:ValueSet"/> </sequence> </type> </namedType>

    <namedType name="ObjectClassAssignment">
     <type>
      <sequence>
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <attribute name="name" type="asnx:ObjectClassReference"/>
       <group name="objectClass" type="asnx:ObjectClass"/>
      </sequence>
     </type>
    </namedType>

<namedType name="ObjectClassAssignment"> <type> <sequence> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <attribute name="name" type="asnx:ObjectClassReference"/> <group name="objectClass" type="asnx:ObjectClass"/> </sequence> </type> </namedType>

    <namedType name="ObjectClassReference">
     <type>
      <constrained type="asnx:UTF8String">
       <pattern literalValue="[A-Z][A-Z0-9]*(-[A-Z0-9]+)*"/>
      </constrained>
     </type>
    </namedType>

<namedType name="ObjectClassReference"> <type> <constrained type="asnx:UTF8String"> <pattern literalValue="[A-Z][A-Z0-9]*(-[A-Z0-9]+)*"/> </constrained> </type> </namedType>

    <namedType name="ObjectAssignment">
     <type>
      <sequence>
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <attribute name="name" type="asnx:ObjectReference"/>
       <group name="objectClass" type="asnx:DefinedObjectClass"/>
       <group name="object" type="asnx:Object"/>
      </sequence>
     </type>
    </namedType>

<namedType name="ObjectAssignment"> <type> <sequence> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <attribute name="name" type="asnx:ObjectReference"/> <group name="objectClass" type="asnx:DefinedObjectClass"/> <group name="object" type="asnx:Object"/> </sequence> </type> </namedType>

    <namedType name="ObjectReference" type="asnx:ValueReference"/>

<namedType name="ObjectReference" type="asnx:ValueReference"/>

    <namedType name="ObjectSetAssignment">
     <type>
      <sequence>
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <attribute name="name" type="asnx:ObjectSetReference"/>
       <group name="objectClass" type="asnx:DefinedObjectClass"/>

<namedType name="ObjectSetAssignment"> <type> <sequence> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <attribute name="name" type="asnx:ObjectSetReference"/> <group name="objectClass" type="asnx:DefinedObjectClass"/>

Legg                          Experimental                    [Page 123]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 123] RFC 4912 Abstract Syntax Notation X July 2007

       <group name="objectSet" type="asnx:ObjectSet"/>
      </sequence>
     </type>
    </namedType>

<group name="objectSet" type="asnx:ObjectSet"/> </sequence> </type> </namedType>

    <namedType name="ObjectSetReference" type="asnx:TypeReference"/>

<namedType name="ObjectSetReference" type="asnx:TypeReference"/>

    <namedType name="TopLevelNamedType">
     <type>
      <constrained type="asnx:NamedType">
       <withComponents partial="true">
        <element name="component">
         <withComponents partial="true">
          <group name="definition">
           <withComponents partial="true">
            <group name="reference" use="absent"/>
           </withComponents>
          </group>
         </withComponents>
        </element>
        <element name="element">
         <withComponents partial="true">
          <group name="definition">
           <withComponents partial="true">
            <group name="reference" use="absent"/>
           </withComponents>
          </group>
         </withComponents>
        </element>
        <element name="attribute">
         <withComponents partial="true">
          <group name="definition">
           <withComponents partial="true">
            <group name="reference" use="absent"/>
           </withComponents>
          </group>
         </withComponents>
        </element>
        <element name="group" use="absent"/>
        <element name="member" use="absent"/>
        <element name="item" use="absent"/>
        <element name="simpleContent" use="absent"/>
       </withComponents>
      </constrained>
     </type>
    </namedType>

<namedType name="TopLevelNamedType"> <type> <constrained type="asnx:NamedType"> <withComponents partial="true"> <element name="component"> <withComponents partial="true"> <group name="definition"> <withComponents partial="true"> <group name="reference" use="absent"/> </withComponents> </group> </withComponents> </element> <element name="element"> <withComponents partial="true"> <group name="definition"> <withComponents partial="true"> <group name="reference" use="absent"/> </withComponents> </group> </withComponents> </element> <element name="attribute"> <withComponents partial="true"> <group name="definition"> <withComponents partial="true"> <group name="reference" use="absent"/> </withComponents> </group> </withComponents> </element> <element name="group" use="absent"/> <element name="member" use="absent"/> <element name="item" use="absent"/> <element name="simpleContent" use="absent"/> </withComponents> </constrained> </type> </namedType>

    <namedType name="NamedType">

<namedType name="NamedType">

Legg                          Experimental                    [Page 124]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 124] RFC 4912 Abstract Syntax Notation X July 2007

     <type>
      <choice insertions="singular">
       <element name="component" type="asnx:Element"/>
       <element name="element" type="asnx:Element"/>
       <element name="attribute" type="asnx:Attribute"/>
       <element name="group" type="asnx:InvisibleNamedType"/>
       <element name="member" type="asnx:InvisibleNamedType"/>
       <element name="item" type="asnx:InvisibleNamedType"/>
       <element name="simpleContent" type="asnx:InvisibleNamedType"/>
      </choice>
     </type>
    </namedType>

<type> <choice insertions="singular"> <element name="component" type="asnx:Element"/> <element name="element" type="asnx:Element"/> <element name="attribute" type="asnx:Attribute"/> <element name="group" type="asnx:InvisibleNamedType"/> <element name="member" type="asnx:InvisibleNamedType"/> <element name="item" type="asnx:InvisibleNamedType"/> <element name="simpleContent" type="asnx:InvisibleNamedType"/> </choice> </type> </namedType>

    <namedType name="Attribute">
     <type>
      <constrained type="asnx:GenericNamedType">
       <withComponents partial="true">
        <group name="definition">
         <withComponents partial="true">
          <group name="local">
           <withComponents partial="true">
            <attribute name="typeAsVersion" use="absent"/>
           </withComponents>
          </group>
         </withComponents>
        </group>
       </withComponents>
      </constrained>
     </type>
    </namedType>

<namedType name="Attribute"> <type> <constrained type="asnx:GenericNamedType"> <withComponents partial="true"> <group name="definition"> <withComponents partial="true"> <group name="local"> <withComponents partial="true"> <attribute name="typeAsVersion" use="absent"/> </withComponents> </group> </withComponents> </group> </withComponents> </constrained> </type> </namedType>

    <namedType name="Element">
     <type>
      <constrained type="asnx:GenericNamedType">
       <withComponents partial="true">
        <group name="definition">
         <withComponents partial="true">
          <group name="local">
           <withComponents partial="true">
            <attribute name="versionIndicator" use="absent"/>
           </withComponents>
          </group>
         </withComponents>
        </group>
       </withComponents>
      </constrained>
     </type>
    </namedType>

<namedType name="Element"> <type> <constrained type="asnx:GenericNamedType"> <withComponents partial="true"> <group name="definition"> <withComponents partial="true"> <group name="local"> <withComponents partial="true"> <attribute name="versionIndicator" use="absent"/> </withComponents> </group> </withComponents> </group> </withComponents> </constrained> </type> </namedType>

Legg                          Experimental                    [Page 125]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 125] RFC 4912 Abstract Syntax Notation X July 2007

    <namedType name="InvisibleNamedType">
     <type>
      <constrained type="asnx:GenericNamedType">
       <withComponents partial="true">
        <group name="definition">
         <withComponents partial="true">
          <group name="reference" use="absent"/>
          <group name="local">
           <withComponents partial="true">
            <attribute name="typeAsVersion" use="absent"/>
            <attribute name="versionIndicator" use="absent"/>
           </withComponents>
          </group>
         </withComponents>
        </group>
       </withComponents>
      </constrained>
     </type>
    </namedType>

<namedType name="InvisibleNamedType"> <type> <constrained type="asnx:GenericNamedType"> <withComponents partial="true"> <group name="definition"> <withComponents partial="true"> <group name="reference" use="absent"/> <group name="local"> <withComponents partial="true"> <attribute name="typeAsVersion" use="absent"/> <attribute name="versionIndicator" use="absent"/> </withComponents> </group> </withComponents> </group> </withComponents> </constrained> </type> </namedType>

    <namedType name="GenericNamedType">
     <type>
      <sequence insertions="hollow">
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <optional>
        <attribute name="identifier" type="asnx:IdentifierOrEmpty"/>
       </optional>
       <group name="definition">
        <type>
         <choice>
          <group name="reference" type="asnx:DefinedComponent"/>
          <group name="local" type="asnx:LocalComponent"/>
         </choice>
        </type>
       </group>
      </sequence>
     </type>
    </namedType>

<namedType name="GenericNamedType"> <type> <sequence insertions="hollow"> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <optional> <attribute name="identifier" type="asnx:IdentifierOrEmpty"/> </optional> <group name="definition"> <type> <choice> <group name="reference" type="asnx:DefinedComponent"/> <group name="local" type="asnx:LocalComponent"/> </choice> </type> </group> </sequence> </type> </namedType>

    <namedType name="IdentifierOrEmpty">
     <type>
      <constrained type="asnx:UTF8String">
       <union>
        <includes type="asnx:Identifier"/>
        <literalValue></literalValue>
       </union>

<namedType name="IdentifierOrEmpty"> <type> <constrained type="asnx:UTF8String"> <union> <includes type="asnx:Identifier"/> <literalValue></literalValue> </union>

Legg                          Experimental                    [Page 126]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 126] RFC 4912 Abstract Syntax Notation X July 2007

      </constrained>
     </type>
    </namedType>

</constrained> </type> </namedType>

    <namedType name="DefinedComponent">
     <type>
      <constrained>
       <type>
        <sequence insertions="hollow">
         <group name="name">
          <type>
           <choice insertions="none">
            <attribute name="ref" type="asnx:QName"/>
            <attribute name="elementType" type="asnx:Name"/>
           </choice>
          </type>
         </group>
         <optional>
          <attribute name="namespace" type="asnx:AnyURI"/>
         </optional>
         <optional>
          <attribute name="context" type="asnx:AnyURI"/>
         </optional>
         <optional>
          <attribute name="embedded" type="asnx:BOOLEAN"/>
         </optional>
         <optional>
          <group name="prefixes" type="asnx:EncodingPrefixes"/>
         </optional>
        </sequence>
       </type>
       <union>
        <withComponents partial="true">
         <group name="name">
          <withComponents>
           <attribute name="ref" use="present"/>
          </withComponents>
         </group>
         <attribute name="namespace" use="absent"/>
        </withComponents>
        <withComponents partial="true">
         <group name="name">
          <withComponents>
           <attribute name="elementType" use="present"/>
          </withComponents>
         </group>
         <attribute name="embedded" use="absent"/>
        </withComponents>

<namedType name="DefinedComponent"> <type> <constrained> <type> <sequence insertions="hollow"> <group name="name"> <type> <choice insertions="none"> <attribute name="ref" type="asnx:QName"/> <attribute name="elementType" type="asnx:Name"/> </choice> </type> </group> <optional> <attribute name="namespace" type="asnx:AnyURI"/> </optional> <optional> <attribute name="context" type="asnx:AnyURI"/> </optional> <optional> <attribute name="embedded" type="asnx:BOOLEAN"/> </optional> <optional> <group name="prefixes" type="asnx:EncodingPrefixes"/> </optional> </sequence> </type> <union> <withComponents partial="true"> <group name="name"> <withComponents> <attribute name="ref" use="present"/> </withComponents> </group> <attribute name="namespace" use="absent"/> </withComponents> <withComponents partial="true"> <group name="name"> <withComponents> <attribute name="elementType" use="present"/> </withComponents> </group> <attribute name="embedded" use="absent"/> </withComponents>

Legg                          Experimental                    [Page 127]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 127] RFC 4912 Abstract Syntax Notation X July 2007

       </union>
      </constrained>
     </type>
    </namedType>

</union> </constrained> </type> </namedType>

    <namedType name="LocalComponent">
     <type>
      <sequence>
       <attribute name="name" type="asnx:NCName"/>
       <optional>
        <attribute name="typeAsVersion" type="asnx:BOOLEAN"/>
       </optional>
       <optional>
        <attribute name="versionIndicator" type="asnx:BOOLEAN"/>
       </optional>
       <group name="type" type="asnx:Type"/>
      </sequence>
     </type>
    </namedType>

<namedType name="LocalComponent"> <type> <sequence> <attribute name="name" type="asnx:NCName"/> <optional> <attribute name="typeAsVersion" type="asnx:BOOLEAN"/> </optional> <optional> <attribute name="versionIndicator" type="asnx:BOOLEAN"/> </optional> <group name="type" type="asnx:Type"/> </sequence> </type> </namedType>

    <namedType name="Type">
     <type>
      <choice insertions="none">
       <attribute name="type" identifier="typeRef" type="asnx:QName"/>
       <element name="type" type="asnx:ElementFormType"/>
      </choice>
     </type>
    </namedType>

<namedType name="Type"> <type> <choice insertions="none"> <attribute name="type" identifier="typeRef" type="asnx:QName"/> <element name="type" type="asnx:ElementFormType"/> </choice> </type> </namedType>

    <namedType name="ElementFormType">
     <type>
      <sequence insertions="hollow">
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <optional>
        <attribute name="explicit" type="asnx:BOOLEAN"/>
       </optional>
       <group name="definition">
        <type>
         <choice>
          <group name="reference" type="asnx:DefinedType"/>
          <element name="expanded" type="asnx:ExpandedType"/>
          <attribute name="ancestor">
           <type>
            <constrained type="asnx:INTEGER">
             <range>
              <minInclusive literalValue="1"/>

<namedType name="ElementFormType"> <type> <sequence insertions="hollow"> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <optional> <attribute name="explicit" type="asnx:BOOLEAN"/> </optional> <group name="definition"> <type> <choice> <group name="reference" type="asnx:DefinedType"/> <element name="expanded" type="asnx:ExpandedType"/> <attribute name="ancestor"> <type> <constrained type="asnx:INTEGER"> <range> <minInclusive literalValue="1"/>

Legg                          Experimental                    [Page 128]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 128] RFC 4912 Abstract Syntax Notation X July 2007

             </range>
            </constrained>
           </type>
          </attribute>
          <element name="namedBitList" type="asnx:NamedBitList"/>
          <element name="namedNumberList" type="asnx:NamedNumberList"/>
          <element name="enumerated" type="asnx:EnumeratedType"/>
          <element name="tagged" type="asnx:TaggedType"/>
          <element name="prefixed" type="asnx:EncodingPrefixedType"/>
          <element name="selection" type="asnx:SelectionType"/>
          <element name="instanceOf" type="asnx:InstanceOfType"/>
          <element name="fromClass" type="asnx:ObjectClassFieldType"/>
          <element name="fromObjects"
                   type="asnx:InformationFromObjects"/>
          <element name="sequence" type="asnx:SequenceType"/>
          <element name="set" type="asnx:SetType"/>
          <element name="choice" type="asnx:ChoiceType"/>
          <element name="union" type="asnx:UnionType"/>
          <element name="sequenceOf" type="asnx:SequenceOfType"/>
          <element name="setOf" type="asnx:SetOfType"/>
          <element name="list" type="asnx:ListType"/>
          <element name="constrained" type="asnx:ConstrainedType"/>
         </choice>
        </type>
       </group>
      </sequence>
     </type>
    </namedType>

</range> </constrained> </type> </attribute> <element name="namedBitList" type="asnx:NamedBitList"/> <element name="namedNumberList" type="asnx:NamedNumberList"/> <element name="enumerated" type="asnx:EnumeratedType"/> <element name="tagged" type="asnx:TaggedType"/> <element name="prefixed" type="asnx:EncodingPrefixedType"/> <element name="selection" type="asnx:SelectionType"/> <element name="instanceOf" type="asnx:InstanceOfType"/> <element name="fromClass" type="asnx:ObjectClassFieldType"/> <element name="fromObjects" type="asnx:InformationFromObjects"/> <element name="sequence" type="asnx:SequenceType"/> <element name="set" type="asnx:SetType"/> <element name="choice" type="asnx:ChoiceType"/> <element name="union" type="asnx:UnionType"/> <element name="sequenceOf" type="asnx:SequenceOfType"/> <element name="setOf" type="asnx:SetOfType"/> <element name="list" type="asnx:ListType"/> <element name="constrained" type="asnx:ConstrainedType"/> </choice> </type> </group> </sequence> </type> </namedType>

    <namedType name="DefinedType">
     <type>
      <constrained>
       <type>
        <sequence>
         <group name="name">
          <type>
           <choice insertions="none">
            <attribute name="ref" type="asnx:QName"/>
            <attribute name="elementType" type="asnx:Name"/>
           </choice>
          </type>
         </group>
         <optional>
          <attribute name="context" type="asnx:AnyURI"/>
         </optional>
         <optional>
          <attribute name="embedded" type="asnx:BOOLEAN"/>
         </optional>

<namedType name="DefinedType"> <type> <constrained> <type> <sequence> <group name="name"> <type> <choice insertions="none"> <attribute name="ref" type="asnx:QName"/> <attribute name="elementType" type="asnx:Name"/> </choice> </type> </group> <optional> <attribute name="context" type="asnx:AnyURI"/> </optional> <optional> <attribute name="embedded" type="asnx:BOOLEAN"/> </optional>

Legg                          Experimental                    [Page 129]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 129] RFC 4912 Abstract Syntax Notation X July 2007

        </sequence>
       </type>
       <union>
        <withComponents partial="true">
         <group name="name">
          <withComponents>
           <attribute name="ref" use="present"/>
          </withComponents>
         </group>
        </withComponents>
        <withComponents partial="true">
         <group name="name">
          <withComponents>
           <attribute name="elementType" use="present"/>
          </withComponents>
         </group>
         <attribute name="embedded" use="absent"/>
        </withComponents>
       </union>
      </constrained>
     </type>
    </namedType>

</sequence> </type> <union> <withComponents partial="true"> <group name="name"> <withComponents> <attribute name="ref" use="present"/> </withComponents> </group> </withComponents> <withComponents partial="true"> <group name="name"> <withComponents> <attribute name="elementType" use="present"/> </withComponents> </group> <attribute name="embedded" use="absent"/> </withComponents> </union> </constrained> </type> </namedType>

    <namedType name="ExpandedType">
     <type>
      <sequence>
       <optional>
        <attribute name="name" type="asnx:NCName"/>
       </optional>
       <optional>
        <element name="module" type="asnx:ReferencedModule"/>
       </optional>
       <group name="type" type="asnx:Type"/>
      </sequence>
     </type>
    </namedType>

<namedType name="ExpandedType"> <type> <sequence> <optional> <attribute name="name" type="asnx:NCName"/> </optional> <optional> <element name="module" type="asnx:ReferencedModule"/> </optional> <group name="type" type="asnx:Type"/> </sequence> </type> </namedType>

    <namedType name="ReferencedModule">
     <type>
      <sequence>
       <optional>
        <attribute name="name" type="asnx:ModuleReference"/>
       </optional>
       <optional>
        <attribute name="identifier" type="asnx:DefinitiveIdentifier"/>
       </optional>
       <optional>
        <attribute name="schemaIdentity" type="asnx:AnyURI"/>

<namedType name="ReferencedModule"> <type> <sequence> <optional> <attribute name="name" type="asnx:ModuleReference"/> </optional> <optional> <attribute name="identifier" type="asnx:DefinitiveIdentifier"/> </optional> <optional> <attribute name="schemaIdentity" type="asnx:AnyURI"/>

Legg                          Experimental                    [Page 130]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 130] RFC 4912 Abstract Syntax Notation X July 2007

       </optional>
      </sequence>
     </type>
    </namedType>

</optional> </sequence> </type> </namedType>

    <namedType name="NamedBitList">
     <type>
      <sequenceOf minSize="1">
       <element name="namedBit" type="asnx:NamedBit"/>
      </sequenceOf>
     </type>
    </namedType>

<namedType name="NamedBitList"> <type> <sequenceOf minSize="1"> <element name="namedBit" type="asnx:NamedBit"/> </sequenceOf> </type> </namedType>

    <namedType name="NamedBit">
     <type>
      <sequence>
       <attribute name="name" type="asnx:NCName"/>
       <optional>
        <attribute name="identifier" type="asnx:Identifier"/>
       </optional>
       <attribute name="bit">
        <type>
         <constrained type="asnx:INTEGER">
          <range>
           <minInclusive literalValue="0"/>
          </range>
         </constrained>
        </type>
       </attribute>
      </sequence>
     </type>
    </namedType>

<namedType name="NamedBit"> <type> <sequence> <attribute name="name" type="asnx:NCName"/> <optional> <attribute name="identifier" type="asnx:Identifier"/> </optional> <attribute name="bit"> <type> <constrained type="asnx:INTEGER"> <range> <minInclusive literalValue="0"/> </range> </constrained> </type> </attribute> </sequence> </type> </namedType>

    <namedType name="NamedNumberList">
     <type>
      <sequenceOf minSize="1">
       <element name="namedNumber" type="asnx:NamedNumber"/>
      </sequenceOf>
     </type>
    </namedType>

<namedType name="NamedNumberList"> <type> <sequenceOf minSize="1"> <element name="namedNumber" type="asnx:NamedNumber"/> </sequenceOf> </type> </namedType>

    <namedType name="NamedNumber">
     <type>
      <sequence>
       <attribute name="name" type="asnx:NCName"/>
       <optional>
        <attribute name="identifier" type="asnx:Identifier"/>
       </optional>

<namedType name="NamedNumber"> <type> <sequence> <attribute name="name" type="asnx:NCName"/> <optional> <attribute name="identifier" type="asnx:Identifier"/> </optional>

Legg                          Experimental                    [Page 131]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 131] RFC 4912 Abstract Syntax Notation X July 2007

       <attribute name="number" type="asnx:INTEGER"/>
      </sequence>
     </type>
    </namedType>

<attribute name="number" type="asnx:INTEGER"/> </sequence> </type> </namedType>

    <namedType name="EnumeratedType">
     <type>
      <sequence>
       <group name="root" type="asnx:Enumeration"/>
       <optional>
        <element name="extension">
         <type>
          <sequence>
           <optional>
            <element name="exception" type="asnx:ExceptionSpec"/>
           </optional>
           <optional>
            <group name="additions" type="asnx:Enumeration"/>
           </optional>
          </sequence>
         </type>
        </element>
       </optional>
      </sequence>
     </type>
    </namedType>

<namedType name="EnumeratedType"> <type> <sequence> <group name="root" type="asnx:Enumeration"/> <optional> <element name="extension"> <type> <sequence> <optional> <element name="exception" type="asnx:ExceptionSpec"/> </optional> <optional> <group name="additions" type="asnx:Enumeration"/> </optional> </sequence> </type> </element> </optional> </sequence> </type> </namedType>

    <namedType name="Enumeration">
     <type>
      <sequenceOf minSize="1">
       <element name="enumeration" type="asnx:EnumerationItem"/>
      </sequenceOf>
     </type>
    </namedType>

<namedType name="Enumeration"> <type> <sequenceOf minSize="1"> <element name="enumeration" type="asnx:EnumerationItem"/> </sequenceOf> </type> </namedType>

    <namedType name="EnumerationItem">
     <type>
      <sequence>
       <attribute name="name" type="asnx:NCName"/>
       <optional>
        <attribute name="identifier" type="asnx:Identifier"/>
       </optional>
       <optional>
        <attribute name="number" type="asnx:INTEGER"/>
       </optional>
      </sequence>
     </type>
    </namedType>

<namedType name="EnumerationItem"> <type> <sequence> <attribute name="name" type="asnx:NCName"/> <optional> <attribute name="identifier" type="asnx:Identifier"/> </optional> <optional> <attribute name="number" type="asnx:INTEGER"/> </optional> </sequence> </type> </namedType>

Legg                          Experimental                    [Page 132]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 132] RFC 4912 Abstract Syntax Notation X July 2007

    <namedType name="Tag">
     <type>
      <sequence>
       <optional>
        <attribute name="tagClass" type="asnx:TagClass"/>
       </optional>
       <attribute name="number">
        <type>
         <constrained type="asnx:INTEGER">
          <range>
           <minInclusive literalValue="0"/>
          </range>
         </constrained>
        </type>
       </attribute>
       <optional>
        <attribute name="tagging" type="asnx:Tagging"/>
       </optional>
      </sequence>
     </type>
    </namedType>

<namedType name="Tag"> <type> <sequence> <optional> <attribute name="tagClass" type="asnx:TagClass"/> </optional> <attribute name="number"> <type> <constrained type="asnx:INTEGER"> <range> <minInclusive literalValue="0"/> </range> </constrained> </type> </attribute> <optional> <attribute name="tagging" type="asnx:Tagging"/> </optional> </sequence> </type> </namedType>

    <namedType name="TaggedType">
     <type>
      <sequence>
       <componentsOf type="asnx:Tag"/>
       <group name="type" type="asnx:Type"/>
      </sequence>
     </type>
    </namedType>

<namedType name="TaggedType"> <type> <sequence> <componentsOf type="asnx:Tag"/> <group name="type" type="asnx:Type"/> </sequence> </type> </namedType>

    <namedType name="TagClass">
     <type>
      <enumerated>
       <enumeration name="universal"/>
       <enumeration name="application"/>
       <enumeration name="private"/>
      </enumerated>
     </type>
    </namedType>

<namedType name="TagClass"> <type> <enumerated> <enumeration name="universal"/> <enumeration name="application"/> <enumeration name="private"/> </enumerated> </type> </namedType>

    <namedType name="Tagging">
     <type>
      <enumerated>
       <enumeration name="explicit"/>
       <enumeration name="implicit"/>
      </enumerated>
     </type>

<namedType name="Tagging"> <type> <enumerated> <enumeration name="explicit"/> <enumeration name="implicit"/> </enumerated> </type>

Legg                          Experimental                    [Page 133]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 133] RFC 4912 Abstract Syntax Notation X July 2007

    </namedType>

</namedType>

    <namedType name="EncodingPrefixedType">
     <type>
      <sequence insertions="hollow">
       <group name="prefixes" type="asnx:EncodingPrefixes"/>
       <group name="type" type="asnx:Type"/>
      </sequence>
     </type>
    </namedType>

<namedType name="EncodingPrefixedType"> <type> <sequence insertions="hollow"> <group name="prefixes" type="asnx:EncodingPrefixes"/> <group name="type" type="asnx:Type"/> </sequence> </type> </namedType>

    <namedType name="EncodingPrefixes">
     <type>
      <sequenceOf minSize="1">
       <group name="prefix" type="asnx:EncodingPrefix"/>
      </sequenceOf>
     </type>
    </namedType>

<namedType name="EncodingPrefixes"> <type> <sequenceOf minSize="1"> <group name="prefix" type="asnx:EncodingPrefix"/> </sequenceOf> </type> </namedType>

    <namedType name="EncodingPrefix">
     <type>
      <choice insertions="singular">
       <element name="TAG" identifier="tag" type="asnx:Tag"/>
       <element name="GSER" identifier="gser"
                type="asnx:GSER-EncodingInstruction"/>
       <element name="XER" identifier="xer"
                type="asnx:XER-EncodingInstruction"/>
       <!-- plus encoding instructions
            for other encoding rules in the future -->
      </choice>
     </type>
    </namedType>

<namedType name="EncodingPrefix"> <type> <choice insertions="singular"> <element name="TAG" identifier="tag" type="asnx:Tag"/> <element name="GSER" identifier="gser" type="asnx:GSER-EncodingInstruction"/> <element name="XER" identifier="xer" type="asnx:XER-EncodingInstruction"/> <!-- plus encoding instructions for other encoding rules in the future --> </choice> </type> </namedType>

    <namedType name="SelectionType">
     <type>
      <sequence>
       <group name="alternative">
        <type>
         <choice insertions="singular">
          <attribute name="component" type="asnx:QName"/>
          <attribute name="element" type="asnx:QName"/>
          <attribute name="attribute" type="asnx:QName"/>
          <attribute name="group" type="asnx:QName"/>
          <attribute name="member" type="asnx:QName"/>
         </choice>
        </type>
       </group>
       <group name="type" type="asnx:Type"/>

<namedType name="SelectionType"> <type> <sequence> <group name="alternative"> <type> <choice insertions="singular"> <attribute name="component" type="asnx:QName"/> <attribute name="element" type="asnx:QName"/> <attribute name="attribute" type="asnx:QName"/> <attribute name="group" type="asnx:QName"/> <attribute name="member" type="asnx:QName"/> </choice> </type> </group> <group name="type" type="asnx:Type"/>

Legg                          Experimental                    [Page 134]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 134] RFC 4912 Abstract Syntax Notation X July 2007

      </sequence>
     </type>
    </namedType>

</sequence> </type> </namedType>

    <namedType name="InstanceOfType" type="asnx:DefinedObjectClass"/>

<namedType name="InstanceOfType" type="asnx:DefinedObjectClass"/>

    <namedType name="ObjectClassFieldType">
     <type>
      <sequence>
       <group name="objectClass" type="asnx:DefinedObjectClass"/>
       <group name="fieldName" type="asnx:FieldName"/>
      </sequence>
     </type>
    </namedType>

<namedType name="ObjectClassFieldType"> <type> <sequence> <group name="objectClass" type="asnx:DefinedObjectClass"/> <group name="fieldName" type="asnx:FieldName"/> </sequence> </type> </namedType>

    <namedType name="FieldName">
     <type>
      <choice insertions="singular">
       <attribute name="fieldName" identifier="fieldNameAtt"
                  type="asnx:PrimitiveFieldNames"/>
       <element name="fieldName" type="asnx:PrimitiveFieldNames"/>
      </choice>
     </type>
    </namedType>

<namedType name="FieldName"> <type> <choice insertions="singular"> <attribute name="fieldName" identifier="fieldNameAtt" type="asnx:PrimitiveFieldNames"/> <element name="fieldName" type="asnx:PrimitiveFieldNames"/> </choice> </type> </namedType>

    <namedType name="PrimitiveFieldNames" type="asnx:UTF8String"/>

<namedType name="PrimitiveFieldNames" type="asnx:UTF8String"/>

    <namedType name="InformationFromObjects">
     <type>
      <sequence insertions="hollow">
       <group name="referencedObjects" type="asnx:ReferencedObjects"/>
       <group name="fieldName" type="asnx:FieldName"/>
      </sequence>
     </type>
    </namedType>

<namedType name="InformationFromObjects"> <type> <sequence insertions="hollow"> <group name="referencedObjects" type="asnx:ReferencedObjects"/> <group name="fieldName" type="asnx:FieldName"/> </sequence> </type> </namedType>

    <namedType name="ReferencedObjects">
     <type>
      <choice insertions="singular">
       <group name="object" type="asnx:Object"/>
       <group name="objectSet" type="asnx:ObjectSet"/>
      </choice>
     </type>
    </namedType>

<namedType name="ReferencedObjects"> <type> <choice insertions="singular"> <group name="object" type="asnx:Object"/> <group name="objectSet" type="asnx:ObjectSet"/> </choice> </type> </namedType>

    <namedType name="Insertions">
     <type>
      <enumerated>

<namedType name="Insertions"> <type> <enumerated>

Legg                          Experimental                    [Page 135]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 135] RFC 4912 Abstract Syntax Notation X July 2007

       <enumeration name="none"/>
       <enumeration name="hollow"/>
       <enumeration name="singular"/>
       <enumeration name="uniform"/>
       <enumeration name="multiform"/>
      </enumerated>
     </type>
    </namedType>

<enumeration name="none"/> <enumeration name="hollow"/> <enumeration name="singular"/> <enumeration name="uniform"/> <enumeration name="multiform"/> </enumerated> </type> </namedType>

    <namedType name="SequenceType">
     <type>
      <sequence insertions="hollow">
       <optional>
        <attribute name="insertions" type="asnx:Insertions"/>
       </optional>
       <optional>
        <group name="root" type="asnx:ComponentTypeList"/>
       </optional>
       <optional>
        <group name="extensionAndFinal">
         <type>
          <sequence insertions="hollow">
           <element name="extension">
            <type>
             <sequence insertions="hollow">
              <optional>
               <element name="exception" type="asnx:ExceptionSpec"/>
              </optional>
              <optional>
               <group name="additions" type="asnx:ExtensionAdditions"/>
              </optional>
             </sequence>
            </type>
           </element>
           <optional>
            <group name="root" type="asnx:ComponentTypeList"/>
           </optional>
          </sequence>
         </type>
        </group>
       </optional>
      </sequence>
     </type>
    </namedType>

<namedType name="SequenceType"> <type> <sequence insertions="hollow"> <optional> <attribute name="insertions" type="asnx:Insertions"/> </optional> <optional> <group name="root" type="asnx:ComponentTypeList"/> </optional> <optional> <group name="extensionAndFinal"> <type> <sequence insertions="hollow"> <element name="extension"> <type> <sequence insertions="hollow"> <optional> <element name="exception" type="asnx:ExceptionSpec"/> </optional> <optional> <group name="additions" type="asnx:ExtensionAdditions"/> </optional> </sequence> </type> </element> <optional> <group name="root" type="asnx:ComponentTypeList"/> </optional> </sequence> </type> </group> </optional> </sequence> </type> </namedType>

    <namedType name="ComponentTypeList">
     <type>
      <sequenceOf minSize="1">

<namedType name="ComponentTypeList"> <type> <sequenceOf minSize="1">

Legg                          Experimental                    [Page 136]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 136] RFC 4912 Abstract Syntax Notation X July 2007

       <group name="componentType" type="asnx:ComponentType"/>
      </sequenceOf>
     </type>
    </namedType>

<group name="componentType" type="asnx:ComponentType"/> </sequenceOf> </type> </namedType>

    <namedType name="ComponentType">
     <type>
      <choice insertions="none">
       <group name="component" type="asnx:SequenceNamedType"/>
       <element name="optional">
        <type>
         <sequence>
          <group name="component" type="asnx:SequenceNamedType"/>
          <optional>
           <element name="default" type="asnx:Value"/>
          </optional>
         </sequence>
        </type>
       </element>
       <element name="componentsOf" type="asnx:Type"/>
      </choice>
     </type>
    </namedType>

<namedType name="ComponentType"> <type> <choice insertions="none"> <group name="component" type="asnx:SequenceNamedType"/> <element name="optional"> <type> <sequence> <group name="component" type="asnx:SequenceNamedType"/> <optional> <element name="default" type="asnx:Value"/> </optional> </sequence> </type> </element> <element name="componentsOf" type="asnx:Type"/> </choice> </type> </namedType>

    <namedType name="SequenceNamedType">
     <type>
      <constrained type="asnx:NamedType">
       <withComponents partial="true">
        <element name="member" use="absent"/>
        <element name="item" use="absent"/>
       </withComponents>
      </constrained>
     </type>
    </namedType>

<namedType name="SequenceNamedType"> <type> <constrained type="asnx:NamedType"> <withComponents partial="true"> <element name="member" use="absent"/> <element name="item" use="absent"/> </withComponents> </constrained> </type> </namedType>

    <namedType name="ExtensionAdditions">
     <type>
      <sequenceOf minSize="1">
       <group name="addition" type="asnx:ExtensionAddition"/>
      </sequenceOf>
     </type>
    </namedType>

<namedType name="ExtensionAdditions"> <type> <sequenceOf minSize="1"> <group name="addition" type="asnx:ExtensionAddition"/> </sequenceOf> </type> </namedType>

    <namedType name="ExtensionAddition">
     <type>
      <choice insertions="none">
       <element name="extensionGroup"
                type="asnx:ExtensionAdditionGroup"/>

<namedType name="ExtensionAddition"> <type> <choice insertions="none"> <element name="extensionGroup" type="asnx:ExtensionAdditionGroup"/>

Legg                          Experimental                    [Page 137]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 137] RFC 4912 Abstract Syntax Notation X July 2007

       <group name="componentType" type="asnx:ComponentType"/>
      </choice>
     </type>
    </namedType>

<group name="componentType" type="asnx:ComponentType"/> </choice> </type> </namedType>

    <namedType name="ExtensionAdditionGroup">
     <type>
      <sequence insertions="hollow">
       <optional>
        <attribute name="version" type="asnx:VersionNumber"/>
       </optional>
       <group name="componentTypes" type="asnx:ComponentTypeList"/>
      </sequence>
     </type>
    </namedType>

<namedType name="ExtensionAdditionGroup"> <type> <sequence insertions="hollow"> <optional> <attribute name="version" type="asnx:VersionNumber"/> </optional> <group name="componentTypes" type="asnx:ComponentTypeList"/> </sequence> </type> </namedType>

    <namedType name="VersionNumber">
     <type>
      <constrained type="asnx:INTEGER">
       <range>
        <minInclusive literalValue="2"/>
       </range>
      </constrained>
     </type>
    </namedType>

<namedType name="VersionNumber"> <type> <constrained type="asnx:INTEGER"> <range> <minInclusive literalValue="2"/> </range> </constrained> </type> </namedType>

    <namedType name="SetType" type="asnx:SequenceType"/>

<namedType name="SetType" type="asnx:SequenceType"/>

    <namedType name="ChoiceOrUnionType">
     <type>
      <sequence insertions="hollow">
       <optional>
        <attribute name="insertions" type="asnx:Insertions"/>
       </optional>
       <optional>
        <attribute name="precedence" type="asnx:PrecedenceList"/>
       </optional>
       <group name="root" type="asnx:AlternativeTypeList"/>
       <optional>
        <element name="extension">
         <type>
          <sequence insertions="hollow">
           <optional>
            <element name="exception" type="asnx:ExceptionSpec"/>
           </optional>
           <optional>
            <group name="additions"
                   type="asnx:ExtensionAdditionAlternatives"/>

<namedType name="ChoiceOrUnionType"> <type> <sequence insertions="hollow"> <optional> <attribute name="insertions" type="asnx:Insertions"/> </optional> <optional> <attribute name="precedence" type="asnx:PrecedenceList"/> </optional> <group name="root" type="asnx:AlternativeTypeList"/> <optional> <element name="extension"> <type> <sequence insertions="hollow"> <optional> <element name="exception" type="asnx:ExceptionSpec"/> </optional> <optional> <group name="additions" type="asnx:ExtensionAdditionAlternatives"/>

Legg                          Experimental                    [Page 138]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 138] RFC 4912 Abstract Syntax Notation X July 2007

           </optional>
          </sequence>
         </type>
        </element>
       </optional>
      </sequence>
     </type>
    </namedType>

</optional> </sequence> </type> </element> </optional> </sequence> </type> </namedType>

    <namedType name="PrecedenceList">
     <type>
      <list minSize="1">
       <item name="member" type="asnx:QName"/>
      </list>
     </type>
    </namedType>

<namedType name="PrecedenceList"> <type> <list minSize="1"> <item name="member" type="asnx:QName"/> </list> </type> </namedType>

    <namedType name="AlternativeTypeList">
     <type>
      <sequenceOf minSize="1">
       <group name="component" type="asnx:ChoiceOrUnionNamedType"/>
      </sequenceOf>
     </type>
    </namedType>

<namedType name="AlternativeTypeList"> <type> <sequenceOf minSize="1"> <group name="component" type="asnx:ChoiceOrUnionNamedType"/> </sequenceOf> </type> </namedType>

    <namedType name="ChoiceOrUnionNamedType">
     <type>
      <constrained type="asnx:NamedType">
       <withComponents partial="true">
        <element name="item" use="absent"/>
        <element name="simpleContent" use="absent"/>
       </withComponents>
      </constrained>
     </type>
    </namedType>

<namedType name="ChoiceOrUnionNamedType"> <type> <constrained type="asnx:NamedType"> <withComponents partial="true"> <element name="item" use="absent"/> <element name="simpleContent" use="absent"/> </withComponents> </constrained> </type> </namedType>

    <namedType name="ExtensionAdditionAlternatives">
     <type>
      <sequenceOf minSize="1">
       <group name="addition" type="asnx:ExtensionAdditionAlternative"/>
      </sequenceOf>
     </type>
    </namedType>

<namedType name="ExtensionAdditionAlternatives"> <type> <sequenceOf minSize="1"> <group name="addition" type="asnx:ExtensionAdditionAlternative"/> </sequenceOf> </type> </namedType>

    <namedType name="ExtensionAdditionAlternative">
     <type>
      <choice insertions="none">
       <element name="extensionGroup"

<namedType name="ExtensionAdditionAlternative"> <type> <choice insertions="none"> <element name="extensionGroup"

Legg                          Experimental                    [Page 139]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 139] RFC 4912 Abstract Syntax Notation X July 2007

                type="asnx:ExtensionAdditionAlternativesGroup"/>
       <group name="component" type="asnx:ChoiceOrUnionNamedType"/>
      </choice>
     </type>
    </namedType>

type="asnx:ExtensionAdditionAlternativesGroup"/> <group name="component" type="asnx:ChoiceOrUnionNamedType"/> </choice> </type> </namedType>

    <namedType name="ExtensionAdditionAlternativesGroup">
     <type>
      <sequence insertions="hollow">
       <optional>
        <attribute name="version" type="asnx:VersionNumber"/>
       </optional>
       <group name="alternatives" type="asnx:AlternativeTypeList"/>
      </sequence>
     </type>
    </namedType>

<namedType name="ExtensionAdditionAlternativesGroup"> <type> <sequence insertions="hollow"> <optional> <attribute name="version" type="asnx:VersionNumber"/> </optional> <group name="alternatives" type="asnx:AlternativeTypeList"/> </sequence> </type> </namedType>

    <namedType name="ChoiceType">
     <type>
      <constrained type="asnx:ChoiceOrUnionType">
       <withComponents partial="true">
        <attribute name="precedence" use="absent"/>
        <group name="root">
         <withComponent>
          <includes type="asnx:ChoiceNamedType"/>
         </withComponent>
        </group>
        <element name="extension">
         <withComponents partial="true">
          <group name="additions">
           <withComponent>
            <withComponents partial="true">
             <element name="extensionGroup">
              <withComponents partial="true">
               <group name="alternatives">
                <withComponent>
                 <includes type="asnx:ChoiceNamedType"/>
                </withComponent>
               </group>
              </withComponents>
             </element>
             <group name="component">
              <includes type="asnx:ChoiceNamedType"/>
             </group>
            </withComponents>
           </withComponent>
          </group>
         </withComponents>

<namedType name="ChoiceType"> <type> <constrained type="asnx:ChoiceOrUnionType"> <withComponents partial="true"> <attribute name="precedence" use="absent"/> <group name="root"> <withComponent> <includes type="asnx:ChoiceNamedType"/> </withComponent> </group> <element name="extension"> <withComponents partial="true"> <group name="additions"> <withComponent> <withComponents partial="true"> <element name="extensionGroup"> <withComponents partial="true"> <group name="alternatives"> <withComponent> <includes type="asnx:ChoiceNamedType"/> </withComponent> </group> </withComponents> </element> <group name="component"> <includes type="asnx:ChoiceNamedType"/> </group> </withComponents> </withComponent> </group> </withComponents>

Legg                          Experimental                    [Page 140]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 140] RFC 4912 Abstract Syntax Notation X July 2007

        </element>
       </withComponents>
      </constrained>
     </type>
    </namedType>

</element> </withComponents> </constrained> </type> </namedType>

    <namedType name="ChoiceNamedType">
     <type>
      <constrained type="asnx:ChoiceOrUnionNamedType">
       <withComponents partial="true">
        <element name="member" use="absent"/>
       </withComponents>
      </constrained>
     </type>
    </namedType>

<namedType name="ChoiceNamedType"> <type> <constrained type="asnx:ChoiceOrUnionNamedType"> <withComponents partial="true"> <element name="member" use="absent"/> </withComponents> </constrained> </type> </namedType>

    <namedType name="UnionType">
     <type>
      <constrained type="asnx:ChoiceOrUnionType">
       <withComponents partial="true">
        <attribute name="insertions" use="absent"/>
        <group name="root">
         <withComponent>
          <includes type="asnx:UnionNamedType"/>
         </withComponent>
        </group>
        <element name="extension">
         <withComponents partial="true">
          <group name="additions">
           <withComponent>
            <withComponents partial="true">
             <element name="extensionGroup">
              <withComponents partial="true">
               <group name="alternatives">
                <withComponent>
                 <includes type="asnx:UnionNamedType"/>
                </withComponent>
               </group>
              </withComponents>
             </element>
             <group name="component">
              <includes type="asnx:UnionNamedType"/>
             </group>
            </withComponents>
           </withComponent>
          </group>
         </withComponents>
        </element>

<namedType name="UnionType"> <type> <constrained type="asnx:ChoiceOrUnionType"> <withComponents partial="true"> <attribute name="insertions" use="absent"/> <group name="root"> <withComponent> <includes type="asnx:UnionNamedType"/> </withComponent> </group> <element name="extension"> <withComponents partial="true"> <group name="additions"> <withComponent> <withComponents partial="true"> <element name="extensionGroup"> <withComponents partial="true"> <group name="alternatives"> <withComponent> <includes type="asnx:UnionNamedType"/> </withComponent> </group> </withComponents> </element> <group name="component"> <includes type="asnx:UnionNamedType"/> </group> </withComponents> </withComponent> </group> </withComponents> </element>

Legg                          Experimental                    [Page 141]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 141] RFC 4912 Abstract Syntax Notation X July 2007

       </withComponents>
      </constrained>
     </type>
    </namedType>

</withComponents> </constrained> </type> </namedType>

    <namedType name="UnionNamedType">
     <type>
      <constrained type="asnx:ChoiceOrUnionNamedType">
       <withComponents partial="true">
        <element name="component" use="absent"/>
        <element name="element" use="absent"/>
        <element name="attribute" use="absent"/>
        <element name="group" use="absent"/>
       </withComponents>
      </constrained>
     </type>
    </namedType>

<namedType name="UnionNamedType"> <type> <constrained type="asnx:ChoiceOrUnionNamedType"> <withComponents partial="true"> <element name="component" use="absent"/> <element name="element" use="absent"/> <element name="attribute" use="absent"/> <element name="group" use="absent"/> </withComponents> </constrained> </type> </namedType>

    <namedType name="SequenceOfOrListType">
     <type>
      <sequence>
       <optional>
        <attribute name="minSize">
         <type>
          <constrained type="asnx:INTEGER">
           <range>
            <minInclusive literalValue="0"/>
           </range>
          </constrained>
         </type>
        </attribute>
       </optional>
       <optional>
        <attribute name="maxSize">
         <type>
          <constrained type="asnx:INTEGER">
           <range>
            <minInclusive literalValue="0"/>
           </range>
          </constrained>
         </type>
        </attribute>
       </optional>
       <group name="component">
        <type>
         <constrained type="asnx:NamedType">
          <withComponents partial="true">
           <element name="attribute" use="absent"/>

<namedType name="SequenceOfOrListType"> <type> <sequence> <optional> <attribute name="minSize"> <type> <constrained type="asnx:INTEGER"> <range> <minInclusive literalValue="0"/> </range> </constrained> </type> </attribute> </optional> <optional> <attribute name="maxSize"> <type> <constrained type="asnx:INTEGER"> <range> <minInclusive literalValue="0"/> </range> </constrained> </type> </attribute> </optional> <group name="component"> <type> <constrained type="asnx:NamedType"> <withComponents partial="true"> <element name="attribute" use="absent"/>

Legg                          Experimental                    [Page 142]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 142] RFC 4912 Abstract Syntax Notation X July 2007

           <element name="member" use="absent"/>
           <element name="simpleContent" use="absent"/>
          </withComponents>
         </constrained>
        </type>
       </group>
      </sequence>
     </type>
    </namedType>

<element name="member" use="absent"/> <element name="simpleContent" use="absent"/> </withComponents> </constrained> </type> </group> </sequence> </type> </namedType>

    <namedType name="SequenceOfType">
     <type>
      <constrained type="asnx:SequenceOfOrListType">
       <withComponents partial="true">
        <group name="component">
         <withComponents partial="true">
          <element name="item" use="absent"/>
         </withComponents>
        </group>
       </withComponents>
      </constrained>
     </type>
    </namedType>

<namedType name="SequenceOfType"> <type> <constrained type="asnx:SequenceOfOrListType"> <withComponents partial="true"> <group name="component"> <withComponents partial="true"> <element name="item" use="absent"/> </withComponents> </group> </withComponents> </constrained> </type> </namedType>

    <namedType name="SetOfType" type="asnx:SequenceOfType"/>

<namedType name="SetOfType" type="asnx:SequenceOfType"/>

    <namedType name="ListType">
     <type>
      <constrained type="asnx:SequenceOfOrListType">
       <withComponents partial="true">
        <group name="component">
         <withComponents partial="true">
          <element name="component" use="absent"/>
          <element name="element" use="absent"/>
          <element name="group" use="absent"/>
         </withComponents>
        </group>
       </withComponents>
      </constrained>
     </type>
    </namedType>

<namedType name="ListType"> <type> <constrained type="asnx:SequenceOfOrListType"> <withComponents partial="true"> <group name="component"> <withComponents partial="true"> <element name="component" use="absent"/> <element name="element" use="absent"/> <element name="group" use="absent"/> </withComponents> </group> </withComponents> </constrained> </type> </namedType>

    <namedType name="ConstrainedType">
     <type>
      <sequence insertions="hollow">
       <group name="type" type="asnx:Type"/>
       <group name="constraint" type="asnx:Constraint"/>
      </sequence>

<namedType name="ConstrainedType"> <type> <sequence insertions="hollow"> <group name="type" type="asnx:Type"/> <group name="constraint" type="asnx:Constraint"/> </sequence>

Legg                          Experimental                    [Page 143]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 143] RFC 4912 Abstract Syntax Notation X July 2007

     </type>
    </namedType>

</type> </namedType>

    <namedType name="Constraint">
     <type>
      <sequence>
       <group name="constraintSpec">
        <type>
         <choice insertions="none">
          <group name="subtype" type="asnx:ElementSetSpecs"/>
          <element name="constrainedBy"
                   type="asnx:UserDefinedConstraint"/>
          <element name="table" type="asnx:TableConstraint"/>
          <element name="contents" type="asnx:ContentsConstraint"/>
         </choice>
        </type>
       </group>
       <optional>
        <element name="exception" type="asnx:ExceptionSpec"/>
       </optional>
      </sequence>
     </type>
    </namedType>

<namedType name="Constraint"> <type> <sequence> <group name="constraintSpec"> <type> <choice insertions="none"> <group name="subtype" type="asnx:ElementSetSpecs"/> <element name="constrainedBy" type="asnx:UserDefinedConstraint"/> <element name="table" type="asnx:TableConstraint"/> <element name="contents" type="asnx:ContentsConstraint"/> </choice> </type> </group> <optional> <element name="exception" type="asnx:ExceptionSpec"/> </optional> </sequence> </type> </namedType>

    <namedType name="UserDefinedConstraint">
     <type>
      <sequence insertions="hollow">
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <optional>
        <group name="parameters" type="asnx:ConstraintParameters"/>
       </optional>
      </sequence>
     </type>
    </namedType>

<namedType name="UserDefinedConstraint"> <type> <sequence insertions="hollow"> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <optional> <group name="parameters" type="asnx:ConstraintParameters"/> </optional> </sequence> </type> </namedType>

    <namedType name="ConstraintParameters">
     <type>
      <sequenceOf minSize="1">
       <group name="parameter"
              type="asnx:UserDefinedConstraintParameter"/>
      </sequenceOf>
     </type>
    </namedType>

<namedType name="ConstraintParameters"> <type> <sequenceOf minSize="1"> <group name="parameter" type="asnx:UserDefinedConstraintParameter"/> </sequenceOf> </type> </namedType>

    <namedType name="UserDefinedConstraintParameter">
     <type>

<namedType name="UserDefinedConstraintParameter"> <type>

Legg                          Experimental                    [Page 144]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 144] RFC 4912 Abstract Syntax Notation X July 2007

      <choice insertions="singular">
       <element name="valueParameter">
        <type>
         <sequence>
          <group name="type" type="asnx:Type"/>
          <group name="value" type="asnx:Value"/>
         </sequence>
        </type>
       </element>
       <element name="valueSetParameter">
        <type>
         <sequence>
          <group name="type" type="asnx:Type"/>
          <group name="valueSet" type="asnx:ValueSet"/>
         </sequence>
        </type>
       </element>
       <element name="objectParameter">
        <type>
         <sequence>
          <group name="objectClass" type="asnx:DefinedObjectClass"/>
          <group name="object" type="asnx:Object"/>
         </sequence>
        </type>
       </element>
       <element name="objectSetParameter">
        <type>
         <sequence>
          <group name="objectClass" type="asnx:DefinedObjectClass"/>
          <group name="objectSet" type="asnx:ObjectSet"/>
         </sequence>
        </type>
       </element>
       <element name="typeParameter">
        <type>
         <sequence>
          <group name="type" type="asnx:Type"/>
         </sequence>
        </type>
       </element>
       <element name="classParameter">
        <type>
         <sequence>
          <group name="objectClass" type="asnx:DefinedObjectClass"/>
         </sequence>
        </type>
       </element>
      </choice>

<choice insertions="singular"> <element name="valueParameter"> <type> <sequence> <group name="type" type="asnx:Type"/> <group name="value" type="asnx:Value"/> </sequence> </type> </element> <element name="valueSetParameter"> <type> <sequence> <group name="type" type="asnx:Type"/> <group name="valueSet" type="asnx:ValueSet"/> </sequence> </type> </element> <element name="objectParameter"> <type> <sequence> <group name="objectClass" type="asnx:DefinedObjectClass"/> <group name="object" type="asnx:Object"/> </sequence> </type> </element> <element name="objectSetParameter"> <type> <sequence> <group name="objectClass" type="asnx:DefinedObjectClass"/> <group name="objectSet" type="asnx:ObjectSet"/> </sequence> </type> </element> <element name="typeParameter"> <type> <sequence> <group name="type" type="asnx:Type"/> </sequence> </type> </element> <element name="classParameter"> <type> <sequence> <group name="objectClass" type="asnx:DefinedObjectClass"/> </sequence> </type> </element> </choice>

Legg                          Experimental                    [Page 145]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 145] RFC 4912 Abstract Syntax Notation X July 2007

     </type>
    </namedType>

</type> </namedType>

    <namedType name="TableConstraint">
     <type>
      <sequence>
       <group name="objectSet" type="asnx:ObjectSet"/>
       <optional>
        <group name="componentRelation" type="asnx:AtNotations"/>
       </optional>
      </sequence>
     </type>
    </namedType>

<namedType name="TableConstraint"> <type> <sequence> <group name="objectSet" type="asnx:ObjectSet"/> <optional> <group name="componentRelation" type="asnx:AtNotations"/> </optional> </sequence> </type> </namedType>

    <namedType name="AtNotations">
     <type>
      <sequenceOf minSize="1">
       <element name="restrictBy" type="asnx:AtNotation"/>
      </sequenceOf>
     </type>
    </namedType>

<namedType name="AtNotations"> <type> <sequenceOf minSize="1"> <element name="restrictBy" type="asnx:AtNotation"/> </sequenceOf> </type> </namedType>

    <namedType name="AtNotation" type="asnx:Markup"/>

<namedType name="AtNotation" type="asnx:Markup"/>

    <namedType name="ContentsConstraint">
     <type>
      <constrained>
       <type>
        <sequence>
         <optional>
          <element name="containing" type="asnx:Type"/>
         </optional>
         <optional>
          <element name="encodedBy" type="asnx:Value"/>
         </optional>
        </sequence>
       </type>
       <union>
        <withComponents partial="true">
         <element name="containing" use="present"/>
        </withComponents>
        <withComponents partial="true">
         <element name="encodedBy" use="present"/>
        </withComponents>
       </union>
      </constrained>
     </type>
    </namedType>

<namedType name="ContentsConstraint"> <type> <constrained> <type> <sequence> <optional> <element name="containing" type="asnx:Type"/> </optional> <optional> <element name="encodedBy" type="asnx:Value"/> </optional> </sequence> </type> <union> <withComponents partial="true"> <element name="containing" use="present"/> </withComponents> <withComponents partial="true"> <element name="encodedBy" use="present"/> </withComponents> </union> </constrained> </type> </namedType>

Legg                          Experimental                    [Page 146]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 146] RFC 4912 Abstract Syntax Notation X July 2007

    <namedType name="ExceptionSpec">
     <type>
      <sequence>
       <group name="type" type="asnx:Type"/>
       <group name="value" type="asnx:Value"/>
      </sequence>
     </type>
    </namedType>

<namedType name="ExceptionSpec"> <type> <sequence> <group name="type" type="asnx:Type"/> <group name="value" type="asnx:Value"/> </sequence> </type> </namedType>

    <namedType name="Value">
     <type>
      <choice insertions="none">
       <attribute name="literalValue" identifier="literalValueAtt"
                  type="asnx:UTF8String"/>
       <element name="literalValue"
                type="asnx:ElementFormLiteralValue"/>
       <attribute name="value" identifier="valueRef" type="asnx:QName"/>
       <element name="value" type="asnx:ElementFormNotationalValue"/>
      </choice>
     </type>
    </namedType>

<namedType name="Value"> <type> <choice insertions="none"> <attribute name="literalValue" identifier="literalValueAtt" type="asnx:UTF8String"/> <element name="literalValue" type="asnx:ElementFormLiteralValue"/> <attribute name="value" identifier="valueRef" type="asnx:QName"/> <element name="value" type="asnx:ElementFormNotationalValue"/> </choice> </type> </namedType>

    <namedType name="ElementFormLiteralValue" type="asnx:Markup">
     <annotation>
      If asnx:literal="false" then the governing type of
      ElementFormLiteralValue is ElementFormNotationalValue.
     </annotation>
    </namedType>

<namedType name="ElementFormLiteralValue" type="asnx:Markup"> <annotation> If asnx:literal="false" then the governing type of ElementFormLiteralValue is ElementFormNotationalValue. </annotation> </namedType>

    <namedType name="ElementFormNotationalValue">
     <type>
      <sequence insertions="hollow">
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <group name="definition">
        <type>
         <choice insertions="none">
          <group name="reference" type="asnx:Reference"/>
          <element name="expanded" type="asnx:ExpandedValue"/>
          <element name="fromObjects"
                   type="asnx:InformationFromObjects"/>
          <element name="openTypeValue">
           <type>
            <sequence>
             <group name="type" type="asnx:Type"/>
             <group name="value" type="asnx:Value"/>
            </sequence>

<namedType name="ElementFormNotationalValue"> <type> <sequence insertions="hollow"> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <group name="definition"> <type> <choice insertions="none"> <group name="reference" type="asnx:Reference"/> <element name="expanded" type="asnx:ExpandedValue"/> <element name="fromObjects" type="asnx:InformationFromObjects"/> <element name="openTypeValue"> <type> <sequence> <group name="type" type="asnx:Type"/> <group name="value" type="asnx:Value"/> </sequence>

Legg                          Experimental                    [Page 147]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 147] RFC 4912 Abstract Syntax Notation X July 2007

           </type>
          </element>
          <group name="components" type="asnx:ComponentValueList"/>
         </choice>
        </type>
       </group>
      </sequence>
     </type>
    </namedType>

</type> </element> <group name="components" type="asnx:ComponentValueList"/> </choice> </type> </group> </sequence> </type> </namedType>

    <namedType name="Reference">
     <type>
      <sequence>
       <attribute name="ref" type="asnx:QName"/>
       <optional>
        <attribute name="context" type="asnx:AnyURI"/>
       </optional>
      </sequence>
     </type>
    </namedType>

<namedType name="Reference"> <type> <sequence> <attribute name="ref" type="asnx:QName"/> <optional> <attribute name="context" type="asnx:AnyURI"/> </optional> </sequence> </type> </namedType>

    <namedType name="ExpandedValue">
     <type>
      <sequence>
       <optional>
        <attribute name="name" type="asnx:NCName"/>
       </optional>
       <optional>
        <element name="module" type="asnx:ReferencedModule"/>
       </optional>
       <group name="value" type="asnx:Value"/>
      </sequence>
     </type>
    </namedType>

<namedType name="ExpandedValue"> <type> <sequence> <optional> <attribute name="name" type="asnx:NCName"/> </optional> <optional> <element name="module" type="asnx:ReferencedModule"/> </optional> <group name="value" type="asnx:Value"/> </sequence> </type> </namedType>

    <namedType name="ComponentValueList">
     <type>
      <sequenceOf minSize="1">
       <group name="component" type="asnx:NamedValue"/>
      </sequenceOf>
     </type>
    </namedType>

<namedType name="ComponentValueList"> <type> <sequenceOf minSize="1"> <group name="component" type="asnx:NamedValue"/> </sequenceOf> </type> </namedType>

    <namedType name="NamedValue">
     <type>
      <choice insertions="singular">
       <element name="component" type="asnx:GenericNamedValue"/>
       <element name="element" type="asnx:GenericNamedValue"/>

<namedType name="NamedValue"> <type> <choice insertions="singular"> <element name="component" type="asnx:GenericNamedValue"/> <element name="element" type="asnx:GenericNamedValue"/>

Legg                          Experimental                    [Page 148]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 148] RFC 4912 Abstract Syntax Notation X July 2007

       <element name="attribute" type="asnx:GenericNamedValue"/>
       <element name="group" type="asnx:GenericNamedValue"/>
       <element name="member" type="asnx:GenericNamedValue"/>
       <element name="item" type="asnx:GenericNamedValue"/>
       <element name="simpleContent" type="asnx:GenericNamedValue"/>
      </choice>
     </type>
    </namedType>

<element name="attribute" type="asnx:GenericNamedValue"/> <element name="group" type="asnx:GenericNamedValue"/> <element name="member" type="asnx:GenericNamedValue"/> <element name="item" type="asnx:GenericNamedValue"/> <element name="simpleContent" type="asnx:GenericNamedValue"/> </choice> </type> </namedType>

    <namedType name="GenericNamedValue">
     <type>
      <sequence>
       <attribute name="name" type="asnx:QName"/>
       <group name="value" type="asnx:Value"/>
      </sequence>
     </type>
    </namedType>

<namedType name="GenericNamedValue"> <type> <sequence> <attribute name="name" type="asnx:QName"/> <group name="value" type="asnx:Value"/> </sequence> </type> </namedType>

    <namedType name="ValueSet">
     <type>
      <choice insertions="none">
       <attribute name="valueSet" identifier="valueSetRef"
                  type="asnx:QName">
        <annotation>
         valueSet attribute is not used in this version
        </annotation>
       </attribute>
       <element name="valueSet" type="asnx:ElementFormValueSet"/>
      </choice>
     </type>
    </namedType>

<namedType name="ValueSet"> <type> <choice insertions="none"> <attribute name="valueSet" identifier="valueSetRef" type="asnx:QName"> <annotation> valueSet attribute is not used in this version </annotation> </attribute> <element name="valueSet" type="asnx:ElementFormValueSet"/> </choice> </type> </namedType>

    <namedType name="ElementFormValueSet">
     <type>
      <sequence insertions="hollow">
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <group name="definition">
        <type>
         <choice insertions="none">
          <group name="elementSetSpecs" type="asnx:ElementSetSpecs"/>
         </choice>
        </type>
       </group>
      </sequence>
     </type>
    </namedType>

<namedType name="ElementFormValueSet"> <type> <sequence insertions="hollow"> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <group name="definition"> <type> <choice insertions="none"> <group name="elementSetSpecs" type="asnx:ElementSetSpecs"/> </choice> </type> </group> </sequence> </type> </namedType>

Legg                          Experimental                    [Page 149]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 149] RFC 4912 Abstract Syntax Notation X July 2007

    <namedType name="ElementSetSpecs">
     <type>
      <sequence insertions="hollow">
       <group name="root" type="asnx:ValueElementSetSpec"/>
       <optional>
        <element name="extension">
         <type>
          <sequence insertions="hollow">
           <optional>
            <group name="additions" type="asnx:ValueElementSetSpec"/>
           </optional>
          </sequence>
         </type>
        </element>
       </optional>
      </sequence>
     </type>
    </namedType>

<namedType name="ElementSetSpecs"> <type> <sequence insertions="hollow"> <group name="root" type="asnx:ValueElementSetSpec"/> <optional> <element name="extension"> <type> <sequence insertions="hollow"> <optional> <group name="additions" type="asnx:ValueElementSetSpec"/> </optional> </sequence> </type> </element> </optional> </sequence> </type> </namedType>

    <namedType name="ValueElementSetSpec">
     <type>
      <constrained type="asnx:ElementSetSpec">
       <withComponents partial="true">
        <element name="object" use="absent"/>
        <element name="objectSet" use="absent"/>
        <element name="union">
         <withComponent>
          <includes type="asnx:ValueElementSetSpec"/>
         </withComponent>
        </element>
        <element name="intersection">
         <withComponent>
          <includes type="asnx:ValueElementSetSpec"/>
         </withComponent>
        </element>
        <element name="all">
         <withComponents partial="true">
          <group name="elements">
           <includes type="asnx:ValueElementSetSpec"/>
          </group>
          <element name="except">
           <includes type="asnx:ValueElementSetSpec"/>
          </element>
         </withComponents>
        </element>
       </withComponents>
      </constrained>
     </type>

<namedType name="ValueElementSetSpec"> <type> <constrained type="asnx:ElementSetSpec"> <withComponents partial="true"> <element name="object" use="absent"/> <element name="objectSet" use="absent"/> <element name="union"> <withComponent> <includes type="asnx:ValueElementSetSpec"/> </withComponent> </element> <element name="intersection"> <withComponent> <includes type="asnx:ValueElementSetSpec"/> </withComponent> </element> <element name="all"> <withComponents partial="true"> <group name="elements"> <includes type="asnx:ValueElementSetSpec"/> </group> <element name="except"> <includes type="asnx:ValueElementSetSpec"/> </element> </withComponents> </element> </withComponents> </constrained> </type>

Legg                          Experimental                    [Page 150]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 150] RFC 4912 Abstract Syntax Notation X July 2007

    </namedType>

</namedType>

    <namedType name="ElementSetSpec">
     <type>
      <choice insertions="singular">
       <element name="literalValue"
                type="asnx:ElementFormLiteralValue"/>
       <element name="value" type="asnx:ElementFormNotationalValue"/>
       <element name="includes" type="asnx:Type"/>
       <element name="range" type="asnx:ValueRange"/>
       <element name="size" type="asnx:Constraint"/>
       <element name="typeConstraint" type="asnx:Type"/>
       <element name="from" type="asnx:Constraint"/>
       <element name="withComponent" type="asnx:Constraint"/>
       <element name="withComponents"
                type="asnx:MultipleTypeConstraints"/>
       <element name="pattern" type="asnx:Value"/>
       <element name="object" type="asnx:ElementFormObject"/>
       <element name="objectSet" type="asnx:ElementFormObjectSet"/>
       <element name="union" type="asnx:ElementSetSpecList"/>
       <element name="intersection" type="asnx:ElementSetSpecList"/>
       <element name="all">
        <type>
         <sequence>
          <optional>
           <group name="elements" type="asnx:ElementSetSpec"/>
          </optional>
          <element name="except" type="asnx:ElementSetSpec"/>
         </sequence>
        </type>
       </element>
      </choice>
     </type>
    </namedType>

<namedType name="ElementSetSpec"> <type> <choice insertions="singular"> <element name="literalValue" type="asnx:ElementFormLiteralValue"/> <element name="value" type="asnx:ElementFormNotationalValue"/> <element name="includes" type="asnx:Type"/> <element name="range" type="asnx:ValueRange"/> <element name="size" type="asnx:Constraint"/> <element name="typeConstraint" type="asnx:Type"/> <element name="from" type="asnx:Constraint"/> <element name="withComponent" type="asnx:Constraint"/> <element name="withComponents" type="asnx:MultipleTypeConstraints"/> <element name="pattern" type="asnx:Value"/> <element name="object" type="asnx:ElementFormObject"/> <element name="objectSet" type="asnx:ElementFormObjectSet"/> <element name="union" type="asnx:ElementSetSpecList"/> <element name="intersection" type="asnx:ElementSetSpecList"/> <element name="all"> <type> <sequence> <optional> <group name="elements" type="asnx:ElementSetSpec"/> </optional> <element name="except" type="asnx:ElementSetSpec"/> </sequence> </type> </element> </choice> </type> </namedType>

    <namedType name="ElementSetSpecList">
     <type>
      <sequenceOf minSize="2">
       <group name="elements" type="asnx:ElementSetSpec"/>
      </sequenceOf>
     </type>
    </namedType>

<namedType name="ElementSetSpecList"> <type> <sequenceOf minSize="2"> <group name="elements" type="asnx:ElementSetSpec"/> </sequenceOf> </type> </namedType>

    <namedType name="ValueRange">
     <type>
      <sequence>
       <optional>
        <group name="minimum">

<namedType name="ValueRange"> <type> <sequence> <optional> <group name="minimum">

Legg                          Experimental                    [Page 151]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 151] RFC 4912 Abstract Syntax Notation X July 2007

         <type>
          <choice insertions="none">
           <element name="minInclusive" type="asnx:EndValue"/>
           <element name="minExclusive" type="asnx:EndValue"/>
          </choice>
         </type>
        </group>
        <default>
         <literalValue>
          <minInclusive/>
         </literalValue>
        </default>
       </optional>
       <optional>
        <group name="maximum">
         <type>
          <choice insertions="none">
           <element name="maxInclusive" type="asnx:EndValue"/>
           <element name="maxExclusive" type="asnx:EndValue"/>
          </choice>
         </type>
        </group>
        <default>
         <literalValue>
          <maxInclusive/>
         </literalValue>
        </default>
       </optional>
      </sequence>
     </type>
    </namedType>

<type> <choice insertions="none"> <element name="minInclusive" type="asnx:EndValue"/> <element name="minExclusive" type="asnx:EndValue"/> </choice> </type> </group> <default> <literalValue> <minInclusive/> </literalValue> </default> </optional> <optional> <group name="maximum"> <type> <choice insertions="none"> <element name="maxInclusive" type="asnx:EndValue"/> <element name="maxExclusive" type="asnx:EndValue"/> </choice> </type> </group> <default> <literalValue> <maxInclusive/> </literalValue> </default> </optional> </sequence> </type> </namedType>

    <namedType name="EndValue">
     <type>
      <sequence insertions="hollow">
       <optional>
        <group name="value" type="asnx:Value"/>
       </optional>
      </sequence>
     </type>
    </namedType>

<namedType name="EndValue"> <type> <sequence insertions="hollow"> <optional> <group name="value" type="asnx:Value"/> </optional> </sequence> </type> </namedType>

    <namedType name="MultipleTypeConstraints">
     <type>
      <sequence insertions="hollow">
       <optional>
        <attribute name="partial" type="asnx:BOOLEAN"/>
        <default literalValue="false"/>

<namedType name="MultipleTypeConstraints"> <type> <sequence insertions="hollow"> <optional> <attribute name="partial" type="asnx:BOOLEAN"/> <default literalValue="false"/>

Legg                          Experimental                    [Page 152]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 152] RFC 4912 Abstract Syntax Notation X July 2007

       </optional>
       <group name="typeConstraints" type="asnx:TypeConstraints"/>
      </sequence>
     </type>
    </namedType>

</optional> <group name="typeConstraints" type="asnx:TypeConstraints"/> </sequence> </type> </namedType>

    <namedType name="TypeConstraints">
     <type>
      <sequenceOf minSize="1">
       <group name="namedConstraint" type="asnx:NamedConstraint"/>
      </sequenceOf>
     </type>
    </namedType>

<namedType name="TypeConstraints"> <type> <sequenceOf minSize="1"> <group name="namedConstraint" type="asnx:NamedConstraint"/> </sequenceOf> </type> </namedType>

    <namedType name="NamedConstraint">
     <type>
      <choice insertions="singular">
       <element name="component" type="asnx:GenericNamedConstraint"/>
       <element name="element" type="asnx:GenericNamedConstraint"/>
       <element name="attribute" type="asnx:GenericNamedConstraint"/>
       <element name="group" type="asnx:GenericNamedConstraint"/>
       <element name="member" type="asnx:GenericNamedConstraint"/>
       <element name="item" type="asnx:GenericNamedConstraint"/>
       <element name="simpleContent"
                type="asnx:GenericNamedConstraint"/>
      </choice>
     </type>
    </namedType>

<namedType name="NamedConstraint"> <type> <choice insertions="singular"> <element name="component" type="asnx:GenericNamedConstraint"/> <element name="element" type="asnx:GenericNamedConstraint"/> <element name="attribute" type="asnx:GenericNamedConstraint"/> <element name="group" type="asnx:GenericNamedConstraint"/> <element name="member" type="asnx:GenericNamedConstraint"/> <element name="item" type="asnx:GenericNamedConstraint"/> <element name="simpleContent" type="asnx:GenericNamedConstraint"/> </choice> </type> </namedType>

    <namedType name="GenericNamedConstraint">
     <type>
      <sequence insertions="hollow">
       <attribute name="name" type="asnx:QName"/>
       <optional>
        <attribute name="use" type="asnx:PresenceConstraint"/>
       </optional>
       <optional>
        <group name="constraint" type="asnx:Constraint"/>
       </optional>
      </sequence>
     </type>
    </namedType>

<namedType name="GenericNamedConstraint"> <type> <sequence insertions="hollow"> <attribute name="name" type="asnx:QName"/> <optional> <attribute name="use" type="asnx:PresenceConstraint"/> </optional> <optional> <group name="constraint" type="asnx:Constraint"/> </optional> </sequence> </type> </namedType>

    <namedType name="PresenceConstraint">
     <type>
      <enumerated>
       <enumeration name="present"/>
       <enumeration name="absent"/>

<namedType name="PresenceConstraint"> <type> <enumerated> <enumeration name="present"/> <enumeration name="absent"/>

Legg                          Experimental                    [Page 153]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 153] RFC 4912 Abstract Syntax Notation X July 2007

       <enumeration name="optional"/>
      </enumerated>
     </type>
    </namedType>

<enumeration name="optional"/> </enumerated> </type> </namedType>

    <namedType name="ObjectClass">
     <type>
      <choice insertions="singular">
       <attribute name="class" identifier="classRef" type="asnx:QName"/>
       <element name="class" type="asnx:ElementFormObjectClass"/>
      </choice>
     </type>
    </namedType>

<namedType name="ObjectClass"> <type> <choice insertions="singular"> <attribute name="class" identifier="classRef" type="asnx:QName"/> <element name="class" type="asnx:ElementFormObjectClass"/> </choice> </type> </namedType>

    <namedType name="DefinedObjectClass">
     <type>
      <constrained type="asnx:ObjectClass">
       <withComponents partial="true">
        <element name="class">
         <withComponents partial="true">
          <group name="definition">
           <withComponents partial="true">
            <group name="objectClassDefn" use="absent"/>
           </withComponents>
          </group>
         </withComponents>
        </element>
       </withComponents>
      </constrained>
     </type>
    </namedType>

<namedType name="DefinedObjectClass"> <type> <constrained type="asnx:ObjectClass"> <withComponents partial="true"> <element name="class"> <withComponents partial="true"> <group name="definition"> <withComponents partial="true"> <group name="objectClassDefn" use="absent"/> </withComponents> </group> </withComponents> </element> </withComponents> </constrained> </type> </namedType>

    <namedType name="ElementFormObjectClass">
     <type>
      <sequence insertions="hollow">
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <group name="definition">
        <type>
         <choice insertions="none">
          <group name="reference" type="asnx:Reference"/>
          <element name="expanded" type="asnx:ExpandedObjectClass"/>
          <group name="objectClassDefn" type="asnx:ObjectClassDefn"/>
         </choice>
        </type>
       </group>
      </sequence>

<namedType name="ElementFormObjectClass"> <type> <sequence insertions="hollow"> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <group name="definition"> <type> <choice insertions="none"> <group name="reference" type="asnx:Reference"/> <element name="expanded" type="asnx:ExpandedObjectClass"/> <group name="objectClassDefn" type="asnx:ObjectClassDefn"/> </choice> </type> </group> </sequence>

Legg                          Experimental                    [Page 154]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 154] RFC 4912 Abstract Syntax Notation X July 2007

     </type>
    </namedType>

</type> </namedType>

    <namedType name="ExpandedObjectClass">
     <type>
      <sequence>
       <optional>
        <attribute name="name" type="asnx:NCName"/>
       </optional>
       <optional>
        <element name="module" type="asnx:ReferencedModule"/>
       </optional>
       <group name="objectClass" type="asnx:ObjectClass"/>
      </sequence>
     </type>
    </namedType>

<namedType name="ExpandedObjectClass"> <type> <sequence> <optional> <attribute name="name" type="asnx:NCName"/> </optional> <optional> <element name="module" type="asnx:ReferencedModule"/> </optional> <group name="objectClass" type="asnx:ObjectClass"/> </sequence> </type> </namedType>

    <namedType name="ObjectClassDefn">
     <type>
      <sequenceOf minSize="1">
       <group name="fieldSpec" type="asnx:FieldSpec"/>
      </sequenceOf>
     </type>
    </namedType>

<namedType name="ObjectClassDefn"> <type> <sequenceOf minSize="1"> <group name="fieldSpec" type="asnx:FieldSpec"/> </sequenceOf> </type> </namedType>

    <namedType name="FieldSpec">
     <type>
      <choice insertions="singular">
       <element name="typeField" type="asnx:TypeField"/>
       <element name="valueField" type="asnx:ValueField"/>
       <element name="valueSetField" type="asnx:ValueSetField"/>
       <element name="objectField" type="asnx:ObjectField"/>
       <element name="objectSetField" type="asnx:ObjectSetField"/>
       <element name="optional" type="asnx:OptionalField"/>
      </choice>
     </type>
    </namedType>

<namedType name="FieldSpec"> <type> <choice insertions="singular"> <element name="typeField" type="asnx:TypeField"/> <element name="valueField" type="asnx:ValueField"/> <element name="valueSetField" type="asnx:ValueSetField"/> <element name="objectField" type="asnx:ObjectField"/> <element name="objectSetField" type="asnx:ObjectSetField"/> <element name="optional" type="asnx:OptionalField"/> </choice> </type> </namedType>

    <namedType name="OptionalField">
     <type>
      <constrained>
       <type>
        <sequence>
         <group name="field">
          <type>
           <choice insertions="singular">
            <element name="typeField" type="asnx:TypeField"/>
            <element name="valueField" type="asnx:ValueField"/>

<namedType name="OptionalField"> <type> <constrained> <type> <sequence> <group name="field"> <type> <choice insertions="singular"> <element name="typeField" type="asnx:TypeField"/> <element name="valueField" type="asnx:ValueField"/>

Legg                          Experimental                    [Page 155]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 155] RFC 4912 Abstract Syntax Notation X July 2007

            <element name="valueSetField" type="asnx:ValueSetField"/>
            <element name="objectField" type="asnx:ObjectField"/>
            <element name="objectSetField" type="asnx:ObjectSetField"/>
           </choice>
          </type>
         </group>
         <optional>
          <element name="default" type="asnx:Setting"/>
         </optional>
        </sequence>
       </type>
       <union>
        <withComponents partial="true">
         <group name="field">
          <withComponents>
           <element name="typeField" use="present"/>
          </withComponents>
         </group>
         <element name="default">
          <withComponents partial="true">
           <group name="value" use="absent"/>
           <group name="valueSet" use="absent"/>
           <group name="object" use="absent"/>
           <group name="objectSet" use="absent"/>
          </withComponents>
         </element>
        </withComponents>
        <withComponents partial="true">
         <group name="field">
          <withComponents>
           <element name="valueField" use="present"/>
          </withComponents>
         </group>
         <element name="default">
          <withComponents partial="true">
           <group name="type" use="absent"/>
           <group name="valueSet" use="absent"/>
           <group name="object" use="absent"/>
           <group name="objectSet" use="absent"/>
          </withComponents>
         </element>
        </withComponents>
        <withComponents partial="true">
         <group name="field">
          <withComponents>
           <element name="valueSetField" use="present"/>
          </withComponents>
         </group>

<element name="valueSetField" type="asnx:ValueSetField"/> <element name="objectField" type="asnx:ObjectField"/> <element name="objectSetField" type="asnx:ObjectSetField"/> </choice> </type> </group> <optional> <element name="default" type="asnx:Setting"/> </optional> </sequence> </type> <union> <withComponents partial="true"> <group name="field"> <withComponents> <element name="typeField" use="present"/> </withComponents> </group> <element name="default"> <withComponents partial="true"> <group name="value" use="absent"/> <group name="valueSet" use="absent"/> <group name="object" use="absent"/> <group name="objectSet" use="absent"/> </withComponents> </element> </withComponents> <withComponents partial="true"> <group name="field"> <withComponents> <element name="valueField" use="present"/> </withComponents> </group> <element name="default"> <withComponents partial="true"> <group name="type" use="absent"/> <group name="valueSet" use="absent"/> <group name="object" use="absent"/> <group name="objectSet" use="absent"/> </withComponents> </element> </withComponents> <withComponents partial="true"> <group name="field"> <withComponents> <element name="valueSetField" use="present"/> </withComponents> </group>

Legg                          Experimental                    [Page 156]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 156] RFC 4912 Abstract Syntax Notation X July 2007

         <element name="default">
          <withComponents partial="true">
           <group name="type" use="absent"/>
           <group name="value" use="absent"/>
           <group name="object" use="absent"/>
           <group name="objectSet" use="absent"/>
          </withComponents>
         </element>
        </withComponents>
        <withComponents partial="true">
         <group name="field">
          <withComponents>
           <element name="objectField" use="present"/>
          </withComponents>
         </group>
         <element name="default">
          <withComponents partial="true">
           <group name="type" use="absent"/>
           <group name="value" use="absent"/>
           <group name="valueSet" use="absent"/>
           <group name="objectSet" use="absent"/>
          </withComponents>
         </element>
        </withComponents>
        <withComponents partial="true">
         <group name="field">
          <withComponents>
           <element name="objectSetField" use="present"/>
          </withComponents>
         </group>
         <element name="default">
          <withComponents partial="true">
           <group name="type" use="absent"/>
           <group name="value" use="absent"/>
           <group name="valueSet" use="absent"/>
           <group name="object" use="absent"/>
          </withComponents>
         </element>
        </withComponents>
       </union>
      </constrained>
     </type>
    </namedType>

<element name="default"> <withComponents partial="true"> <group name="type" use="absent"/> <group name="value" use="absent"/> <group name="object" use="absent"/> <group name="objectSet" use="absent"/> </withComponents> </element> </withComponents> <withComponents partial="true"> <group name="field"> <withComponents> <element name="objectField" use="present"/> </withComponents> </group> <element name="default"> <withComponents partial="true"> <group name="type" use="absent"/> <group name="value" use="absent"/> <group name="valueSet" use="absent"/> <group name="objectSet" use="absent"/> </withComponents> </element> </withComponents> <withComponents partial="true"> <group name="field"> <withComponents> <element name="objectSetField" use="present"/> </withComponents> </group> <element name="default"> <withComponents partial="true"> <group name="type" use="absent"/> <group name="value" use="absent"/> <group name="valueSet" use="absent"/> <group name="object" use="absent"/> </withComponents> </element> </withComponents> </union> </constrained> </type> </namedType>

    <namedType name="TypeField">
     <type>
      <sequence>
       <optional>

<namedType name="TypeField"> <type> <sequence> <optional>

Legg                          Experimental                    [Page 157]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 157] RFC 4912 Abstract Syntax Notation X July 2007

        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <attribute name="name" type="asnx:TypeFieldReference"/>
      </sequence>
     </type>
    </namedType>

<element name="annotation" type="asnx:Annotation"/> </optional> <attribute name="name" type="asnx:TypeFieldReference"/> </sequence> </type> </namedType>

    <namedType name="TypeFieldReference" type="asnx:TypeReference"/>

<namedType name="TypeFieldReference" type="asnx:TypeReference"/>

    <namedType name="ValueField">
     <type>
      <constrained>
       <type>
        <sequence>
         <optional>
          <element name="annotation" type="asnx:Annotation"/>
         </optional>
         <attribute name="name" type="asnx:ValueFieldReference"/>
         <optional>
          <attribute name="unique" type="asnx:BOOLEAN"/>
         </optional>
         <group name="governor">
          <type>
           <choice insertions="singular">
            <group name="type" type="asnx:Type"/>
            <element name="typeFromField" type="asnx:FieldName"/>
           </choice>
          </type>
         </group>
        </sequence>
       </type>
       <union>
        <withComponents partial="true">
         <attribute name="unique" use="absent"/>
        </withComponents>
        <withComponents partial="true">
         <group name="governor">
          <withComponents partial="true">
           <element name="typeFromField" use="absent"/>
          </withComponents>
         </group>
        </withComponents>
       </union>
      </constrained>
     </type>
    </namedType>

<namedType name="ValueField"> <type> <constrained> <type> <sequence> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <attribute name="name" type="asnx:ValueFieldReference"/> <optional> <attribute name="unique" type="asnx:BOOLEAN"/> </optional> <group name="governor"> <type> <choice insertions="singular"> <group name="type" type="asnx:Type"/> <element name="typeFromField" type="asnx:FieldName"/> </choice> </type> </group> </sequence> </type> <union> <withComponents partial="true"> <attribute name="unique" use="absent"/> </withComponents> <withComponents partial="true"> <group name="governor"> <withComponents partial="true"> <element name="typeFromField" use="absent"/> </withComponents> </group> </withComponents> </union> </constrained> </type> </namedType>

    <namedType name="ValueFieldReference" type="asnx:ValueReference"/>

<namedType name="ValueFieldReference" type="asnx:ValueReference"/>

Legg                          Experimental                    [Page 158]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 158] RFC 4912 Abstract Syntax Notation X July 2007

    <namedType name="ValueSetField">
     <type>
      <sequence>
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <attribute name="name" type="asnx:ValueSetFieldReference"/>
       <group name="governor">
        <type>
         <choice insertions="singular">
          <group name="type" type="asnx:Type"/>
          <element name="typeFromField" type="asnx:FieldName"/>
         </choice>
        </type>
       </group>
      </sequence>
     </type>
    </namedType>

<namedType name="ValueSetField"> <type> <sequence> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <attribute name="name" type="asnx:ValueSetFieldReference"/> <group name="governor"> <type> <choice insertions="singular"> <group name="type" type="asnx:Type"/> <element name="typeFromField" type="asnx:FieldName"/> </choice> </type> </group> </sequence> </type> </namedType>

    <namedType name="ValueSetFieldReference" type="asnx:TypeReference"/>

<namedType name="ValueSetFieldReference" type="asnx:TypeReference"/>

    <namedType name="ObjectField">
     <type>
      <sequence>
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <attribute name="name" type="asnx:ObjectFieldReference"/>
       <group name="objectClass" type="asnx:DefinedObjectClass"/>
      </sequence>
     </type>
    </namedType>

<namedType name="ObjectField"> <type> <sequence> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <attribute name="name" type="asnx:ObjectFieldReference"/> <group name="objectClass" type="asnx:DefinedObjectClass"/> </sequence> </type> </namedType>

    <namedType name="ObjectFieldReference" type="asnx:ObjectReference"/>

<namedType name="ObjectFieldReference" type="asnx:ObjectReference"/>

    <namedType name="ObjectSetField">
     <type>
      <sequence>
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <attribute name="name" type="asnx:ObjectSetFieldReference"/>
       <group name="objectClass" type="asnx:DefinedObjectClass"/>
      </sequence>
     </type>
    </namedType>

<namedType name="ObjectSetField"> <type> <sequence> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <attribute name="name" type="asnx:ObjectSetFieldReference"/> <group name="objectClass" type="asnx:DefinedObjectClass"/> </sequence> </type> </namedType>

    <namedType name="ObjectSetFieldReference"

<namedType name="ObjectSetFieldReference"

Legg                          Experimental                    [Page 159]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 159] RFC 4912 Abstract Syntax Notation X July 2007

               type="asnx:ObjectSetReference"/>

type="asnx:ObjectSetReference"/>

    <namedType name="Object">
     <type>
      <choice insertions="none">
       <attribute name="object" identifier="objectRef"
                  type="asnx:QName"/>
       <element name="object" type="asnx:ElementFormObject"/>
      </choice>
     </type>
    </namedType>

<namedType name="Object"> <type> <choice insertions="none"> <attribute name="object" identifier="objectRef" type="asnx:QName"/> <element name="object" type="asnx:ElementFormObject"/> </choice> </type> </namedType>

    <namedType name="ElementFormObject">
     <type>
      <sequence insertions="hollow">
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <group name="definition">
        <type>
         <choice insertions="singular">
          <group name="reference" type="asnx:Reference"/>
          <element name="expanded" type="asnx:ExpandedObject"/>
          <element name="fromObjects"
                   type="asnx:InformationFromObjects"/>
          <group name="fields" type="asnx:ObjectDefn"/>
         </choice>
        </type>
       </group>
      </sequence>
     </type>
    </namedType>

<namedType name="ElementFormObject"> <type> <sequence insertions="hollow"> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <group name="definition"> <type> <choice insertions="singular"> <group name="reference" type="asnx:Reference"/> <element name="expanded" type="asnx:ExpandedObject"/> <element name="fromObjects" type="asnx:InformationFromObjects"/> <group name="fields" type="asnx:ObjectDefn"/> </choice> </type> </group> </sequence> </type> </namedType>

    <namedType name="ExpandedObject">
     <type>
      <sequence>
       <optional>
        <attribute name="name" type="asnx:NCName"/>
       </optional>
       <optional>
        <element name="module" type="asnx:ReferencedModule"/>
       </optional>
       <group name="object" type="asnx:Object"/>
      </sequence>
     </type>
    </namedType>

<namedType name="ExpandedObject"> <type> <sequence> <optional> <attribute name="name" type="asnx:NCName"/> </optional> <optional> <element name="module" type="asnx:ReferencedModule"/> </optional> <group name="object" type="asnx:Object"/> </sequence> </type> </namedType>

    <namedType name="ObjectDefn">

<namedType name="ObjectDefn">

Legg                          Experimental                    [Page 160]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 160] RFC 4912 Abstract Syntax Notation X July 2007

     <type>
      <sequenceOf>
       <element name="field" type="asnx:FieldSetting"/>
      </sequenceOf>
     </type>
    </namedType>

<type> <sequenceOf> <element name="field" type="asnx:FieldSetting"/> </sequenceOf> </type> </namedType>

    <namedType name="FieldSetting">
     <type>
      <sequence insertions="hollow">
       <attribute name="name" type="asnx:NCName"/>
       <group name="setting" type="asnx:Setting"/>
      </sequence>
     </type>
    </namedType>

<namedType name="FieldSetting"> <type> <sequence insertions="hollow"> <attribute name="name" type="asnx:NCName"/> <group name="setting" type="asnx:Setting"/> </sequence> </type> </namedType>

    <namedType name="Setting">
     <type>
      <choice>
       <group name="type" type="asnx:Type"/>
       <group name="value" type="asnx:Value"/>
       <group name="valueSet" type="asnx:ValueSet"/>
       <group name="object" type="asnx:Object"/>
       <group name="objectSet" type="asnx:ObjectSet"/>
      </choice>
     </type>
    </namedType>

<namedType name="Setting"> <type> <choice> <group name="type" type="asnx:Type"/> <group name="value" type="asnx:Value"/> <group name="valueSet" type="asnx:ValueSet"/> <group name="object" type="asnx:Object"/> <group name="objectSet" type="asnx:ObjectSet"/> </choice> </type> </namedType>

    <namedType name="ObjectSet">
     <type>
      <choice insertions="none">
       <attribute name="objectSet" identifier="objectSetRef"
                  type="asnx:QName"/>
       <element name="objectSet" type="asnx:ElementFormObjectSet"/>
      </choice>
     </type>
    </namedType>

<namedType name="ObjectSet"> <type> <choice insertions="none"> <attribute name="objectSet" identifier="objectSetRef" type="asnx:QName"/> <element name="objectSet" type="asnx:ElementFormObjectSet"/> </choice> </type> </namedType>

    <namedType name="ElementFormObjectSet">
     <type>
      <sequence insertions="hollow">
       <optional>
        <element name="annotation" type="asnx:Annotation"/>
       </optional>
       <group name="definition">
        <type>
         <choice insertions="none">
          <group name="reference" type="asnx:Reference"/>

<namedType name="ElementFormObjectSet"> <type> <sequence insertions="hollow"> <optional> <element name="annotation" type="asnx:Annotation"/> </optional> <group name="definition"> <type> <choice insertions="none"> <group name="reference" type="asnx:Reference"/>

Legg                          Experimental                    [Page 161]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 161] RFC 4912 Abstract Syntax Notation X July 2007

          <element name="expanded" type="asnx:ExpandedObjectSet"/>
          <group name="objectSetSpec" type="asnx:ObjectSetSpec"/>
          <element name="fromObjects"
                   type="asnx:InformationFromObjects"/>
         </choice>
        </type>
       </group>
      </sequence>
     </type>
    </namedType>

<element name="expanded" type="asnx:ExpandedObjectSet"/> <group name="objectSetSpec" type="asnx:ObjectSetSpec"/> <element name="fromObjects" type="asnx:InformationFromObjects"/> </choice> </type> </group> </sequence> </type> </namedType>

    <namedType name="ExpandedObjectSet">
     <type>
      <sequence>
       <optional>
        <attribute name="name" type="asnx:NCName"/>
       </optional>
       <optional>
        <element name="module" type="asnx:ReferencedModule"/>
       </optional>
       <group name="objectSet" type="asnx:ObjectSet"/>
      </sequence>
     </type>
    </namedType>

<namedType name="ExpandedObjectSet"> <type> <sequence> <optional> <attribute name="name" type="asnx:NCName"/> </optional> <optional> <element name="module" type="asnx:ReferencedModule"/> </optional> <group name="objectSet" type="asnx:ObjectSet"/> </sequence> </type> </namedType>

    <namedType name="ObjectSetSpec">
     <type>
      <constrained>
       <type>
        <sequence insertions="hollow">
         <optional>
          <group name="root" type="asnx:ObjectElementSetSpec"/>
         </optional>
         <optional>
          <element name="extension">
           <type>
            <sequence insertions="hollow">
             <optional>
              <group name="additions" type="asnx:ObjectElementSetSpec"/>
             </optional>
            </sequence>
           </type>
          </element>
         </optional>
        </sequence>
       </type>
       <union>
        <withComponents partial="true">

<namedType name="ObjectSetSpec"> <type> <constrained> <type> <sequence insertions="hollow"> <optional> <group name="root" type="asnx:ObjectElementSetSpec"/> </optional> <optional> <element name="extension"> <type> <sequence insertions="hollow"> <optional> <group name="additions" type="asnx:ObjectElementSetSpec"/> </optional> </sequence> </type> </element> </optional> </sequence> </type> <union> <withComponents partial="true">

Legg                          Experimental                    [Page 162]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 162] RFC 4912 Abstract Syntax Notation X July 2007

         <group name="root" use="present"/>
        </withComponents>
        <withComponents partial="true">
         <element name="extension" use="present"/>
        </withComponents>
       </union>
      </constrained>
     </type>
    </namedType>

<group name="root" use="present"/> </withComponents> <withComponents partial="true"> <element name="extension" use="present"/> </withComponents> </union> </constrained> </type> </namedType>

    <namedType name="ObjectElementSetSpec">
     <type>
      <constrained type="asnx:ElementSetSpec">
       <withComponents partial="true">
        <element name="literalValue" use="absent"/>
        <element name="value" use="absent"/>
        <element name="includes" use="absent"/>
        <element name="range" use="absent"/>
        <element name="size" use="absent"/>
        <element name="typeConstraint" use="absent"/>
        <element name="from" use="absent"/>
        <element name="withComponent" use="absent"/>
        <element name="withComponents" use="absent"/>
        <element name="pattern" use="absent"/>
        <element name="union">
         <withComponent>
          <includes type="asnx:ObjectElementSetSpec"/>
         </withComponent>
        </element>
        <element name="intersection">
         <withComponent>
          <includes type="asnx:ObjectElementSetSpec"/>
         </withComponent>
        </element>
        <element name="all">
         <withComponents partial="true">
          <group name="elements">
           <includes type="asnx:ObjectElementSetSpec"/>
          </group>
          <element name="except">
           <includes type="asnx:ObjectElementSetSpec"/>
          </element>
         </withComponents>
        </element>
       </withComponents>
      </constrained>
     </type>
    </namedType>

<namedType name="ObjectElementSetSpec"> <type> <constrained type="asnx:ElementSetSpec"> <withComponents partial="true"> <element name="literalValue" use="absent"/> <element name="value" use="absent"/> <element name="includes" use="absent"/> <element name="range" use="absent"/> <element name="size" use="absent"/> <element name="typeConstraint" use="absent"/> <element name="from" use="absent"/> <element name="withComponent" use="absent"/> <element name="withComponents" use="absent"/> <element name="pattern" use="absent"/> <element name="union"> <withComponent> <includes type="asnx:ObjectElementSetSpec"/> </withComponent> </element> <element name="intersection"> <withComponent> <includes type="asnx:ObjectElementSetSpec"/> </withComponent> </element> <element name="all"> <withComponents partial="true"> <group name="elements"> <includes type="asnx:ObjectElementSetSpec"/> </group> <element name="except"> <includes type="asnx:ObjectElementSetSpec"/> </element> </withComponents> </element> </withComponents> </constrained> </type> </namedType>

Legg                          Experimental                    [Page 163]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 163] RFC 4912 Abstract Syntax Notation X July 2007

    <namedType name="EncodingControlSections">
     <type>
      <sequenceOf minSize="1">
       <group name="section" type="asnx:EncodingControlSection"/>
      </sequenceOf>
     </type>
    </namedType>

<namedType name="EncodingControlSections"> <type> <sequenceOf minSize="1"> <group name="section" type="asnx:EncodingControlSection"/> </sequenceOf> </type> </namedType>

    <namedType name="EncodingControlSection">
     <type>
      <choice insertions="singular">
       <element name="GSER" identifier="gser"
                type="asnx:GSER-EncodingInstructionAssignmentList"/>
       <element name="XER" identifier="xer"
                type="asnx:XER-EncodingInstructionAssignmentList"/>
       <!-- plus encoding control sections
            for other encoding rules in the future -->
      </choice>
     </type>
    </namedType>

<namedType name="EncodingControlSection"> <type> <choice insertions="singular"> <element name="GSER" identifier="gser" type="asnx:GSER-EncodingInstructionAssignmentList"/> <element name="XER" identifier="xer" type="asnx:XER-EncodingInstructionAssignmentList"/> <!-- plus encoding control sections for other encoding rules in the future --> </choice> </type> </namedType>

    <element name="module" type="asnx:ModuleDefinition"/>

<element name="module" type="asnx:ModuleDefinition"/>

    <attribute name="literal" type="asnx:BOOLEAN"/>

<attribute name="literal" type="asnx:BOOLEAN"/>

   </asnx:module>

</asnx:module>

Author's Address

Author's Address

   Dr. Steven Legg
   eB2Bcom
   Suite 3, Woodhouse Corporate Centre
   935 Station Street
   Box Hill North, Victoria 3129
   AUSTRALIA

Dr. Steven Legg eB2Bcom Suite 3, Woodhouse Corporate Centre 935 Station Street Box Hill North, Victoria 3129 AUSTRALIA

   Phone: +61 3 9896 7830
   Fax:   +61 3 9896 7801
   EMail: steven.legg@eb2bcom.com

Phone: +61 3 9896 7830 Fax: +61 3 9896 7801 EMail: steven.legg@eb2bcom.com

Legg                          Experimental                    [Page 164]

RFC 4912               Abstract Syntax Notation X              July 2007

Legg Experimental [Page 164] RFC 4912 Abstract Syntax Notation X July 2007

Full Copyright Statement

Full Copyright Statement

   Copyright (C) The IETF Trust (2007).

Copyright (C) The IETF Trust (2007).

   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 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, THE IETF TRUST 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.

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, THE IETF TRUST 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

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 rights
   might 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.

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 rights might 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.

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.

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.

Acknowledgement

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.

Funding for the RFC Editor function is currently provided by the Internet Society.

Legg                          Experimental                    [Page 165]

Legg Experimental [Page 165]

一覧

 RFC 1〜100  RFC 1401〜1500  RFC 2801〜2900  RFC 4201〜4300 
 RFC 101〜200  RFC 1501〜1600  RFC 2901〜3000  RFC 4301〜4400 
 RFC 201〜300  RFC 1601〜1700  RFC 3001〜3100  RFC 4401〜4500 
 RFC 301〜400  RFC 1701〜1800  RFC 3101〜3200  RFC 4501〜4600 
 RFC 401〜500  RFC 1801〜1900  RFC 3201〜3300  RFC 4601〜4700 
 RFC 501〜600  RFC 1901〜2000  RFC 3301〜3400  RFC 4701〜4800 
 RFC 601〜700  RFC 2001〜2100  RFC 3401〜3500  RFC 4801〜4900 
 RFC 701〜800  RFC 2101〜2200  RFC 3501〜3600  RFC 4901〜5000 
 RFC 801〜900  RFC 2201〜2300  RFC 3601〜3700  RFC 5001〜5100 
 RFC 901〜1000  RFC 2301〜2400  RFC 3701〜3800  RFC 5101〜5200 
 RFC 1001〜1100  RFC 2401〜2500  RFC 3801〜3900  RFC 5201〜5300 
 RFC 1101〜1200  RFC 2501〜2600  RFC 3901〜4000  RFC 5301〜5400 
 RFC 1201〜1300  RFC 2601〜2700  RFC 4001〜4100  RFC 5401〜5500 
 RFC 1301〜1400  RFC 2701〜2800  RFC 4101〜4200 

スポンサーリンク

Google ChromeでHTTPリクエストヘッダーのAccept-Languageを変更する方法

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る