ISO/IEC 14651:2001
(Main)Information technology - International string ordering and comparison - Method for comparing character strings and description of the common template tailorable ordering
Information technology - International string ordering and comparison - Method for comparing character strings and description of the common template tailorable ordering
Technologies de l'information — Classement international et comparaison de chaînes de caractères — Méthode de comparaison de chaînes de caractères et description du modèle commun et adaptable d'ordre de classement
General Information
Relations
Frequently Asked Questions
ISO/IEC 14651:2001 is a standard published by the International Organization for Standardization (ISO). Its full title is "Information technology - International string ordering and comparison - Method for comparing character strings and description of the common template tailorable ordering". This standard covers: Information technology - International string ordering and comparison - Method for comparing character strings and description of the common template tailorable ordering
Information technology - International string ordering and comparison - Method for comparing character strings and description of the common template tailorable ordering
ISO/IEC 14651:2001 is classified under the following ICS (International Classification for Standards) categories: 35.060 - Languages used in information technology. The ICS classification helps identify the subject area and facilitates finding related standards.
ISO/IEC 14651:2001 has the following relationships with other standards: It is inter standard links to ISO 2812-1:2007, ISO/IEC 14651:2001/Amd 1:2003, ISO/IEC 14651:2001/Amd 3:2006, ISO/IEC 14651:2001/Amd 2:2005, ISO/IEC 14651:2007; is excused to ISO/IEC 14651:2001/Amd 1:2003, ISO/IEC 14651:2001/Amd 2:2005, ISO/IEC 14651:2001/Amd 3:2006. Understanding these relationships helps ensure you are using the most current and applicable version of the standard.
You can purchase ISO/IEC 14651:2001 directly from iTeh Standards. The document is available in PDF format and is delivered instantly after payment. Add the standard to your cart and complete the secure checkout process. iTeh Standards is an authorized distributor of ISO standards.
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 14651
First edition
2001-02-15
Information technology — International
string ordering and comparison — Method
for comparing character strings and
description of the common template
tailorable ordering
Technologies de l'information — Classement international et comparaison
de chaînes de caractères — Méthode de comparaison de chaînes de
caractères et description du modèle commun d'ordre de classement
Reference number
©
ISO/IEC 2001
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but shall not
be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In downloading this
file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat accepts no liability in this
area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation parameters
were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In the unlikely event
that a problem relating to it is found, please inform the Central Secretariat at the address given below.
This CD-ROM contains the publication ISO/IEC 14651 in portable document format (PDF), which can be viewed
using Adobe® Acrobat® Reader, and the associated common template table
...
INTERNATIONAL ISO/IEC
STANDARD 14651
First edition
2001-02-15
Information technology — International
string ordering and comparison — Method
for comparing character strings and
description of the common template
tailorable ordering
Technologies de l'information — Classement international et comparaison
de chaînes de caractères — Méthode de comparaison de chaînes de
caractères et description du modèle commun d'ordre de classement
Reference number
©
ISO/IEC 2001
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but shall not
be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In downloading this
file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat accepts no liability in this
area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation parameters
were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In the unlikely event
that a problem relating to it is found, please inform the Central Secretariat at the address given below.
© ISO/IEC 2001
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means, electronic
or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or ISO's member body
in the country of the requester.
ISO copyright office
Case postale 56 � CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.ch
Web www.iso.ch
Printed in Switzerland
ii © ISO/IEC 2001 – All rights reserved
Contents
Foreword .iv
Introduction.v
1. Scope . 1
2. Conformance. 2
3. Normative references. 2
4. Terms and definitions . 3
5. Symbols and abbreviations. 4
6. String comparison. 4
6.1. Preparation of character strings prior to comparison . 4
6.2. Key building and comparison. 5
6.2.1. Preliminary considerations . 5
6.2.2. Reference ordering key formation . 6
6.2.3. Reference comparison method for ordering character strings . 7
6.3. Common Template Table: formation and interpretation. 8
6.3.1. BNF syntax rules for the Common Template Table in Annex A . 9
6.3.2. Well-formedness conditions . 12
6.3.3. Interpretation of tailored tables.13
6.3.4. Evaluation of weight tables.14
6.3.5. Conditions for considering specific table equivalences. 15
6.3.6. Conditions for results to be considered equivalent . 15
6.4. Declaration of a delta. 16
6.5. Name of the Common Template Table and name declaration. 17
Annex A (normative) Common Template Table . 18
Annex B (informative) Example tailoring deltas. 19
B.1. Example 1 – Minimal tailoring. 19
B.2. Example 2 – Reversing the order of lowercase and uppercase letters. 19
B.3. Example 3 – Canadian delta and benchmark. 19
B.4. Example 4 – Danish delta and benchmark. 22
Annex C (informative) Preparation . 25
C.1. General considerations . 25
C.2. Thai string ordering – a case involving preparation required to get the proper ordering . 25
C.2.1. Thai Ordering Principle. 25
C.2.2 Algorithmic Aspect. 27
C.3. Handling of numeral substrings in collation. 29
C.3.1. Handling of ‘ordinary’ numerals for natural numbers. 29
C.3.2. Handling of positional numerals in other scripts. 32
C.3.3. Handling of other non-pure positional system numerals or non-positional system numerals
(e.g. Roman numerals). 32
C.3.4. Handling of numerals for whole numbers. 32
C.3.5. Handling of positive positional numerals with fractional parts. 34
C.3.6. Handling of positive positional numerals with fraction parts and exponent parts . 35
C.3.7. Handling of date and time of day indications. 35
C.3.8. Making numbers less significant than letters. 37
C.3.9. Maintaining determinacy. 37
Annex D (informative) Tutorial on solutions brought by this standard to problems of
lexical ordering. 38
D.1. Problems. 38
D.2. Solution . 39
D.3. Tailoring . 41
Bibliography. 42
© ISO/IEC 2001 -- All rights reserved iii
Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are
members of ISO or IEC participate in the development of International Standards through technical
committees established by the respective organization to deal with particular fields of technical activity.
ISO and IEC technical committees collaborate in fields of mutual interest. Other international
organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the
work.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives,
Part 3.
In the field of information technology, ISO and IEC have established a joint technical committee,
ISO/IEC JTC 1. Draft International Standards adopted by the joint technical committee are circulated
to national bodies for voting. Publication as an International Standard requires approval by at least
75 % of the national bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this International Standard may be
the subject of patent rights. ISO and IEC shall not be held responsible for identifying any or all such
patent rights.
International Standard ISO/IEC 14651 was prepared by Joint Technical Committee ISO/IEC JTC 1,
Information technology, Subcommittee SC 22, Programming languages, their environments and
system software interfaces.
Annex A forms a normative part of this International Standard. Annexes B, C and D are for information
only.
vi © ISO/IEC 2001 – All rights reserved
Introduction
This International Standard provides a method, applicable around the world, for ordering text data,
and provides a Common Template Table which, when tailored, can meet a given language’s ordering
requirements while retaining reasonable ordering for other scripts.
The Common Template Table requires some tailoring in different local environments. Conformance
to this International Standard requires that all deviations from the Template, called "deltas", be declared
to document resultant discrepancies.
This International Standard describes a method to order text data independently of context.
The Draft Technical Report ISO/IEC DTR 14652 (under development) has specifications for
ordering that informatively complements the specifications in this International Standard, and where
additional information may be sought on ordering keywords defined in this International Standard.
© ISO/IEC 2001 -- All rights reserved v
INTERNATIONAL STANDARD ISO/IEC 14651:2001(E)
Information technology — International string ordering and
comparison — Method for comparing character strings and
description of the common template tailorable ordering
1. Scope
This International Standard defines:
• A reference comparison method. This method is applicable to two character strings to
determine their relative order. The method can be applied to strings containing characters
from the full repertoire of ISO/IEC 10646-1. This method is also applicable to subsets of that
repertoire, such as those of the different ISO/IEC 8-bit standard character sets, or any other
character set, standardised or not, to produce ordering results valid (after tailoring) for a given
set of languages for each script. This method uses collation tables derived either from the
Common Template Table defined in this International Standard or from one of its tailorings.
• A reference format. The format is described using the Backus-Naur Form (BNF). This format
is used to describe the Common Template Table. The format is used normatively within this
International Standard.
• A Common Template Table. A given tailoring of the Common Template Table is used by the
reference comparison method. The Common Template Table describes an order for all
characters encoded in the first edition of ISO/IEC 10646-1 up to Amendment 7. It allows for a
specification of a fully deterministic ordering. This table enables the specification of a string
ordering adapted to local ordering rules, without requiring an implementer to have knowledge
of all the different scripts already encoded in the UCS.
NOTE 1: This Common Template Table is to be modified to suit the needs of a local environment. The main
benefit, worldwide, is that for other scripts, often no modification may be required and that the order
will remain as consistent as possible and predictable from an international point of view.
NOTE 2: The character repertoire used in this International Standard is equivalent to that of the Unicode
Standard version 2.1.
• A reference name. The reference name refers to this particular version of the Common
Template Table, for use as a reference when tailoring. In particular, this name implies that the
table is linked to a particular stage of development of the ISO/IEC 10646 Universal multiple-
octet coded character set.
• Requirements for a declaration of the differences (delta) between the collation table and the
Common Template Table.
This International Standard does not mandate:
• A specific comparison method; any equivalent method giving the same results is acceptable.
• A specific format for describing or tailoring tables in a given implementation.
• Specific symbols to be used by implementations except for the name of the Common
Template Table.
• Any specific user interface for choosing options.
• Any specific internal format for intermediate keys used when comparing, nor for the table
used. The use of numeric keys is not mandated either.
© ISO/IEC 2001 – All rights reserved 1
• A context-dependent ordering.
• Any particular preparation of character strings prior to comparison.
NOTE 1: It is normally necessary to do preparation of character strings prior to comparison even if it is not
prescribed by this International standard (see informative Annex C).
NOTE 2: Although no user interface is required to choose options or to specify tailoring of the Common
Template Table, conformance requires always declaring the applicable delta, a declaration of
differences with this table. It is recommended that processes present available tailoring options to
users.
2. Conformance
A process is conformant to this International Standard if it meets the requirements prescribed in
subclauses 6.2 to 6.5.
A declaration of conformity to this International Standard shall be accompanied by a statement,
either directly or by reference, of the following:
• The number of levels that the process supports; this number shall be at least three.
• Whether the process supports the forward,position processing parameter.
• Whether the process supports the backward processing parameter and at which level.
• The tailoring delta described in clause 6.4 and how many levels are defined in the delta.
It is the responsibility of implementers to show how their delta declaration is related to the table
syntax described in 6.3, and how the comparison method they use, if different from the one mentioned in
clause 6, can be considered as giving the same results as those prescribed by the method specified in
clause 6.
3. Normative references
The following normative documents contain provisions which, through reference in this text,
constitute provisions of this International Standard. For dated references, subsequent amendments to, or
revisions of, any of these publications do not apply. However, parties to agreements based on this
International Standard are encouraged to investigate the possibility of applying the most recent editions
of the normative documents indicated below. For undated references, the latest edition of the normative
document referred to applies. Members of ISO and IEC maintain registers of currently valid International
Standards.
• Information technology – Universal Multiple-Octet Coded Character
ISO/IEC 10646-1:1993
Set (UCS) – Part 1: Architecture and Basic Multilingual Plane
.
• ISO/IEC 10646-1:1993/Amd.1:1996 Information technology – Universal Multiple-Octet Coded
Character Set (UCS) – Part 1: Architecture and Basic Multilingual Plane Amendment 1:
Transformation Format for 16 planes of group 00 (UTF-16).
• Information technology – Universal Multiple-Octet Coded
ISO/IEC 10646-1:1993/Amd.2:1996
Character Set (UCS) – Part 1: Architecture and Basic Multilingual Plane Amendment 2: UCS
Transformation Format 8 (UTF-8)
.
• Information technology – Universal Multiple-Octet Coded
ISO/IEC 10646-1:1993/Amd.4:1996
Character Set (UCS) – Part 1: Architecture and Basic Multilingual Plane Amendment 4
.
2 © ISO/IEC 2001 -- All rights reserved
• ISO/IEC 10646-1:1993/Amd.5:1998 Information technology – Universal Multiple-Octet Coded
Character Set (UCS) – Part 1: Architecture and Basic Multilingual Plane Amendment 5:
Hangul syllables.
• ISO/IEC 10646-1:1993/Amd.6:1997 Information technology – Universal Multiple-Octet Coded
Character Set (UCS) – Part 1: Architecture and Basic Multilingual Plane Amendment 6:
Tibetan.
• ISO/IEC 10646-1:1993/Amd.7:1997 Information technology – Universal Multiple-Octet Coded
Character Set (UCS) – Part 1: Architecture and Basic Multilingual Plane Amendment 7: 33
additional characters.
• ISO/IEC 10646-1:1993/Amd.9:1997 Information technology – Universal Multiple-Octet Coded
Character Set (UCS) – Part 1: Architecture and Basic Multilingual Plane Amendment 9:
Identifiers for characters.
• ISO/IEC 10646-1:1993/Amd.18:1999 Information technology – Universal Multiple-Octet
Coded Character Set (UCS) – Part 1: Architecture and Basic Multilingual Plane Amendment
18: Symbols and other characters.
NOTE: Only the EURO SIGN and the OBJECT REPLACEMENT CHARACTER from Amendment 18 are
accounted for in Annex A of this International Standard at this time.
4. Terms and definitions
For the purposes of this International Standard, the following terms and definitions apply:
4.1 character string a sequence of characters
4.2 collation equivalent to the term “ordering”
4.3 collating symbol a symbol used to specify weights assigned to a collating element
4.4 collation (weighting) table
a mapping from collating elements to weighting elements
4.5 collating element a sequence of one or more characters that are considered a single element
for ordering
4.6 delta differences from a given collation table. The given collation table, together
with a given delta, forms a new collation table. Unless otherwise specified in
this International Standard, the term "delta" always refers to differences from
the Common Template Table as defined in this International Standard
4.7 (collation) level the sequence number for a subkey
4.8 ordering a process by which two strings are determined to be in exactly one of the
relationships of less than, greater than, or equal to one another
4.9 ordering key a sequence of subkeys used to determine an order
4.10 (collation) preparation
a process in which given character strings are mapped to (other) character
strings logically before the calculation of the ordering key for each of the
strings
4.11 reference comparison method
the method for establishing an order between two ordering keys (see clause
6)
© ISO/IEC 2001 -- All rights reserved 3
4.12 subkey a sequence of weights computed for a character string for a particular level.
4.13 symbol collating element
4.14 (collation) weight a positive integer value, used in subkeys, reflecting the relative order of
collating elements
4.15 weighting element
a list of a given number of weights sequentially ordered by level
5. Symbols and abbreviations
Following ISO/IEC 10646-1:1993, Amendment 9, characters are referenced as UXXXX where X
stands for any hexadecimal digit (using upper case letters where applicable) and refers to the value of
that character in ISO/IEC 10646-1. This convention is used throughout this International Standard.
In the Common Template Table arbitrary symbols representing weights are used according to the
BNF notation description in clause 6.3.1.
6. String comparison
6.1. Preparation of character strings prior to comparison
It may be necessary to transform character strings before the reference comparison method is
applied to them (see annex C for an example of such preparation). Although not part of the scope of this
International Standard, preparation may be an important part of the ordering process. See Annex C for
some examples of preparation.
Where applicable, it can be an important part of the preparation phase to map characters from a
non-UCS encoding scheme to the UCS for input to the comparison method. This task can amongst other
things encompass the correct handling of escape sequences in the originating encoding scheme, the
mapping of characters without an allocated UCS codepoint to an application-defined codepoint in the
private zone area and change the sequence of characters in strings that are not stored in logical order.
For example, for visual order Arabic code sets, input strings must be put into logical order; and for some
bibliographic code sets, strings with combining accents stored before their respective base character
require that the combining accents be put after their base character. The resulting string sequence may
then have to be remapped into its original encoding scheme.
NOTE 1: The Common Template Table is designed so that combining sequences and corresponding single
characters (precomposed) will have precisely the same ordering. To avoid inadvertently breaking
this invariant (and in the process breaking Unicode conformance), tailoring should reorder
combining sequences when corresponding characters are reordered. For example, if Ä is reordered
after Z, then the sequence + should also be reordered. To avoid
exposing encoding differences that may be invisible to the end-user, it is recommended that strings
be normalized according to Unicode normalization to achieve this equivalence – see Bibliography,
Unicode Technical Report no. 15.
NOTE 2: Escape sequences and control characters constitute very sensitive data to interpret, and it is highly
recommended that preparation should filter out or transform these sequences.
NOTE 3: Since the reference method is a logical statement for the mechanism for string comparison, it does
not preclude an implementation from using a non-UCS character encoding only, as long as it
produces results as if it were using the reference comparison method.
4 © ISO/IEC 2001 -- All rights reserved
6.2. Key building and comparison
6.2.1. Preliminary considerations
6.2.1.1. Assumptions
The collation table is a mapping from collating elements to weighting elements. In each weighting
element, four levels are described in the Common Template Table. This number of levels can be
extended or reduced, but not below 3 levels, in tailoring.
NOTE: In the Common Template Table, levels generally have the following characteristics, although the
purpose of each level is not absolute:
Level 1: This level generally corresponds to the set of common letters of the alphabets for that script,
if the script is alphabetic, and to the set of common characters of the script if the script is ideographic
or syllabic.
Level 2: This level generally corresponds to diacritical marks affecting each basic character of the
script. For some languages, letters with diacritics are always considered an integral part of the basic
letters of the alphabet, and are not considered at this second level, but rather at the first. For
example, in Spanish, N TILDE is considered a basic letter of the Latin script. Therefore, tailoring for
Spanish will change the definition of N TILDE from "the weight of an N in the first level and the
weight of a TILDE in the second level" to "the weight of an N TILDE (placed after N and before O) in
the first level, and indication of the absence of a diacritic in the second level". For some characters,
variant letter shapes are also dealt with on level 2. An example of this is ß, the LATIN LETTER
SHARP S, which is treated as equivalent to ss on level 1, but traditionally distinguished from it on
level 2.
Level 3: This level generally corresponds to case distinctions or to distinctions based on variant
letter shapes (like the distinction between Hiragana and Katakana).
Level 4: This level generally corresponds to weighting differences that are less significant than those
at the other levels. Often the last level (level 4 in the Common Template Table) is intended to specify
additional weighting for "special" characters, i.e., characters normally not part of the spelling of
words of a language (such as dingbats, punctuation, etc.), sometimes called "ignorable" characters
in the context of computerized ordering.
6.2.1.2. Processing properties
A given tailored table has specific scanning and ordering properties. These properties may have
been changed by the tailoring.
A scanning direction (forward or backward) for each level is used to indicate how to process the
string. The scanning direction is a global property of each level defined in the tailored table.
An optional property of the last level of comparison, if that level is greater than three, is that before
comparing weights of each “ignorable” character, a comparison on the numeric position of each such
character in the two strings may be effected. This processing property is known as the ‘position’ option.
In other words, for two strings equivalent at all levels except the last one, the string having an ignorable
in the lowest position comes before the other one. In case corresponding “ignorables” are at the same
position, then their weights are considered, until a difference is found. Support for this kind of processing
is optional and is not necessary to claim conformance.
NOTE: The scanning direction (forward or backward) is not normally related to the natural writing direction
of scripts. The scanning direction applies to the logical sequence of the coded character string.
© ISO/IEC 2001 -- All rights reserved 5
According to ISO/IEC 10646, for scripts written right to left, such as Arabic, the lowest positions in
the logical sequence of characters correspond to the rightmost characters of a string (from the point
of view of their natural presentation sequence). Conversely, for the Latin script, written left to right,
the lowest positions in the logical sequence of characters correspond to the leftmost characters of
the string (from the point of view of their natural presentation sequence).
Scanning forward starts with the lowest position in the logical sequence, while scanning backward
starts from the highest position, independently of the presentation sequence. The scanning direction
for ordering purposes is a global property of each level described in the table.
In ISO/IEC 10646-1, the Arabic script is artificially separated into two pseudo-scripts: 1) the logical,
intrinsic Arabic, coded independently of shapes, and 2) the Arabic presentation forms. Both allow
the complete coding of Arabic, but intrinsic Arabic is normally preferred for better processing, while
presentation-form Arabic is preferred by some presentation-oriented applications. ISO/IEC 10646-1
does not prescribe that the presentation forms be stored in any specific order, and in some
implementations, the storage order for the latter is the reverse of the storage order used for intrinsic
Arabic. It is therefore advisable that prehandling be used to make sure that Arabic presentation
forms and other Arabic characters be fed to the comparison method in logical order.
A tailored table may be separated into sections for ease of tailoring. Each section is then assigned a
name consistent with the specification in subclause 6.3.1. One of the tailoring possibilities is to assign a
given order to each section and to change the relative order of an entire section relative to other
sections.
6.2.2. Reference ordering key formation
When two strings are to be compared to determine their relative order, the two strings are first
broken up into a sequence of collating elements taking into accountthe multi-character “collating-
element” statements declared and used in a tailored table (if the syntax of clause 6.3.1 is used). For the
syntax used for expressing the Common Template Table, the name of a collating element consisting of a
single character, is formed by the UCS value of the character, expressed as a hexadecimal string,
prefixed with “U”. For multi-character collating elements, the name and association to characters can be
found via the collating elements declarations.
Then a sequence of m intermediary subkeys is formed out of a character string, where m is the
number of levels described in a tailored collation weighting table.
Each ordering key is a sequence of subkeys. Each subkey is a list of numeric weights. A subkey is
formed by successively appending the list of the weights assigned, at the level of the subkey, to each
collating element of the string. The keyword “IGNORE” in the Common Template Table at the place of a
sequence of collating symbols at a level, indicates that the sequence of weights at that level for that
collating element is an empty sequence of weights.
There are three ways of forming subkeys: subkeys formed using the “forward” processing
parameter; subkeys formed using the “backward” processing parameter; and subkeys formed using the
“forward,position” processing parameter. Subkeys that use the “position” option can only occur
at the last level, and only if that level is greater than three. Support of the “position” option is not
required for conformance. If the processing parameter “forward,position” is not supported,
“forward,position” shall be interpreted as if the processing parameter had been “forward”.
If there is no entry in the tailored table for a character of the input string, then the character’s weights
are undefined. Characters with undefined weights should be ordered, with respect to characters that
have defined weights, as if the undefined ones were given the weight named “UNDEFINED” at the first
level. If there is no weight assignment to the symbol “UNDEFINED” before the symbol ’s
weight assignment in a given tailored table, then the table shall be interpreted as if “UNDEFINED” was
weighted just before (the maximal level 1 weight). The ordering of characters with undefined
weights with respect to other characters with undefined weights is not specified in this standard.
6 © ISO/IEC 2001 -- All rights reserved
NOTE: A possible way to order characters with undefined weights is as if there were tailoring lines like this
one added to the table, in UCS code point order (call the maximal level 4 weight here):
"";;;
6.2.2.1. Formation of a subkey with the “forward” level processing parameter
forward
Subkeys, at a particular level, formed with the “ ” level processing parameter, are built in
the following way:
During forward scanning of each collating element of the input character string, one or more weights
are obtained. These weights are obtained by matching the collating element in the given tailored
collation weighting table, obtaining the list of weights assigned to the collating element at the particular
level. The obtained weight list is appended to the end of the subkey.
6.2.2.2. Formation of a subkey with the “backward” level processing parameter
Subkeys, at a particular level, formed with the “backward” level processing parameter are built by
forming a subkey as with the “forward” parameter, then reversing that subkey weight by weight.
6.2.2.3. Formation of a subkey with the “forward,position” level processing parameter
Subkeys, at the last level, formed with the “forward,position” level processing parameter are
formed by forming a subkey as with the “forward” parameter, but for collating elements that are not
"IGNORE"d at all levels but the last one, their last level weighting (list of weights) is replaced by a single
weight (call it here) that is larger than all other weights at the last level in the given tailored
table. Collating elements that are "IGNORE"d at all levels but the last one, retain their weighting
according to the given tailored table. Finally, any trailing sequence of the maximal weight () is
removed from the subkey, effectively replacing each trailing maximal weight with a zero weight.
NOTE: For any level, implementations are allowed to apply an order-preserving reduction of all subkeys at
that level. Such an order-preserving subkey reduction is useful for levels 2, 3, and 4. Level 2 often
has long stretches of the weight named in Annex A. Level 3 often has long stretches of the
weight named in Annex A. Level 4 often has long stretches of the weight named
here. One such ordering preserving subkey reduction technique effectively encodes, in the last level
subkey, the (relative) position, as single number each, of each otherwise ignored character; hence
the name of the “position” option.
6.2.3. Reference comparison method for ordering character strings
The reference comparison method for ordering two given character strings (after collation
preparation, which is not part of the reference comparison method itself) is to compare ordering keys
generated by the reference key formation method described in subclause 6.2.2 of this International
Standard:
• Begin by building an ordering key, using a given tailored collation weighting table, for each of
the two given character strings being compared.
• Then compare the resulting keys according to the key ordering definition below in this
subclause. Keys can be compared either up to a given level, or up to the last level of the
given tailored collation weighting table.
N OTE 1: The comparison may be made while generating the ordering keys for two strings to be compared,
stopping the key generation when the order of the strings can be determined. Such a technique is
sometimes termed lazy evaluation, and some systems support it by default. This avoids generating
the full ordering key, when an ordering difference may be found early in the keys. When a bigger set
of strings are to be ordered, it may be advisable to generate the ordering keys, and store each key
or an initial segment of each, before comparing the keys.
Weights for different levels should not be compared, which implies that subkeys at different levels
should not be compared. Nor should keys generated from different tailored tables be compared.
© ISO/IEC 2001 -- All rights reserved 7
NOTE 2: This allows implementations to assign weightings at each level independently of the other levels,
and independently of other tailorings.
m is the maximal level of a given tailored table. Recall that a key is a list, of length m, of subkeys; a
subkey is a list of weights; and a weight is a positive integer. Other notations used below are:
• L is the length of the subkey z, i.e., the number of weights in the subkey.
z
• z , where 1 ≤ a ≤ L , is the weight at index position a (an integer > 0) of the subkey z.
wt( )
a z
• u , where 1 ≤ b ≤ m, is the subkey at level b (an integer > 0) of the key u.
sk( )
b
The orderings of weights, subkeys, and ordering keys (up to a given level, or up to the last level) are
total orders, defined for a given tailored collation table as follows:
1. Weights are positive integer values (in the reference method), and are compared as
such for the purposes of collation.
2. A subkey v is less than a subkey w (written v < w) if and only if there exists an integer
i, where 1 ≤ i ≤ L +1 and i ≤ L , such that for all integers j, where 1 ≤ j < i, the equality
v w
v = w holds; and either i ≤ L and v < w , or i = L +1 and 0 < w .
wt( ) wt( ) wt( ) wt( ) wt( )
j j v i i v i
A subkey v is greater than a subkey w (written v > w) if and only if w is less than v.
A subkey v is equal to a subkey w (written v = w) if and only if neither v is less than w,
nor w is less than v.
3. An ordering key x is less than an ordering key y at level s (written x < y) if and only if
s
there exists an integer i, where 1 ≤ i ≤ s and i ≤ m, such that for all integers j, where
1 ≤ j < i, the equality x = y holds; and x < y .
sk( ) sk( ) sk sk( )
j j (i) i
An ordering key x is greater than an ordering key y at level s (written x > y) if and
s
only if y is less than x at level s. An ordering key x is equal to an ordering key y at level
s (written x = y) if and only if neither x is less than y at level s, nor y is less than x at
s
level s.
4. For ordering keys, <, >, and = are defined as < , > , and = respectively.
m m m
NOTE 3: For ordering keys, x < y implies x < y, x > y implies x > y, x = y implies x = y, x < y is
+1 +1 −1 0
t t t t t t
false, x > y is false, and x = y is true. Above level m, for a given tailored table, there are no further
0 0
ordering distinctions. Note that this definition implies that if two ordering keys are in the ‘less than’
relationship at level 1, they will also be in the ‘less than’ relationship at levels 2, 3, 4, etc. In general,
whenever two ordering keys are less than at a given level, they will also automatically be less than
at all subsequent, higher levels. Conversely, if two ordering keys are equal at a given level, they will
also automatically be equal at all preceding, lower levels.
6.3. Common Template Table: formation and interpretation
This clause specifies:
• The syntax used to form the Common Template Table in Annex A of this International
Standard or a tailored table based upon the Common Template Table as expressed in Annex
A.
•
Conditions of well-formedness of a table using this syntax.
• Interpretation of tailoring statements in deltas for tables formed using this syntax.
• Evaluation from symbols to weights of tailored tables formed using this syntax.
•
Conditions for considering two tables as equivalent.
8 © ISO/IEC 2001 -- All rights reserved
• Conditions for considering comparison results as equivalent.
6.3.1. BNF syntax rules for the Common Template Table in Annex A
Definitions between make use of terms not defined in this BNF syntax, and
assume general English usage.
Other conventions:
* indicates 0 or more repetitions of a token or a group of tokens;
+ indicates 1 or more repetitions of a token or a group of tokens;
? indicates optional occurrence of a token or a group of tokens (0 or 1 occurrences);
parentheses are used to group tokens;
production rules are terminated by a semicolon;
Define collation tables as sequences of lines:
weight_table = common_template_table | tailored_table ;
common_template_table =
simple_line+ ;
tailored_table = table_line+ ;
Define the line types:
simple_line = (symbol_definition | collating_element |
weight_assignment | order_end)? line_completion ;
table_line = simple_line | tailoring_line ;
tailoring_line = (reorder_after | order_start | reorder_end |
section_definition | reorder_section_after)
line_completion ;
Define the basic syntax for collation weighting:
symbol_definition =
’collating-symbol’ space+ symbol_element ;
symbol_element = symbol | symbol_range ;
symbol_range = symbol ’.’ symbol ;
symbol = simple_symbol | ucs_symbol ;
ucs_symbol = (’’) |
(’ ’ eight_digit_hex_string ’ ’) ;
simple_symbol = ’<’ identifier ’>’ ;
collating_element =
’collating-element’ space+ symbol space+
’from’ space+ quoted_symbol_sequence ;
quoted_symbol_sequence =
’"’ symbol+ ’"’ ;
weight_assignment =
simple_weight | symbol_weight ;
© ISO/IEC 2001 -- All rights reserved 9
simple_weight = symbol_element | ’UNDEFINED’ ;
symbol_weight = symbol_element space+ weight_list ;
weight_list = level_token (semicolon level_token)* ;
level_token = symbol_group | ’IGNORE’ ;
symbol_group = symbol_element | quoted_symbol_sequence ;
order_end = ’order_end’ ;
Define the tailoring syntax:
reorder_after = ’ ’ space+ target_symbol ;
reorder-after
target_symbol = symbol ;
order_start = ’ ’ space+ multiple_level_direction ;
order_start
multiple_level_direction =
(direction semicolon)* direction (’,position’)? ;
direction = ’forward’ | ’backward’ ;
reorder_end = ’reorder-end’ ;
section_definition =
section_definition_simple |
section_definition_list ;
section_definition_simple =
’ ’ space+ section_identifier ;
section
section_identifier =
identifier ;
section_definition_list =
’section’ space+ section_identifier space+
symbol_list ;
symbol_list = symbol_element (semicolon symbol_element)* ;
reorder_section_after =
’reorder-section-after’ space+ section_identifier
space+ target_symbol ;
Define low-level tokens used by the rest of the syntax:
identifier = (letter | digit) id_part* ;
id_part = letter | digit | ’ ’ | ’ ’ ;
- _
line_completion =
space* comment? EOL ;
comment = comment_char character* ;
four_digit_hex_string =
hex_upper hex_upper hex_upper hex_upper ;
10 © ISO/IEC 2001 -- All rights reserved
eight_digit_hex_string =
hex_upper hex_upper hex_upper hex_upper
hex_upper hex_upper hex_upper hex_upper ;
hex_numeric_string =
hex_upper+ ;
space = ’ ’ | ;
semicolon = ’ ’ ;
;
comment_char = ’%’ ;
digit = ’ ’ | ’ ’ | ’ ’ | ’ ’ | ’ ’ |
0 1 2 3 4
’5’ | ’6’ | ’7’ | ’8’ | ’9’ ;
hex_upper = digit | ’A’ | ’B’ | ’C’ | ’D’ | ’E’ | ’F’ ;
letter = ’a’ | ’b’ | ’c’ | ’d’ | ’e’ | ’f’ | ’g’ |
’h’ | ’i’ | ’j’ | ’k’ | ’l’ | ’m’ | ’n’ |
’ ’ | ’ ’ | ’ ’ | ’ ’ | ’ ’ | ’ ’ | ’ ’ |
o p q r s t u
’v’ | ’w’ | ’x’ | ’y’ | ’z’ |
’ ’ | ’ ’ | ’ ’ | ’ ’ | ’ ’ | ’ ’ | ’ ’ |
A B C D E F G
’H’ | ’I’ | ’J’ | ’K’ | ’L’ | ’M’ | ’N’ |
’ ’ | ’ ’ | ’ ’ | ’ ’ | ’ ’ | ’ ’ | ’ ’ |
O P Q R S T U
’V’ | ’W’ | ’X’ | ’Y’ | ’Z’ ;
EOL = ;
character =
character set in use, not including any
characters used to delimit the end of lines> ;
6.3.1.1 Keyword usage
The usage of the following locale syntax keywords is as follows:
collating-symbol Define a collating symbol representing a weight.
collating-element Define a collating element symbol representing a multi-character collating
element. This keyword is optional.
order_start Define collation rules. This statement is (after reordering is done) followed by
one or more collation order statements, assigning multi-level collation
weightings to collating elements. A collating element is either a character or a
defined substring.
order_end Specify the end of the collation-order statements.
reorder-after Redefine collating rules. Specify after which collating symbol weighting the
lines between the reorder-after and the next (or reorder-end) are to be moved.
This statement is followed by one or more collation table lines. The result is to
reassign collating symbol’s values or collating elements’s weightings.
reorder-end Specify the end of the "reorder-after" collating order statements.
section Define a section of the table. A section can be moved as a whole by reorder-
section-after.
© ISO/IEC 2001 -- All rights reserved 11
reorder-section-after Redefine the order of sections. This statement is followed by a section symbol
and a target symbol. The result is to reassign collating symbol’s values or
collating elements’s weightings.
6.3.2. Well-formedness conditions
WF 1. Any simple_symbol occurring in a weight_list shall also occur in the initial symbol_element
of the symbol_weight in which that weight_list occurs, or in a symbol_definition that occurs
earlier in the sequence of lines that constitute a weight_table.
NOTE: All simple_symbols must be “defined” before they are “used”.
WF 2. No symbol that occurs in a symbol_definition in a weig
...
NORME ISO/CEI
INTERNATIONALE 14651
Première édition
2001-02-15
Technologies de l'information —
Classement international et comparaison
de chaînes de caractères — Méthode de
comparaison de chaînes de caractères et
description du modèle commun et
adaptable de classement
Information technology — International string ordering and comparison —
Method for comparing character strings and description of the common
template tailorable ordering
Numéro de référence
ISO/CEI 14651:2001(F)
©
ISO/CEI 2001
ISO/CEI 14651:2001(F)
PDF – Exonération de responsabilité
Le présent fichier PDF peut contenir des polices de caractères intégrées. Conformément aux conditions de licence d'Adobe, ce fichier peut
être imprimé ou visualisé, mais ne doit pas être modifié à moins que l'ordinateur employé à cet effet ne bénéficie d'une licence autorisant
l'utilisation de ces polices et que celles-ci y soient installées. Lors du téléchargement de ce fichier, les parties concernées acceptent de fait la
responsabilité de ne pas enfreindre les conditions de licence d'Adobe. Le Secrétariat central de l'ISO décline toute responsabilité en la
matière.
Adobe est une marque déposée d'Adobe Systems Incorporated.
Les détails relatifs aux produits logiciels utilisés pour la création du présent fichier PDF sont disponibles dans la rubrique General Info du
fichier; les paramètres de création PDF ont été optimisés pour l'impression. Toutes les mesures ont été prises pour garantir l'exploitation de
ce fichier par les comités membres de l'ISO. Dans le cas peu probable où surviendrait un problème d'utilisation, veuillez en informer le
Secrétariat central à l'adresse donnée ci-dessous.
© ISO/CEI 2001
Droits de reproduction réservés. Sauf prescription différente, aucune partie de cette publication ne peut être reproduite ni utilisée sous quelque
forme que ce soit et par aucun procédé, électronique ou mécanique, y compris la photocopie et les microfilms, sans l'accord écrit de l’ISO à
l’adresse ci-après ou du comité membre de l’ISO dans le pays du demandeur.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax. + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Version française parue en 2002
Imprimé en Suisse
ii © ISO/CEI 2001 – Tous droits réservés
ISO/CEI 14651:2001(F)
Sommaire Page
Avant-propos . iv
Introduction. v
1 Domaine d'application . 1
2 Conformité . 2
3 Références normatives. 2
4 Termes et définitions . 3
5 Symboles et abréviations. 4
6 Comparaison de chaînes. 4
6.1 Prétraitement des chaînes de caractères avant comparaison . 4
6.2 Construction des clés et comparaison. 5
6.2.1. Préliminaires. 5
6.2.2. Méthode de référence de construction des clés. 6
6.2.3. Méthode de comparaison de référence pour le tri des chaînes de caractères . 7
6.3 Table-modèle commune : composition et interprétation. 8
6.3.1. Règles de syntaxe BNF pour la table-modèle commune de l’annexe A. 8
6.3.2. Contraintes de forme . 11
6.3.3. Interprétation des tables adaptées. 13
6.3.4. Évaluation des tables de poids. 14
6.3.5. Conditions d’équivalence de tables spécifiques . 14
6.3.6. Conditions d’équivalence des résultats . 14
6.4 Déclaration d’un delta. 15
6.5. Nom de la table-modèle commune et déclaration de nom . 16
Annexe A (normative) Table-modèle commune. 17
Annexe B (informative) Exemples de deltas d’adaptation. 18
B.1 Exemple 1 – Adaptation minimale . 18
B.2 Exemple 2 – Renversement de l’ordre des minuscules et majuscules . 18
B.3 Exemple 3 – Delta et banc d’essai canadiens . 18
B.4 Exemple 4 – Delta et banc d’essai danois. 21
Annexe C (informative) Prétraitement. 24
C.1 Généralités . 24
C.2 Tri de chaînes en thaï – prétraitement nécessaire pour obtenir un tri correct . 24
C.2.1. Principe du tri en thaï. 24
C.2.2 Aspect algorithmique. 26
C.3 Traitement de sous-chaînes numériques dans le tri . 28
C.3.1. Traitement des nombres « ordinaires » pour les entiers naturels . 28
C.3.2. Traitement des nombres positionnels dans les autres écritures. 30
C.3.3. Traitement des systèmes de numération non positionnels (p. ex. chiffres romains). 31
C.3.4. Traitement des nombres entiers . 31
C.3.5. Traitement des nombres positionnels positifs à partie fractionnaire.32
C.3.6. Traitement des nombres positionnels positifs à partie fractionnaire et exposant. 33
C.3.7. Traitement des dates et heures. 34
C.3.8. Nombres moins importants que les lettres . 35
C.3.9. Maintien du déterminisme . 35
Annexe D (informative) Annexe didactique sur les solutions apportées par cette norme aux
problèmes de tri lexical . 37
D.1 Problèmes . 37
D.2 Solution. 38
D.3 Adaptation . 40
Bibliographie. 41
© ISO/CEI 2001 – Tous droits réservés iii
ISO/CEI 14651:2001(F)
Avant-propos
L'ISO (Organisation internationale de normalisation) et la CEI (Commission électrotechnique internationale)
forment le système spécialisé de la normalisation mondiale. Les organismes nationaux membres de l'ISO ou de la
CEI participent au développement de Normes internationales par l'intermédiaire des comités techniques créés par
l'organisation concernée afin de s'occuper des domaines particuliers de l'activité technique. Les comités
techniques de l'ISO et de la CEI collaborent dans des domaines d'intérêt commun. D'autres organisations
internationales, gouvernementales et non gouvernementales, en liaison avec l'ISO et la CEI participent également
aux travaux.
Les Normes internationales sont rédigées conformément aux règles données dans les Directives ISO/CEI, Partie 3.
Dans le domaine des technologies de l'information, l'ISO et la CEI ont créé un comité technique mixte,
l'ISO/CEI JTC 1. Les projets de Normes internationales adoptés par le comité technique mixte sont soumis aux
organismes nationaux pour vote. Leur publication comme Normes internationales requiert l'approbation de 75 % au
moins des organismes nationaux votants.
L'attention est appelée sur le fait que certains des éléments de la présente Norme internationale peuvent faire
l'objet de droits de propriété intellectuelle ou de droits analogues. L'ISO et la CEI ne sauraient être tenues pour
responsables de ne pas avoir identifié de tels droits de propriété et averti de leur existence.
La Norme internationale ISO/CEI 14651 a été élaborée par le comité technique mixte ISO/CEI JTC 1, Technologies
de l'information, sous-comité SC 22, Langages de programmation, leur environnement et interfaces des logiciels
de systèmes.
L'annexe A constitue un élément normatif de la présente Norme internationale. Les annexes B, C et D sont
données uniquement à titre d'information.
iv © ISO/CEI 2001 – Tous droits réservés
ISO/CEI 14651:2001(F)
Introduction
Cette Norme internationale fournit une méthode universelle de mise en ordre des données textuelles. La norme
fournit également une table-modèle commune qui, lorsque adaptée, peut satisfaire aux exigences de tri d’une
langue donnée tout triant de manière raisonnable les autres écritures.
La table-modèle commune est conçue de telle sorte qu’une adaptation s’avère nécessaire pour chaque
environnement local. C’est pourquoi la conformité à cette Norme internationale requiert que les modifications à
cette table commune, appelées «deltas», soient déclarées de manière à documenter les différences dans les
résultats.
La présente Norme décrit une méthode pour classer l’information textuelle de manière indépendante du contexte.
L’ébauche de rapport technique ISO/CEI DTR 14652 (projet en cours) contient des dispositions complémentaires
pour le tri à celle de cette Norme internationale; on y trouvera aussi des renseignements complémentaires sur les
mots-clés de tri définis dans cette Norme internationale.
© ISO/CEI 2001 – Tous droits réservés v
NORME INTERNATIONALE ISO/CEI 14651:2001(F)
Technologies de l'information — Classement international et
comparaison de chaînes de caractères — Méthode de
comparaison de chaînes de caractères et description du modèle
commun et adaptable de classement
1 Domaine d'application
Cette Norme internationale définit :
• une méthode de référence pour la comparaison de deux chaînes de caractères ayant pour but de
déterminer leur ordre de classement dans une liste triée. La méthode s'applique à des chaînes utilisant le
répertoire complet de l’ISO/CEI 10646, des sous-répertoires tels que ceux des divers jeux normalisés
ISO/CEI à 8 bits ou tout autre jeu de caractères, et permet de produire des résultats de tri valables (après
adaptation) pour un ensemble de langues de chaque système d’écriture. Cette méthode de référence
utilise des tables de tri dérivées soit de la table-modèle commune de classement, soit d’une de ses
adaptations.
• un format de référence de la table-modèle commune. Ce format est décrit en notation BNF (forme de
Backus-Naur). Son emploi est normatif dans cette Norme internationale.
• une table-modèle commune de classement utilisée par la méthode de référence. Cette table décrit un
ordre de base pour tous les caractères de l’ISO/CEI 10646 jusqu’à son amendement 7. Cette table
constitue le point de départ permettant de préciser un ordre de classement culturellement acceptable pour
une culture donnée, sans qu’il soit nécessaire de connaître tous les systèmes d’écriture repris dans le
JUC.
NOTE 1 : On désire souvent pouvoir modifier cet ordre avec un minimum d'efforts pour satisfaire les besoins
d'environnements locaux. L'avantage principal de cette pratique, sur le plan mondial, réside dans le fait que pour
d'autres systèmes d’écriture que celui de l’utilisateur, aucune modification n’est nécessaire et que cet ordre
demeurera aussi cohérent que possible et prévisible dans un contexte international.
NOTE 2 : Le répertoire de caractères utilisé dans cette Norme internationale est équivalent à celui du standard Unicode,
version 2.1.
• un nom de référence représentant cette version particulière de la table-modèle commune, à utiliser comme
point de départ à toute adaptation. Ce nom implique notamment que la table est liée à un stade de
développement particulier du jeu universel de caractères codés sur plusieurs octets (ISO/CEI 10646).
• des exigences pour la déclaration de différences (delta) entre une table de tri et la table-modèle commune.
La présente Norme internationale ne prescrit pas :
• de méthode particulière de comparaison ; toute méthode équivalente conduisant aux mêmes résultats est
acceptable ;
• de format précis pour décrire ou pour adapter les tables dans une mise en œuvre donnée ;
• de symboles précis à utiliser par les mise en oeuvre, sauf pour ce qui est du nom de la table-modèle
commune de classement ;
• d’interface utilisateur particulière destinée à choisir les options ;
© ISO/CEI 2001 – Tous droits réservés 1
ISO/CEI 14651:2001(F)
• de format interne particulier pour les clés intermédiaires utilisées dans les comparaisons ou pour la table
de tri. L’utilisation de clés numériques n’est pas prescrite non plus ;
• d’ordre dépendant du contexte ;
• de prétraitement particulier des chaînes de caractères avant comparaison.
NOTE 1 : Bien que ceci ne soit pas prescrit par cette Norme internationale, il s’avère souvent nécessaire de préparer les
chaînes de caractères avant leur comparaison (cf. l’annexe informative C).
NOTE 2 : Bien que l’on ne prescrive aucune interface utilisateur destinée à choisir les options ou à adapter la table-modèle
commune, la clause de conformité exige de toujours déclarer un delta, c’est à dire l’ensemble des différences par
rapport à cette table. Il est fortement recommandé que l’application présente à l’utilisateur les options et
adaptations disponibles.
2 Conformité
Un processus est conforme à cette Norme internationale s’il satisfait les prescriptions des articles 6.2 à 6.5.
Toute déclaration de conformité à cette Norme internationale doit être accompagnée, directement ou par
référence, d’une déclaration de ce qui suit :
• le nombre de niveaux de tri que le processus peut utiliser ; ce nombre doit être égal ou supérieur à trois ;
• si le paramètre de traitement forward,position est permis ;
• si le paramètre de traitement backward est permis et à quel niveau ;
• le delta d’adaptation décrit à l’article 6.4 et le nombre de niveaux définis dans ce delta.
Il incombe au producteur de montrer en quoi sa déclaration de delta est reliée à la syntaxe de la table décrite à
l’article 6.3 et comment la méthode de comparaison utilisée, si elle est différente de celle mentionnée à l’article 6.1,
peut être considérée comme produisant les mêmes résultats que ceux prescrits par la méthode décrite à la clause 6.
3 Références normatives
Les normes suivantes contiennent des dispositions qui, en raison de la référence qui y est faite, constituent des
dispositions valables pour la présente Norme internationale. Quand une date de publication est fournie pour une
norme, les modifications ou révisions ultérieures ne s'appliquent pas. Cependant, les parties prenantes d’accords
fondés sur la présente Norme internationale sont invitées à examiner la possibilité de mettre en œuvre les éditions les
plus récentes des normes indiquées ci-après. Pour les normes fournies sans date de publication, la dernière édition
du document normatif en question s'applique.
Les membres de la CEI et de l'ISO tiennent à jour des registres des normes internationales en vigueur.
• ISO/CEI 10646-1:1993 Technologies de l'information – Jeu universel de caractères codés à plusieurs
octets – Partie 1: Architecture et table multilingue.
• ISO/CEI 10646-1:1993/Amd.1:1996 Technologies de l'information – Jeu universel de caractères codés à
plusieurs octets – Partie 1: Architecture et table multilingue. Amendement 1: Format de transformation
pour 16 plans du groupe 00 (UTF-16).
• ISO/CEI 10646-1:1993/Amd.2:1996 Technologies de l'information – Jeu universel de caractères codés à
plusieurs octets – Partie 1: Architecture et table multilingue. Amendement 2: Format de transformation
UCS 8 (UTF-8).
2 © ISO/CEI 2001 – Tous droits réservés
ISO/CEI 14651:2001(F)
• ISO/CEI 10646-1:1993/Amd.4:1996 Technologies de l'information – Jeu universel de caractères codés à
plusieurs octets – Partie 1 : Architecture et table multilingue. Amendement 4.
• ISO/CEI 10646-1:1993/Amd.5:1998 Technologies de l'information – Jeu universel de caractères codés à
plusieurs octets – Partie 1: Architecture et table multilingue. Amendement 5: Syllabes Hangul.
• ISO/CEI 10646-1:1993/Amd.6:1997 Technologies de l'information – Jeu universel de caractères codés à
plusieurs octets – Partie 1: Architecture et table multilingue. Amendement 6: Tibétain.
• ISO/CEI 10646-1:1993/Amd.7:1997 Technologies de l'information – Jeu universel de caractères codés à
plusieurs octets – Partie 1: Architecture et table multilingue. Amendement 7: 33 caractères additionnels.
• ISO/CEI 10646-1:1993/Amd.9:1997 Technologies de l'information – Jeu universel de caractères codés à
plusieurs octets – Partie 1: Architecture et table multilingue. Amendement 9: Identificateurs de caractères.
• ISO/CEI 10646-1:1993/Amd.18:1999 Technologies de l'information – Jeu universel de caractères codés à
plusieurs octets – Partie 1: Architecture et table multilingue. Amendement 18: Symboles et autres
caractères.
NOTE : Seuls le SYMBOLE EURO et le CARACTÈRE DE REMPLACEMENT D'OBJET de l’amendement 18 sont repris
dans l’annexe A de cette Norme internationale.
4 Termes et définitions
Dans le cadre de cette Norme internationale, les définitions suivantes s’appliquent :
4.1 chaîne de caractères
suite de caractères considérée comme un objet simple
4.2 classement équivalent de « tri »
4.3 clé de tri série de sous-clés utilisée pour déterminer un ordre
4.4 delta liste des différences que présente une table de classement par rapport à une autre. Une
table de tri donnée associée à un delta donné forme une nouvelle table de tri. Sauf
mention contraire, le terme « delta » désignera les différences par rapport à la table-
modèle commune définie dans la présente Norme internationale
4.5 élément de poids liste d’un certain nombre de poids ordonnés par niveau
4.6 élément de tri caractère ou une suite de caractères considérés comme une seule entité aux fins du tri
4.7 méthode de comparaison de référence
méthode de détermination de l’ordre relatif de deux clés (cf. la clause 6)
4.8 niveau (de tri) numéro d’une sous-clé dans la série de sous-clés formant une clé
4.9 poids (de tri) entier positif, utilisé dans les sous-clés pour indiquer l’ordre relatif des éléments de tri
4.10 prétraitement
procédé par lequel des chaînes de caractères sont transformées en d’autres chaînes avant
le calcul de la clé de tri de chaque chaîne
4.11 sous-clé suite de poids calculée pour une chaîne de caractères pour un niveau particulier.
4.12 symbole élément de tri
© ISO/CEI 2001 – Tous droits réservés 3
ISO/CEI 14651:2001(F)
4.13 symbole de tri symbole utilisé pour préciser les poids attribués à un élément de tri
4.14 table (de poids) de tri
table reliant les éléments de tri aux éléments de poids
4.15 tri procédé par lequel on détermine si de deux chaînes la première est plus petite, égale ou
plus grande que la seconde
5 Symboles et abréviations
Selon l’amendement 9 de l’ISO/CEI 10646-1:1993, les caractères se représentent à l’aide de UXXXX, où chaque
X correspond à un chiffre hexadécimal (lettres en majuscule) et où XXXX est le numéro du caractère dans
l’ISO/CEI 10646-1. Cette convention est reprise dans cette Norme internationale.
Dans la table-modèle commune, des symboles arbitraires représentent des poids selon la notation BNF décrite à
l’article 6.3.1.
6 Comparaison de chaînes
6.1 Prétraitement des chaînes de caractères avant comparaison
Il peut s’avérer nécessaire de transformer les chaînes de caractères avant de leur appliquer la méthode de
comparaison de référence (l’annexe C fournit un exemple d’une telle préparation). Bien que n’étant pas l’objet de la
présente Norme internationale, le prétraitement peut être une partie importante du processus de tri. On consultera
l’annexe C pour des exemples de prétraitement.
S’il y a lieu, une partie importante de la phase préparatoire consiste à transformer les caractères d’un codage
non-JUC à des caractères du JUC fournis en entrée à la méthode de comparaison. Cette transformation peut
comprendre le traitement correct de séquences d’échappement dans le codage original, la transformation de
caractères sans attribution dans le JUC à des positions de code dans la zone privée et la transposition de caractères
dans le cas de chaînes qui ne seraient pas stockées en ordre logique. Par exemple, dans le cas de codages arabes
en ordre visuel, les caractères doivent être mis en ordre logique ; dans le cas de certains codages à usage
bibliographique, les accents combinatoires stockés avant leur caractère de base doivent être déplacés après le
caractère de base. La suite résultante peut devoir être re-transformée dans le codage original.
NOTE 1 : La table-modèle commune est conçue de telle sorte que les séquences combinatoires et les caractères
précomposés correspondants aient exactement le même ordre. Pour éviter de violer cet invariant (et par le fait
même la conformité à Unicode), l’adaptation devrait changer le classement des séquences combinatoires quand le
classement des caractères précomposés correspondant est changé. Par exemple, si Ä est déplacé après Z, alors
le classement de la séquence combinatoire + devrait aussi être changé. Pour éviter de
révéler des différences de codage invisible à l’utilisateur, on recommande de normaliser les chaînes selon
l’algorithme de normalisation Unicode – voir le Unicode Technical Report nº 15 dans la bibliographie.
NOTE 2 : Les séquences d’échappement et les caractères de commande sont très délicats à interpréter ; il est fortement
recommandé de les filtrer ou de les transformer.
NOTE 3 : Puisque la méthode de comparaison de référence est une description logique du procédé de comparaison de
chaînes, rien n’empêche une mise en œuvre de cette méthode d’utiliser exclusivement un codage autre qu’un
codage du JUC, pour autant que les résultats obtenus soient les mêmes que si la méthode de référence était
utilisée.
4 © ISO/CEI 2001 – Tous droits réservés
ISO/CEI 14651:2001(F)
6.2 Construction des clés et comparaison
6.2.1. Préliminaires
6.2.1.1. Hypothèses
La table de tri est une transformation des éléments de tri en éléments de poids. Pour chaque élément de poids,
la table-modèle commune définit quatre niveaux. L’adaptation peut augmenter ou réduire ce nombre de niveaux, mais
pas en deçà de trois.
NOTE : Dans la table-modèle commune, les niveaux ont généralement les significations suivantes :
Niveau 1 : ce niveau correspond généralement au jeu de lettres de base pour une écriture alphabétique, au jeu de
caractères courants pour une écriture idéographique ou syllabique.
Niveau 2 : ce niveau correspond généralement aux diacritiques pouvant accompagner les caractères de base de
chaque écriture. En certaines langues, les lettres accentuées sont considérées comme des lettres de base de
l’alphabet et ne sont pas affectées par ce niveau, mais seulement par le premier niveau. En espagnol par exemple,
le N TILDE est considéré comme une lettre de base de l’alphabet latin ; par conséquent, une adaptation pour
l’espagnol changera la définition de N TILDE de « le poids d’un N au premier niveau et le poids d’un TILDE au
second niveau » à « le poids d’un N TILDE (entre N et O) au premier niveau et absence de diacritique au second
niveau ». Dans certains cas, on prend également en compte des variantes de forme au second niveau, par
exemple ß (la LETTRE MINUSCULE LATINE S DUR), qui est équivalente à ss au premier niveau mais s’en
distingue traditionnellement au second niveau.
Niveau 3 : ce niveau est généralement associé aux distinctions de casse (majusules-minuscules) ou aux variantes
de formes (comme la distinction entre hiragana et katakana).
Niveau 4 : ce niveau est généralement consacré aux distinctions plus fines que celles des autres niveaux. Le
dernier niveau (le quatrième dans la table-modèle commune) est souvent utilisé pour donner des poids à des
caractères « spéciaux », c’est à dire des caractères qui ne sont pas normalement utilisés dans l’orthographe des
mots d’une langue (ponctuation, vignettes, etc.), souvent appelés « ignorables » dans le contexte du tri
informatique.
6.2.1.2. Propriétés de traitement
Une table de tri adaptée donnée possède des propriétés spécifiques de balayage et de classement. Ces
propriétés peuvent avoir été changées par l’adaptation.
Une direction de balayage (vers l’avant ou vers l’arrière) pour chaque niveau est utilisée pour indiquer comment
traiter la chaîne. La direction de balayage est une propriété globale de chaque niveau défini dans la table adaptée.
Si le dernier niveau est supérieur à trois, il existe une propriété optionnelle de ce niveau appelée l’option
« position » : lorsque active, une comparaison des positions numériques de chaque caractère « ignorable » dans les
deux chaînes est effectuée, avant de comparer leurs poids. En d’autres mots, si deux chaînes sont équivalentes à
tous les niveaux sauf le dernier, la chaîne contenant un caractère ignorable en position la plus basse est classée
avant l’autre. Si les caractères ignorables ont les mêmes positions, alors leurs poids sont considérés jusqu’à ce
qu’une différence soit trouvée. Le traitement correct de cette propriété optionnelle n’est pas nécessaire à la conformité
à cette Norme.
NOTE : La direction de balayage (vers l’avant ou vers l’arrière) n’est normalement pas reliée à la direction d’écriture. La
direction de balayage s’applique à la suite logique de caractères codés.
Dans le cas d’écritures de droite à gauche comme l’arabe, l’ISO/CEI 10646 prescrit que les premiers caractères en
ordre logique sont ceux apparaissant à droite en ordre de présentation. En écriture latine au contraire, les premiers
caractères en ordre logique apparaissent à gauche en ordre de présentation.
Le balayage vers l’avant commence au début de la séquence en ordre logique, alors que le balayage vers l’arrière
commence à la fin, sans égard à la direction de présentation. La direction de balayage pour fins de tri est une
propriété globale de chaque niveau décrit dans la table.
© ISO/CEI 2001 – Tous droits réservés 5
ISO/CEI 14651:2001(F)
Dans l’ISO/CEI 10646-1, l’écriture arabe est artificiellement séparée en deux pseudo-écritures : 1) l’écriture arabe
logique, intrinsèque, codée indépendamment des formes contextuelles et 2) les formes de présentations arabes.
Les deux permettent le codage complet de l’arabe, mais le codage intrinsèque est normalement privilégié pour sa
meilleure capacité de traitement, alors que certaines applications de présentation préfèrent les formes de
présentation. L’ISO/CEI 10646-1 ne prescrit pas l’ordre de stockage des formes de présentation ; dans certaines
réalisations, elles sont stockées en ordre inverse de celui utilisé pour le codage intrinsèque. Par conséquent, la
phase de prétraitement doit assurer que les formes de présentation arabes et les autres caractères arabes sont
fournis en ordre logique à la méthode de comparaison.
Une table de tri peut être séparée en sections pour faciliter l’adaptation. On donne alors à chaque section un
nom, conformément aux dispositions de l’article 6.3.1. Une des possibilités d’adaptation est de donner un certain
ordre à chaque section et de changer l’ordre relatif d’une section par rapport à d’autres.
6.2.2. Méthode de référence de construction des clés
Lorsque deux chaînes doivent être comparées pour déterminer leur ordre relatif, elles sont d’abord analysées en
séquences d’éléments de tri, en tenant compte des déclarations « collating-element » à caractères multiples
présents dans la table de tri (si la syntaxe de l’article 6.3.1 est utilisée). Dans la syntaxe utilisée pour exprimer la table-
modèle commune, le nom d’un élément de tri associé à un seul caractère est formé de la lettre « U » suivie du
numéro du caractère dans le JUC, en notation hexadécimale. Les noms et caractères associés aux éléments de tri
multi-caractères sont définis par les déclarations d’éléments de tri.
Une suite de m sous-clés intermédiaires est alors formée de chaque chaîne, m étant le nombre de niveaux
décrits dans une table de poids de tri adaptée.
Chaque clé de tri est une suite de sous-clés. Chaque sous-clé est une liste de poids numériques. Une sous-clé
est construite en ajoutant successivement la liste des poids attribués à chaque élément de tri de la chaîne au niveau
de la sous-clé en construction. Dans la table-modèle commune, le mot-clé « IGNORE » trouvé en place d’une liste de
poids à un niveau indique que la liste de poids à ce niveau est vide.
Il y a trois façons de former des sous-clés : vers l’avant (paramètre de traitement « forward »), vers l’arrière
(paramètre de traitement « backward ») et de façon positionnelle (paramètre de traitement
« forward,position »). Les sous-clés formées de façon positionnelle ne peuvent apparaître qu’au dernier niveau
et seulement si ce niveau est supérieur à trois. La conformité n’exige pas la formation de sous-clés de façon
positionnelle ; une réalisation incapable de formation positionnelle interprétera « forward,position » comme s’il
s’agissait de « forward ».
Si la table adaptée ne contient pas d’entrée pour un caractère de la chaîne, les poids de ce caractère ne sont
pas définis. Les caractères de poids indéfinis devraient être triés, par rapport aux caractères ayant des poids définis,
comme s’ils avaient le poids nommé « UNDEFINED » au premier niveau. Si le symbole « UNDEFINED » n’a pas de
poids attribué avant l’attribution d’un poids à symbole dans la table adaptée, on considèrera que le poids de
« UNDEFINED » est tout juste inférieur à celui de (le plus grand poids de premier niveau). Le classement
relatif des caractères de poids indéfinis entre eux n’est pas précisé par cette norme.
NOTE : Une manière possible de classer les caractères de poids indéfinis entre eux est de supposer l’existence de lignes
d’adaptation comme celles qui suivent, rangées en ordre de numéro de caractères dans le JUC (
représente ici le poids maximal de niveau 4) :
"";;;
6.2.2.1. Formation de sous-clé vers l’avant (paramètre de traitement « forward »)
En présence du paramètre de traitement « forward » à un niveau donné, on construit la sous-clé de la façon
suivante :
On remonte un à un les éléments de tri de la chaîne de caractères. On obtient les poids correspondants en
recherchant les éléments de tri dans la table de poids de tri adaptée donnée et en extrayant la liste de poids pour le
niveau considéré. Cette liste de poids s’ajoute à la fin de la sous-clé.
6 © ISO/CEI 2001 – Tous droits réservés
ISO/CEI 14651:2001(F)
6.2.2.2. Formation de sous-clé vers l’arrière (paramètre de traitement « backward »)
En présence du paramètre de traitement « backward » à un niveau donné, on construit la sous-clé vers l’avant
et on la renverse, poids par poids.
6.2.2.3. Formation de sous-clé positionnelle (paramètre de traitement « forward,position »)
En présence du paramètre de traitement « forward,position » au dernier niveau, on construit la sous-clé de
la même façon que vers l’avant, si ce n’est que les poids des éléments de tri qui sont pris en compte à tous les
niveaux sauf le dernier sont remplacés par un seul poids (appelé ici) supérieur à tous les poids du dernier
niveau dans la table adaptée donnée. Les éléments de tri qui sont ignorés à tous les niveaux sauf le dernier
conservent leurs poids tels que donnés dans la table adaptée donnée. Enfin, toute séquence de queue de la valeur
maximale () est retirée de la sous-clé (ce qui en pratique remplace chaque par un poids nul).
NOTE : Il est permis, à chaque niveau, d’appliquer une réduction de toutes les sous-clés de ce niveau, en autant que cette
réduction préserve l’ordre. Une telle réduction est utile pour les niveaux 2, 3 et 4. Les sous-clés de niveau 2
contiennent souvent de longues suites du poids appelé dans la table donnée à l’annexe A. Les sous-clés
de niveau 3 contiennent souvent de longues suites du poids appelé à l’annexe A. Les sous-clés de niveau
4 contiennent souvent de longues suites du poids appelé ici. Une telle technique de réduction préservant
l’ordre consiste à coder, dans la sous-clé de dernier niveau, la position relative de chaque caractère autrement
ignoré ; c’est là l’origine du nom de l’option « position ».
6.2.3. Méthode de comparaison de référence pour le tri des chaînes de caractères
La méthode de comparaison de référence pour le classement de deux chaînes de caractères (après le
prétraitement, qui ne fait pas partie de cette méthode de comparaison) consiste à comparer les clés de tri construites
selon la méthode de référence décrite à l’article 6.2.2 de cette Norme internationale :
• En utilisant une table de poids de tri adaptée donnée, construire une clé de tri pour chacune des chaînes à
comparer.
• Comparer ensuite les clés selon la définition de l’ordre des clés donnée ci-dessous dans cet article. Les
clés peuvent être comparées jusqu’à un niveau donné ou jusqu’au dernier niveau de la table de poids de
tri adaptée donnée.
NOTE 1 : La comparaison peut être effectuée pendant la construction des clés, en arrêtant cette construction dès que l’ordre
des chaînes peut être déterminé. Cette technique est parfois appelée évaluation paresseuse et certains systèmes
l’utilisent implicitement. Elle permet d’éviter la construction complète des clés quand une différence peut être
trouvée tôt pendant la construction. Quand un ensemble important de chaînes doit être trié, il est recommandé de
construire et de stocker les clés – ou tout au moins un segment initial – avant de les comparer.
Les poids associés à des niveaux différents ne doivent pas être comparés, on ne doit donc pas comparer les
sous-clés de différents niveaux. Les clés construites à partir de tables adaptées différentes ne doivent pas être
comparées.
NOTE 2 : Ceci permet aux mises en œuvre d’attribuer les poids à chaque niveau indépendamment des autres niveaux et
sans égard à d’autres tables adaptées.
m est le plus grand niveau d’une table adaptée donnée. Rappelons qu’une clé est une liste, de longueur m, de
sous-clés ; une sous-clé est une liste de poids ; un poids est un entier positif. D’autres notations utilisées ci-dessous
sont :
• L est la longueur de la sous-clé z, c’est-à-dire le nombre de poids dans cette sous-clé.
z
• z , où 1 ≤ a ≤ L , est le poids à la position a (un entier > 0) de la sous-clé z.
pd( )
a z
• u , où 1 ≤ b ≤ m, est la sous-clé de niveau b (un entier > 0) de la clé u.
sc( )
b
© ISO/CEI 2001 – Tous droits réservés 7
ISO/CEI 14651:2001(F)
Les ordres des poids, des sous-clés et des clés de tri (jusqu’à un certain niveau ou jusqu’au dernier niveau) sont
des relations d’ordre total, définies pour une table de tri adaptée donnée comme suit :
1. Les poids sont des entiers positifs (dans la méthode de référence) et sont comparés comme
tels aux fins du classement.
2. Une sous-clé v est plus petite qu’une sous-clé w (on notera v < w) si et seulement s’il existe
un entier i, où 1 ≤ i ≤ L +1 et i ≤ L , tel que pour tous les entiers j, 1 ≤ j < i, l’égalité v = w
v w pd(j) pd(j)
est maintenue et soit i ≤ L et v < w , soit i = L +1 et 0 < w .
v pd(i) pd(i) v pd(i)
Une sous-clé v est plus grande qu’une sous-clé w (on notera v > w) si et seulement si w est plus
petite que v. Une sous-clé v est égale à une sous-clé w (on notera v = w) si et seulement si v n’est
pas plus petite que w et w n’est pas plus petite que v.
3. Une clé de tri x est plus petite qu’une clé de tri y au niveau s (on notera x < y) si et
s
seulement s’il existe un entier i, où 1 ≤ i ≤ s et i ≤ m, tel que pour tous les entiers j, 1 ≤ j < i,
l’égalité x = y est maintenue et x < y .
sc(j) sc(j) sc(i) sc(i)
Une clé de tri x est plus grande qu’une clé de tri y au niveau s (on notera x > y) si et seulement
s
si y est plus petite que x au niveau s. Une clé de tri x est égale à une clé de tri y au niveau s (on
notera x = y) si et seulement si x n’est pas plus petite que y au niveau s et y n’est pas plus petite
s
que x au niveau s.
4. Pour les clés de tri, <, > et = sont définis comme < , > et = respectivement.
m m m
NOTE 3 : Pour les clés de tri, x < y implique que x < y, x > y implique que x > y, x = y implique que x = y, x < y
t t+1 t t+1 t t−1 0
est faux, x > y est faux et x = y est vrai. Au-delà du niveau m, pour une table adaptée donnée, il n’y a plus de
0 0
distinctions d’ordre. On notera que cette définition implique que si une clé est plus petite qu’une autre au niveau 1,
elle est aussi plus petite aux niveaux 2, 3, 4, etc. En général, lorsqu’une clé est plus petite qu’une autre à un certain
niveau, elle l’est aussi à tous les niveaux subséquents. A contrario, lorsque deux clés sont égales à un certain
niveau, elles sont aussi égales à tous les niveaux inférieurs.
6.3 Table-modèle commune : composition et interprétation
Cet article précise :
• La syntaxe utilisée par la table-modèle commune donnée à l’annexe A et par une table adaptée basée sur
la table-modèle commune telle que donnée à l’annexe A.
• Les contraintes de forme d’une table utilisant cette syntaxe.
• L’interprétation à donner aux énoncés d’adaptation dans les deltas pour des tables utilisant cette syntaxe.
• L’évaluation des symboles en poids dans les tables adaptées utilisant cette syntaxe.
• Les conditions d’équivalence de deux tables.
• Les conditions d’équivalence des résultats de comparaison.
6.3.1. Règles de syntaxe BNF pour la table-modèle commune de l’annexe A
Les définitions utilisent des termes qui ne sont pas définis dans cette syntaxe BNF et suivent
l’usage général en français.
Autres conventions :
* indique une répétition (0 fois ou plus) d’un atome ou d’un groupe d’atomes ;
+ indique une répétition (1 fois ou plus) d’un atome ou d’un groupe d’atomes ;
? indique l’apparition optionnelle (0 ou 1 fois) d’un atome ou d’un groupe d’atomes ;
des parenthèses servent à grouper des atomes ;
les productions se terminent par un point-virgule.
8 © ISO/CEI 2001 – Tous droits réservés
ISO/CEI 14651:2001(F)
Définition des tables de tri comme des suites de lignes :
table_de_poids = table-modèle_commune | table_adaptée ;
table-modèle_commune =
ligne_simple+ ;
table_adaptée = ligne_de_table+ ;
Définition des types de ligne :
ligne_simple = (définition_de_symbole | élément_de_tri |
attribution_de_poids | fin_ordre)? achèvement_de_ligne ;
ligne_de_table = ligne_simple | ligne_adaptation ;
ligne_adaptation =
(reclasser_après | début_ordre | fin_de_reclassement |
définition_de_section | reclasser_section_après)
achèvement_de_ligne ;
Définition de la syntaxe de base pour les poids de tri :
définition_de_symbole =
’collating-symbol’ espace+ élément_symbole ;
élément_symbole = symbole | symbole_intervalle ;
symbole_intervalle = symbole ’.’ symbole ;
symbole = symbole_simple | symbole_juc;
symbole_juc = (’’) |
(’’) ;
symbole_simple = ’<’ identifiant ’>’ ;
élément_de_tri =
’collating-element’ espace+ symbole espace+
’from’ espace+ suite_de_symboles_cités ;
suite_de_symboles_cités =
’"’ symbole+ ’"’ ;
attribution_de_poids =
poids_simple | poids_symbolique ;
poids_simple = élément_symbole | ’UNDEFINED’ ;
poids_symbolique =
élément_symbole espace+ liste_de_poids ;
liste_de_poids = atome_de_niveau (point-virgule atome_de_niveau)* ;
atome_de_niveau =
groupe_de_symboles | ’IGNORE’ ;
groupe_de_symboles =
élément_symbole | suite_de_symboles_citée ;
fin_ordre = ’order_end’ ;
© ISO/CEI 2001 – Tous droits réservés 9
ISO/CEI 14651:2001(F)
Définition de la syntaxe d’adaptation :
reclasser_après =
’reorder-after’ espace+ symbole_cible ;
symbole_cible = symbole ;
début_ordre = ’order_start’ espace+ direction_multi_niveaux ;
direction_multi_niveaux =
(direction point-virgule)* direction (’,position’)? ;
direction = ’forward’ | ’backward’ ;
fin_de_reclassement =
’reorder-end’ ;
définition_de_section =
définition_de_section_simple |
définition_de_section_liste ;
définition_de_section_simple =
’section’ espace+ identifiant_de_section ;
identifiant_de_section =
identifiant ;
définition_de_section_liste =
’section’ espace+ identifiant_de_section espace+
liste_de_symboles ;
liste_de_symboles =
élément_symbole (point-virgule élément_symbole)* ;
reclasser_section_après =
’reorder-section-after’ espace+ id
...












Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.
Loading comments...