Skip to content

Commit b6fd6bc

Browse files
committed
Fix ASCII entity resolution (fixes #9)
Entity: line 1: parser error : Couldn't find end of Start Tag ref =epub%20leseprobe&utm_campaign=m%C3%A4dchen%20mit%20den%20engelsh%C3%A4nden" ^ Change-Id: Ic57b654bbfe37bb5ea2d4307e8e8deb83fb1cf22
1 parent d254f5c commit b6fd6bc

File tree

7 files changed

+23
-11
lines changed

7 files changed

+23
-11
lines changed

Changes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
2.6.1 2025-04-16
2+
- Fix ASCII entity resolution.
13
- Make KorAP-Tokenizer heap size configurable via environment
24
variable KORAPXMLTEI_TOKENIZER_HEAP_SIZE.
35

Readme.pod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ Defaults to C<512m>.
302302

303303
=head1 COPYRIGHT AND LICENSE
304304

305-
Copyright (C) 2021-2024, L<IDS Mannheim|https://www.ids-mannheim.de/>
305+
Copyright (C) 2021-2025, L<IDS Mannheim|https://www.ids-mannheim.de/>
306306

307307
Author: Peter Harders
308308

lib/KorAP/XML/TEI.pm

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -169,11 +169,12 @@ sub escape_xml_minimal {
169169
# Replace all entities, except %ent
170170
sub replace_entities {
171171
$_= shift;
172-
s/&#x22;/&quot;/gi;
173-
s/&#x26;/&amp;/gi;
174-
s/&#x27;/&apos;/gi;
175-
s/&#x3c;/&lt;/gi;
176-
s/&#x3e;/&gt;/gi;
172+
return ($_) if index($_,'&') < 0;
173+
s/&#(?:34|x22);/&quot;/gi;
174+
s/&#(?:38|x26);/&amp;/gi;
175+
s/&#(?:39|x27);/&apos;/gi;
176+
s/&#(?:60|x3c);/&lt;/gi;
177+
s/&#(?:62|x3e);/&gt;/gi;
177178
s/[&]#(x[0-9A-Fa-f]+);/chr(hex("0$1"))/ge;
178179
s/[&]#(\d+);/chr($1)/ge;
179180
s/\&(alpha|ap|bdquo|blk12|blk14|blk34|block|boxDL|boxdl|boxdr|boxDR|boxH|boxh|boxhd|boxHD|boxhu|boxHU|boxUL|boxul|boxur|boxUR|boxv|boxV|boxvh|boxVH|boxvl|boxVL|boxVR|boxvr|bull|caron|ccaron|circ|dagger|Dagger|ecaron|euro|fnof|hellip|Horbar|inodot|iota|ldquo|ldquor|lhblk|lsaquo|lsquo|lsquor|mdash|ndash|nu|oelig|OElig|omega|Omega|permil|phi|pi|piv|rcaron|rdquo|rho|rsaquo|rsquo|rsquor|scaron|Scaron|sigma|squ|squb|squf|sub|tilde|trade|uhblk|Yuml|zcaron|Zcaron);/$html_entities{$1}/ge;

lib/KorAP/XML/TEI/Tokenizer/KorAP.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use strict;
44
use warnings;
55
use File::Share ':all';
66

7-
our $VERSION = '2.6.0';
7+
our $VERSION = '2.6.1';
88
my $MIN_JAVA_VERSION = 17;
99

1010
use constant {

script/tei2korapxml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use KorAP::XML::TEI::Zipper;
2525
use KorAP::XML::TEI::Header;
2626
use KorAP::XML::TEI::Inline;
2727

28-
our $VERSION = '2.6.0';
28+
our $VERSION = '2.6.1';
2929

3030
our $VERSION_MSG = "\ntei2korapxml - v$VERSION\n";
3131

@@ -813,7 +813,7 @@ Defaults to C<512m>.
813813
814814
=head1 COPYRIGHT AND LICENSE
815815
816-
Copyright (C) 2021-2024, L<IDS Mannheim|https://www.ids-mannheim.de/>
816+
Copyright (C) 2021-2025, L<IDS Mannheim|https://www.ids-mannheim.de/>
817817
818818
Author: Peter Harders
819819

t/data/wdd_sample.i5.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,12 @@ Leibniz-Institute for the German Language and Université de Toulouse Jean Jaur
491491
<div id="i.10317_5" type="thread" part="N" org="uniform" sample="complete" complete="y">
492492
<head>Öffentliche Dienstleistungen, Ver-/Entsorgung</head>
493493
<posting id="i.10317_5_1" indentLevel="0" when-iso="2017-07-09T17:53+02" who="WU00003189">
494-
<p part="N"> Dieser Bereich unterliegt, sofern er in öffentlicher Hand ist, dem Preisgesetz.<s> Durch eine PPP fällt die Bindung an das Preisgesetz weg, mit der Folge, dass die Kosten frei kalkuliert werden können, regelmäßige weitere Folge: Preissteigerungen!</s>
494+
<p>
495+
<hi rend="_9_italic">Mehr unter</hi>
496+
<ref target="http://forever.ullstein.de/ebook/das-maedchen-mit-den-engelshaenden/?utm_source=sog%20des%20todes&amp;utm_medium=ebook&amp;utm_term=epub%20leseprobe&amp;utm_campaign=m%C3%A4dchen%20mit%20den%20engelsh%C3%A4nden&#34;">
497+
</ref>
498+
</p>
499+
<p part="N"> Dieser Bereich unterliegt, sofern er in öffentlicher Hand ist, dem Preisgesetz.<s> Durch eine PPP fällt die Bindung an das Preisgesetz weg, mit der Folge, dass die Kosten frei kalkuliert werden können, regelmäßige weitere Folge: Preissteigerungen!</s>
495500
<s>Vgl. http://www.econstor.eu/bitstream/10419/85329/1/770675158.pdf Möglicherweise wird diese "Flucht aus dem Preisrecht" (Greiffenhagen) durch die derzeit in Vorbereitung befindliche Novellierung des Preisgesetzes verhindert oder zumindest erschwert.</s>
496501
<s>--</s>
497502
<autoSignature type="signed">Karl 3 <timestamp>17:53, 9. Jul. 2017 (CEST)</timestamp>

t/tei.t

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,11 @@ subtest 'Replace all entities' => sub {
140140
is(replace_entities('&#65;'), 'A');
141141
is(replace_entities('&#171;'), replace_entities('&#x00AB;'));
142142
is(replace_entities('&#x41;'), 'A');
143-
is(replace_entities('&amp;&lt;&gt;'), '&amp;&lt;&gt;')
143+
is(replace_entities('&amp;&lt;&gt;'), '&amp;&lt;&gt;');
144+
is(replace_entities('&#34;'), '&quot;');
145+
is(replace_entities('&#38;'), '&amp;');
146+
is(replace_entities('&#39;'), '&apos;');
147+
is(replace_entities('&#60;'), '&lt;');
144148
};
145149

146150
done_testing;

0 commit comments

Comments
 (0)