CharacterEncoderImplementations__ISO10646_to_XMLUTF8.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 20:55:17 +0200
changeset 24417 03b083548da2
parent 22407 09eea6d44c0e
permissions -rw-r--r--
#REFACTORING by exept class: Smalltalk class changed: #recursiveInstallAutoloadedClassesFrom:rememberIn:maxLevels:noAutoload:packageTop:showSplashInLevels: Transcript showCR:(... bindWith:...) -> Transcript showCR:... with:...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15945
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
	      All Rights Reserved
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
"{ Package: 'stx:libbasic' }"
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ NameSpace: CharacterEncoderImplementations }"
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
ISO10646_to_UTF8 subclass:#ISO10646_to_XMLUTF8
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	instanceVariableNames:''
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	classVariableNames:'ReplacementCharacter'
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	poolDictionaries:''
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	category:'Collections-Text-Encodings'
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!ISO10646_to_XMLUTF8 class methodsFor:'documentation'!
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
copyright
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
"
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
 COPYRIGHT (c) 2006 by eXept Software AG
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	      All Rights Reserved
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
 This software is furnished under a license and may be used
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 only in accordance with the terms of that license and with the
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 be provided or otherwise made available to, or used by, any
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 other person.  No title to or ownership of the software is
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
 hereby transferred.
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
"
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
!
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
documentation
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
"
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    This encoder encodes characters into utf8 characters that may
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    occur in XML document.
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    Not all UTF characters are valid in XML, whatever encoding
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    is used. For a reference, see 
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
22407
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    47
      https://www.w3.org/TR/xml/#NT-Char
15945
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    Invalid characters are replaced by ReplacementCharacter
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    with $? as default.
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    [author:]
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
        Jan Vrany <jan.vrany@fit.cvut.cz>
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    [instance variables:]
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    [class variables:]
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    [see also:]
22407
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    60
        https://www.w3.org/TR/xml/#NT-Char
15945
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
"
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
! !
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
!ISO10646_to_XMLUTF8 class methodsFor:'initialization'!
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
initialize
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    "Invoked at system start or when the class is dynamically loaded."
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    ReplacementCharacter := $?.
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    "Modified: / 30-06-2012 / 19:55:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
! !
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
22407
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    75
!ISO10646_to_XMLUTF8 class methodsFor:'queries'!
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    76
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    77
isValidXMLunicode: codePoint
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    78
    "Returns true, if given codePoint (Integer!!!!!!) is
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    79
     valid XML unicode."
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    80
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    81
    codePoint == 16r0009 ifTrue:[ ^ true ].
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    82
    codePoint == 16r000A ifTrue:[ ^ true ].
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    83
    codePoint == 16r000D ifTrue:[ ^ true ].
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    84
    (codePoint between: 16r0020  and: 16rD7FF  ) ifTrue:[ ^ true ].
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    85
    (codePoint between: 16rE000  and: 16rFFFD  ) ifTrue:[ ^ true ].
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    86
    (codePoint between: 16r10000 and: 16r10FFFF) ifTrue:[ ^ true ].
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    87
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    88
    ^false.
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    89
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    90
    "Created: / 30-06-2012 / 20:11:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    91
! !
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
    92
15945
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
!ISO10646_to_XMLUTF8 methodsFor:'encoding & decoding'!
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
21479
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
    95
encodeCharacter:aUnicodeCharacter on:aStream
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
    96
    "return the UTF-8 representation of a aUnicodeCharacter.
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
    97
     The resulting string contains only valid XML unicode
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
    98
     characters. Invalid characters are replaced by a
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
    99
     ReplacementCharacter. For details, please see
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   100
22407
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
   101
     https://www.w3.org/TR/xml/#NT-Char"
21479
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   102
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   103
    |codePoint|
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   104
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   105
    codePoint := aUnicodeCharacter codePoint.
22407
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
   106
    (self class isValidXMLunicode:codePoint) ifFalse:[
21479
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   107
        codePoint := ReplacementCharacter codePoint.
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   108
    ].
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   109
    aStream nextPutUtf8:codePoint.
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   110
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   111
    "Created: / 16-02-2017 / 17:29:24 / stefan"
22407
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
   112
    "Modified: / 04-01-2018 / 01:10:28 / stefan"
21479
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   113
!
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   114
15945
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
encodeString:aUnicodeString
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
    "return the UTF-8 representation of a aUnicodeString.
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
     The resulting string contains only valid XML unicode
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
     characters. Invalid characters are replaced by a
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
     ReplacementCharacter. For details, please see
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
22407
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
   121
     https://www.w3.org/TR/xml/#NT-Char"
15945
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
    |s|
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
    s := WriteStream on:(String uninitializedNew:aUnicodeString size).
21479
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   126
    self encodeString:aUnicodeString on:s.
15945
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
    ^ s contents
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
    "
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
     (self encodeString:'hello') asByteArray                             #[104 101 108 108 111]
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
     (self encodeString:(Character value:16r40) asString) asByteArray    #[64]
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
     (self encodeString:(Character value:16r7F) asString) asByteArray    #[127]
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
     (self encodeString:(Character value:16r80) asString) asByteArray    #[194 128]
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
     (self encodeString:(Character value:16rFF) asString) asByteArray    #[195 191]
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
     (self encodeString:(Character value:16r100) asString) asByteArray   #[196 128]
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
     (self encodeString:(Character value:16r200) asString) asByteArray   #[200 128]
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
     (self encodeString:(Character value:16r400) asString) asByteArray   #[208 128]
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
     (self encodeString:(Character value:16r800) asString) asByteArray   #[224 160 128]
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
     (self encodeString:(Character value:16r1000) asString) asByteArray  #[225 128 128]
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
     (self encodeString:(Character value:16r2000) asString) asByteArray  #[226 128 128]
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
     (self encodeString:(Character value:16r4000) asString) asByteArray  #[228 128 128]
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
     (self encodeString:(Character value:16r8000) asString) asByteArray  #[232 128 128]
21479
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   143
     (self encodeString:(Character value:16rFFFF) asString)             '?'
15945
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
    "
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
    "Created: / 30-06-2012 / 20:07:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22407
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
   147
    "Modified (comment): / 04-01-2018 / 01:08:11 / stefan"
21479
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   148
!
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   149
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   150
encodeString:aUnicodeString on:aStream
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   151
    "return the UTF-8 representation of a aUnicodeString.
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   152
     The resulting string contains only valid XML unicode
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   153
     characters. Invalid characters are replaced by a
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   154
     ReplacementCharacter. For details, please see
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   155
22407
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
   156
     https://www.w3.org/TR/xml/#NT-Char"
21479
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   157
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   158
    |sz "{Class: SmallInteger}"|
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   159
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   160
    sz := aUnicodeString size.
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   161
    1 to:sz do:[:idx|
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   162
        self encodeCharacter:(aUnicodeString at:idx) on:aStream
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   163
    ].
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   164
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   165
    "Created: / 16-02-2017 / 17:18:47 / stefan"
22407
09eea6d44c0e #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 21479
diff changeset
   166
    "Modified (comment): / 04-01-2018 / 01:07:32 / stefan"
15945
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
! !
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
!ISO10646_to_XMLUTF8 methodsFor:'queries'!
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
17496
4dacd778d9c9 class: CharacterEncoderImplementations::ISO10646_to_XMLUTF8
Claus Gittinger <cg@exept.de>
parents: 15945
diff changeset
   171
nameOfEncoding
4dacd778d9c9 class: CharacterEncoderImplementations::ISO10646_to_XMLUTF8
Claus Gittinger <cg@exept.de>
parents: 15945
diff changeset
   172
    ^ #'utf8-XML'
15945
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
! !
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
!ISO10646_to_XMLUTF8 class methodsFor:'documentation'!
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
version
21479
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   178
    ^ '$Header$'
15945
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
!
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
version_CVS
21479
5269eda738b4 #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17496
diff changeset
   182
    ^ '$Header$'
15945
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
! !
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
94b64f8a1abe initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
ISO10646_to_XMLUTF8 initialize!