Print

Print


You'll find it at:

  http://www.loc.gov/marc/bibliographic/ecbdmain.html

There are plenty of examples that cover all kinds of common and obscure
cases.

The one thing that might need clarification is the $q, as in:
  100 1#$aGresham, G. A.$q(Geoffrey Austin)

The $q is part of the library cataloging rules and expands from the way
an author's name appears on a title page to the full name. I don't think
that any appliations other than library catalogs will carry the
information that is in the $q so everyone else can probably ignore it.

kc

On Sat, 2003-12-20 at 08:39, Bruce D'Arcus wrote:
> Since I'm big on parsing out data where possible, and MARC/MARCXML does
> not parses names, I came up with the following XSLT 2 stylesheet to do
> this.  Currently it will only handle a name of the form "Family,
> Given."  Can someone give some more info on how coding of names is
> handled in MARC?  For example, what about terms of address, things like
> Jr, II, etc.?
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:strip-space elements="*"/>
> <xsl:output method="xml" indent="yes"/>
>
> <xsl:template match="name">
>    <xsl:choose>
>      <xsl:when test="@type='personal'">
>        <name type="personal">
>         <xsl:apply-templates/>
>        </name>
>      </xsl:when>
>      <xsl:when test="@type='corporate'">
>        <name type="corporate">
>         <xsl:apply-templates/>
>        </name>
>      </xsl:when>
>      <xsl:when test="@type='conference'">
>        <name type="conference">
>         <xsl:apply-templates/>
>        </name>
>      </xsl:when>
>      <xsl:otherwise>
>        <name>
>         <xsl:apply-templates/>
>        </name>
>      </xsl:otherwise>
>    </xsl:choose>
> </xsl:template>
>
> <xsl:template match="namePart">
>    <xsl:variable name="elValue" select="."/>
>
>    <xsl:analyze-string select="$elValue" regex="\s*(.*)\s*,\s*(.*)\s*">
>
>      <xsl:matching-substring>
>        <namePart type="given"><xsl:value-of
> select="regex-group(2)"/></namePart>
>        <namePart type="family"><xsl:value-of
> select="regex-group(1)"/></namePart>
>      </xsl:matching-substring>
>
>      <xsl:non-matching-substring>
>        <namePart>
>         <xsl:value-of select="$elValue"/>
>        </namePart>
>      </xsl:non-matching-substring>
>
>    </xsl:analyze-string>
>
> </xsl:template>
> </xsl:stylesheet>
--
-------------------------------------
Karen Coyle
Digital Library Specialist
http://www.kcoyle.net
Ph: 510-540-7596 Fax: 510-848-3913
--------------------------------------