RE: MARC::File::XML and parsing.

[email protected] ("Doran, Michael D")
Newsgroups perl.perl4lib
Message-ID <[email protected]>
Hi Henri,

> Is there a reason why MARC::File::XML considers only a very 
> strict subset of utf-8 as valid ?

I would guess that it has to do with adhering to the MARC-21 repertoire of characters, so as to facilitate the round-trip conversion between the MARC-8 and Unicode character sets [1,2].  At some point in the future the MARC-21 repertoire will be decoupled from what was defined for MARC-8.

> For instance no linebreak...

Control characters such as line breaks are a bit of a different issue.  The MARC-21 standard currently allows for only a handful of control characters, not including (as you have discovered) the line break [3].

> This could be a really BIG trouble for kanjis or hindu languages imho.

The MARC-21 repertoire of characters includes East Asian Ideographs (Han), Japanese Hiranga and Katakana, and Korean Hangul [4,5].  I don't believe that Indic scripts in the vernacular would be valid MARC-21 characters. 

Are you finding any cases where the Marc::File::XML parser is dropping valid MARC-21 characters?

-- Michael

[1] USMARC Character Set Issues and Mapping to Unicode/UCS
    http://www.loc.gov/marc/marbi/1996/96-10.html

  WORKING PRINCIPLES TO BE FOLLOWED IN MAPPING OF CHARACTERS FROM
  USMARC TO UNICODE/UCS

  The following Working Principles were established by the
  Subcommittee and continue to inform their mapping decisions:

   * Round-trip mapping will be provided between USMARC characters
     and Unicode/UCS characters wherever possible.

[2] MARC 21 Specifications > CHARACTER SETS: Part 2 UCS/Unicode Environment
    http://www.loc.gov/marc/specifications/speccharucs.html
    "The specifications are built around enabling round trip movement of MARC
     data between MARC-8 and UCS/Unicode with as little loss as possible."

[3]
  MARC-8  Unicode  Character
  ------  -------  ---------
   0x1B   U+001B   ESCAPE
   0x1D   U+001D   RECORD TERMINATOR 
   0x1E   U+001E   FIELD TERMINATOR 
   0x1F   U+001F   SUBFIELD DELIMITER 
   0x88   U+0098   NON-SORT BEGIN 
   0x89   U+009C   NON-SORT END 
   0x8D   U+200D   JOINER 
   0x8E   U+200C   NON-JOINER 

[4] MARC 21 Specifications > CHARACTER SETS: Part 3 Code Tables
    http://www.loc.gov/marc/specifications/specchartables.html

[5] MARC 21 Standard - UCS/Unicode Environment > Character Set Mappings 
    http://rocky.uta.edu/doran/charsets/marcU.html

# Michael Doran, Systems Librarian
# University of Texas at Arlington
# 817-272-5326 office
# 817-688-1926 mobile
# [email protected]
# http://rocky.uta.edu/doran/
 

> -----Original Message-----
> From: Henri-Damien LAURENT [mailto:[email protected]] 
> Sent: Wednesday, September 26, 2007 10:45 AM
> To: perl4lib
> Subject: MARC::File::XML and parsing.
> 
> hi,
> I have some problems with Marc::File::XML parser.
> 
> Take those two xml records.
> Despite the fact that I agree that there are odd characters 
> in some subfields.
> I am wondering why, since those characters are UTF8, 
> MARC::File::XML should drop them when parsing.
> Is there a reason why MARC::File::XML considers only a very 
> strict subset of utf-8 as valid ? (For instance no linebreak, 
> no ...) ?
> 
> Couldnot it  say "OK It is XML record, encoded UTF8, i take 
> it for granted and no matter if there are "odd" characters" ?
> This could be a really BIG trouble for kanjis or hindu languages imho.
> 
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <record
>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>  xsi:schemaLocation="http://www.loc.gov/MARC21/slim 
> http://www.loc.gov/ standards/marcxml/schema/MARC21slim.xsd"
>  xmlns="http://www.loc.gov/MARC21/slim">
> 
>  <leader>00150nx  a2200073   4500 </leader>
>  <datafield tag="200" ind1=" " ind2="1">
>    <subfield code="a">Nicolas</subfield>
>    <subfield code="b">Jérôme</subfield>
>    <subfield code="4">Traducteur</subfield>  </datafield>  
> <datafield tag="100" ind1=" " ind2=" ">
>    <subfield code="a">19980124afrey50      ba0</subfield>
>  </datafield>
>  <controlfield tag="001">3568</controlfield>  <datafield 
> tag="152" ind1=" " ind2=" ">
>    <subfield code="b">NP</subfield>
>  </datafield>
> </record>
> <?xml version="1.0" encoding="UTF-8"?>
> <record
>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>  xsi:schemaLocation="http://www.loc.gov/MARC21/slim 
> http://www.loc.gov/ standards/marcxml/schema/MARC21slim.xsd"
>  xmlns="http://www.loc.gov/MARC21/slim">
> 
>  <leader>00151nx  a2200073   4500 </leader>
>  <datafield tag="200" ind1=" " ind2="1">
>    <subfield code="a">Guynemer</subfield>
>    <subfield code="b">Georges</subfield>
>    <subfield code="f">(1894-1917)</subfield>  </datafield>  
> <datafield tag="100" ind1=" " ind2=" ">
>    <subfield code="a">19980129afrey50      ba0</subfield>
>  </datafield>
>  <controlfield tag="001">4642</controlfield>  <datafield 
> tag="152" ind1=" " ind2=" ">
>    <subfield code="b">NP</subfield>
>  </datafield>
> </record>
> 
> --
> Henri Damien LAURENT et Paul POULAIN
> Consultants indépendants
> en logiciels libres et bibliothéconomie (http://www.koha-fr.org)
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.