Błąd #6578

Updated by Jan Kocoń about 8 years ago

Problem leży najprawdopodobniej w piśniku ccl. Przykładowy fragment pliku, dla którego występuje błąd:
<pre>
<tok>
<orth>firma</orth>
<lex disamb="1"><base>firma</base><ctag>subst:sg:nom:f</ctag></lex>
<ann chan="nam_eve">0</ann>
<ann chan="nam_loc">0</ann>
<ann chan="nam_org">0</ann>
</tok>
<tok>
<orth>Bögl</orth>
<lex disamb="1"><base>Bögl</base><ctag>ign</ctag></lex>
<ann chan="nam_eve">0</ann>
<ann chan="nam_loc">0</ann>
<ann chan="nam_org">1</ann>
<prop key="nam_org:lemma">Bögl &amp; Krýsl</prop>
</tok>
<tok>
<orth>&amp;</orth>
<lex disamb="1"><base>&amp;</base><ctag>interp</ctag></lex>
<ann chan="nam_eve">0</ann>
<ann chan="nam_loc">0</ann>
<ann chan="nam_org">1</ann>
</tok>
</pre>

Chodzi o linijkę:
<pre><prop &lt;/pre&gt;&lt;prop key="nam_org:lemma">Bögl &amp; Krýsl</prop></pre>

Po przetworzeniu (np. przy pomocy corpus-get) pliku zawierającego tę zawartość poleceniem:
<pre>corpus-get -i ccl -o ccl -t nkjp agora-1.1.0-names-disamb/articles/00107679.xml > out2.xml</pre>

linijka wygląda tak:
<pre><prop key="nam_org:lemma">Bögl & Krýsl</prop></pre>

Na wyjściu powinniśmy otrzymać to samo, co trafiło na wejście. Ponowna próba przetworzenia wyjścia poleceniem:
<pre>corpus-get -i ccl -o ccl -t nkjp out2.xml > out3.xml</pre>

Powoduje wyświetlenie błędu:
<pre>
XML Error: xmlParseEntityRef: no name

terminate called after throwing an instance of 'xmlpp::parse_error'
what(): Document not well-formed.
Line 239, column 21 (fatal):
xmlParseEntityRef: no name

Aborted (core dumped)
</pre>

Linijka na którą wskazuje wyjątek zawiera niewyeskejpowany ampersand. Podobnie jest po podwójnym przetwarzaniu iobberem oraz nawet najnowszym wcrft-app. Do poprawki!

Back