Person Name

Recommendation, 2007 April 15

Editors:

Kim Bartkus

Paul Kiel

Mark Marsden

Authors:

Members of the Cross-Process Object work group

Contributors:

Members of the Cross-Process Object work group

 

Copyright © 2007 HR-XML Consortium, Inc.

 

Abstract

This document provides all necessary documentation for PersonName, including XML Schema, definitions, and examples.


 

Table of Contents

 

1     Overview.. 3

1.1     Objective. 3

1.2     Relationship to Business Processes. 3

1.3     Scope. 3

1.4     Design Requirements. 4

2     Schema Design. 5

2.1     Schema Elements and Data Types Explained. 5

3     Reference Examples. 8

4     Implementation Considerations. 14

5     Known Limitations. 16

6     Appendix A - Schema Revision History. 16

7     Appendix B – Related Documents. 16

8     Appendix C – Schema Examples. 17

8.1     Example 1: Restriction – Design requires a Legal Name only: 17

8.2     Example 2 – Using PersonNameType vs PersonName element 18

 


1            Overview

1.1            Objective

Create a schema design for a person’s name that is flexible enough to be a global standard, which may be used within other HR-XML Consortium schemas.

1.2            Relationship to Business Processes

Almost all HR Business processes pass information regarding individuals, the most common data being the person’s name. Names have many components, and these components may vary by country or ethnicity - a Latin American name is very different from a Chinese name. Names may vary by purpose as well. For example, a resume for a performer may contain both a professional name and a legal name. Many business processes today either treat names as a monolithic string, or force names into first/middle/last components. This PersonName schema attempts to represent names for a broad array of cultures and purposes so that business processes can pass names reliably and completely, and in a format that can be efficiently processed.

1.3            Scope

1.3.1            Within Scope

Define the Name structure for use in other schemas defined by the HR-XML Consortium.

Address the legal format for a name.

PersonName is an expression of a Person’s Name in XML Schema syntax. 

1.3.2            Outside of Scope

Although Effective Dating has been addressed in the DateTime Data Types and Effective Dating documents, this document does not discuss any effective dating issues, due to backwards compatibility requirements for PersonName.

While it is important to understand how systems store a person’s name and how the different elements of a name are concatenated to form a full name, this proposal does not recommend nor imply how a name should be stored in a database.

Sorting formats for Name are not within the scope of this project.

1.4            Design Requirements

Must be able to handle various name formats without a lot of overhead.

Syntax must be self-documenting.

Must take cultural context into account.  Cultural context determines how the various parts of the name are put together to form the whole name.

Must be able to handle multiple purposes or contexts of the name (i.e. Employee, Supervisor, Dependant, Beneficiary, etc).


2            Schema Design

2.1            Schema Elements and Data Types Explained

Elements and Attributes

[Global types listed alphabetically in following table.]

ContentModel*
Data type
Occurrence:
Sequence | Choice | All (minOccurs/maxOccurs)

Attributes

Definition

/
PersonName

- PersonNameType - (1/1)

The name of a person.

/ PersonName/
FormattedName

- xsd:string - S (0/1)

Contains, in one string, a fully formatted name with all of its pieces in their proper place.
[BusinessRule(s): This includes all of the necessary punctuation. This de-normalized form of the name cannot be easily parsed. The use of multiple occurrences are officially deprecated in this release and will be removed in a future version. ]

/ PersonName/
LegalName

- xsd:string - S (0/1)

Used for legal documentation or other legal purposes. Contains, in one string, a fully formatted name with all of its pieces in their proper place. This includes all of the necessary punctuation. Extension to represent the worker's name.

/ PersonName/
GivenName

- xsd:string - S (0/*)

Contains the given or chosen name. Also known as a person's first name. If multiple givenNames are used, the order is implied.

/ PersonName/
PreferredGivenName

- xsd:string - S (0/1)

Contains the chosen name by which the person prefers to be addressed. Note: This name may be a name other than a given name, such as a nickname.

/ PersonName/
MiddleName

- xsd:string - S (0/1)

Contains a person's middle name or initial.

/ PersonName/
FamilyName

xsd:extension base: xsd:string
primary xsd:restriction base: xsd:string [Enumerations]: true, false, undefined
- -
prefix - xsd:string -

Contains the non-chosen or inherited name. Also known as a person's last name in the Western context. The order is implied by the order of appearance of the FamilyName elements in the XML document.

/ PersonName/ FamilyName/
primary

xsd:restriction base: xsd:string [Enumerations]: true, false, undefined

Defines the order when multiple family names are used.
Defines the order when multiple family names are used.
primary=”true”
Specifies that this occurrence of familyName is primary. It would appear first when multiple familyNames are used.
primary=”false” Specifies that this occurrence of familyName is not primary.  It would appear after the primary familyName. When multiple ‘False’ primary familyNames are used, the order is implied.
primary=”undefined” Specifies that multiple familyNames do not apply. If multiple familyNames are used with this type, order is implied.

/ PersonName/ FamilyName/
prefix

- xsd:string -

The aristocratic or other prefix for FamilyName.
[Example(s): de (as in de Witt), la (as in la Salle); van (as in van der Voss). ]

/ PersonName/
Affix

xsd:extension base: xsd:string
type xsd:restriction base: xsd:string [Enumerations]: aristocraticTitle, formOfAddress, generation, qualification
- - required

Contains the remaining parts of the PersonName as defined by the type attribute.

/ PersonName/ Affix/
type

xsd:restriction base: xsd:string [Enumerations]: aristocraticTitle, formOfAddress, generation, qualification

Defines the context for the affix.
type=aristocraticTitle.
e.g. Baron, Graf, Earl, etc.
type=formOfAddress.
Contains the Salutation,
e.g. Mr., Mrs., Hon., Dr., Major, etc.
type=generation.
 e.g. Sr., Jr., III (the third), etc.
type=qualification.
Contains the letters used to describe academic or other type qualifications held by a person and/or the distinctions conferred upon them. e.g. PhD, MD, CPA, MCSD, etc.

/ PersonName/
AlternateScript

script - xsd:string -
FormattedName - xsd:string - S (0/1)
LegalName - xsd:string - S (0/1)
GivenName - xsd:string - S (0/*)
PreferredGivenName - xsd:string - S (0/1)
MiddleName - xsd:string - S (0/1)
FamilyName - xsd:string - S (0/*)
Affix - xsd:string - S (0/*)

The same information as presented in the base elements, but represented in a different script.
[BusinessRule(s): AlternateScript elements should contain sub-elements parallel to the base structure, but in the alternate script designated by the script attribute. 2 sibling AlternateScript elements should not use the same script. ]
[Example(s): A person’s name may be represented in the Latin alphabet in the base structure but represented in Japanese Katakana and/or Japanese Kanji script (or Arabic characters, Korean characters et al) by use of AlternateScript elements. ]

/ PersonName/ AlternateScript/
script

- xsd:string -

A code identifying a character script used in the associated elements. A script is a set of graphic characters used for the written form of one or more languages. A script, as opposed to an arbitrary subset of characters, is defined in distinction to other scripts where readers of one script may be unable to read the individual character glyphs of another script.
[BusinessRule(s): This attribute contains an ISO 15924 code (4 letters). ]
[Example(s): “Latn” for the Latin alphabet, “Hani” for Asian ideograph characters, and “Arab” for the Arabic alphabet. ]

/ PersonName/ AlternateScript/
FormattedName

- xsd:string - S (0/1)

Contains, in one string, a fully formatted name with all of its pieces in their proper place.
[BusinessRule(s): This includes all of the necessary punctuation. This de-normalized form of the name cannot be easily parsed. The use of multiple occurrences are officially deprecated in this release and will be removed in a future version. ]

/ PersonName/ AlternateScript/
LegalName

- xsd:string - S (0/1)

Used for legal documentation or other legal purposes. Contains, in one string, a fully formatted name with all of its pieces in their proper place. This includes all of the necessary punctuation. Extension to represent the worker's name.

/ PersonName/ AlternateScript/
GivenName

- xsd:string - S (0/*)

Contains the given or chosen name. Also known as a person's first name. If multiple givenNames are used, the order is implied.

/ PersonName/ AlternateScript/
PreferredGivenName

- xsd:string - S (0/1)

Contains the chosen name by which the person prefers to be addressed. Note: This name may be a name other than a given name, such as a nickname.

/ PersonName/ AlternateScript/
MiddleName

- xsd:string - S (0/1)

Contains a person's middle name or initial.

/ PersonName/ AlternateScript/
FamilyName

xsd:extension base: xsd:string
primary xsd:restriction base: xsd:string [Enumerations]: true, false, undefined
- -
prefix - xsd:string -

Contains the non-chosen or inherited name. Also known as a person's last name in the Western context. The order is implied by the order of appearance of the FamilyName elements in the XML document.

/ PersonName/ AlternateScript/ FamilyName/
primary

xsd:restriction base: xsd:string [Enumerations]: true, false, undefined

Defines the order when multiple family names are used.
primary=”true”
Specifies that this occurrence of familyName is primary. It would appear first when multiple familyNames are used.
primary=”false” Specifies that this occurrence of familyName is not primary.  It would appear after the primary familyName. When multiple ‘False’ primary familyNames are used, the order is implied.
primary=”undefined” Specifies that multiple familyNames do not apply. If multiple familyNames are used with this type, order is implied.

/ PersonName/ AlternateScript/ FamilyName/
prefix

- xsd:string -

The aristocratic or other prefix for FamilyName.
[Example(s): de (as in de Witt), la (as in la Salle); van (as in van der Voss). ]

/ PersonName/ AlternateScript/
Affix

xsd:extension base: xsd:string
type xsd:restriction base: xsd:string [Enumerations]: aristocraticTitle, formOfAddress, generation, qualification
- - required

Contains the remaining parts of the PersonName as defined by the type attribute.

/ PersonName/ AlternateScript/ Affix/
type

xsd:restriction base: xsd:string [Enumerations]: aristocraticTitle, formOfAddress, generation, qualification

Defines the context for the affix.
type=aristocraticTitle.
e.g. Baron, Graf, Earl, etc.
type=formOfAddress.
Contains the Salutation,
e.g. Mr., Mrs., Hon., Dr., Major, etc.
type=generation.
 e.g. Sr., Jr., III (the third), etc.
type=qualification.
Contains the letters used to describe academic or other type qualifications held by a person and/or the distinctions conferred upon them. e.g. PhD, MD, CPA, MCSD, etc.

3            Reference Examples

The following table lists the methods that various cultures may use for representing a person's name.  It is intended to make the implementer aware of how diverse a person's name can be.  This table should serve as a guide and not the final word on how a culture represents a person's name.

Country

Examples

English (AngloAmerican)

 

 

The first and last name may be combined into one name or parsed into given and family name. The following two examples will display ‘John Smith’.

 

<PersonName>

                <GivenName>John</GivenName>

                <FamilyName>Smith</FamilyName>

</PersonName>

 

<PersonName>

                <FormattedName>John Smith</FormattedName>

</PersonName>

Military titles may be described with the Affix type ‘formOfAddress’. e.g. Major John Smith

<PersonName>

                <GivenName>John</GivenName>

                <FamilyName>Smith</FamilyName>

                <Affix type="formOfAddress">Major</Affix>

</PersonName>

Mrs. Jane H. Doe

<PersonName>

                <GivenName>Jane</GivenName>

                <MiddleName>H.</MiddleName>

                <FamilyName>Doe</FamilyName>

                <Affix type="formOfAddress">Mrs.</Affix>

</PersonName>

 

French

The abbreviation is used before the proper name or title of the person. If unsure a woman is married, use the married form.

  • M. Paul Martin (masculine, singular)
  • Mme Pauline Martin (feminine, singular, married woman)
  • Mlle Anne Martin (singular, unmarried)

·         M. Paul Martin

<PersonName>

                <GivenName>Paul</GivenName>

                <FamilyName>Martin</FamilyName>

                <Affix type="formOfAddress">M.</Affix>

</PersonName>

 

Dutch

When a family name contains a prefix, it may be transmitted in the ‘prefix’ attribute.

Mevr. Maria de Wit 

<PersonName>

                <GivenName>Maria</GivenName>

                <FamilyName prefix="de">Wit</FamilyName>

                <Affix type="formOfAddress">Mevr.</Affix>

</PersonName>

 

Korean

Kim, Chul-soo

<PersonName>

                <GivenName>Chul-soo</GivenName>

                <FamilyName>Kim</FamilyName>

</PersonName>

 

The name represents 3 Korean characters.  „Kim“ is the last name, and „Chul-Soo“ is the first name.

In Korea, the last name always comes first.

The State department recommends using a hyphen between the two Korean characters of any Korean first name as shown in the exemplary name above.

Another rule to keep in mind is the second Korean character of any Korean first name starts with a small character as a small ‚s’ is used in „Chul-soo“.

Mexico

Sr. Fernando Martínez Urrutia

<PersonName>

                <GivenName>Fernando</GivenName>

                <FamilyName> Martinez Urrutia </FamilyName>

                <Affix type="formOfAddress">Sr.</Affix>

</PersonName>

 

OR

<PersonName>

                <GivenName>Fernando</GivenName>

                <FamilyName primary="true">Martinez</FamilyName>

                <FamilyName primary="false">Urrutia</FamilyName>

                <Affix type="formOfAddress">Sr.</Affix>

</PersonName>

The following abbreviations are used before the proper name or title of the person:

  • Sr. Fernando Martínez Urrutia (masculine, singular.)*
  • Srita. Eugenia González Pérez (feminine, singular, unmarried)**
  • Sra. Teresa  Fernández de Aguilar (feminine, singular, married woman)***

 

*Males always keep two family names; the father’s family name first and the mother’s maiden name last.

 

**Single women use the father’s family name first and the mother’s maiden name last.

 

***Married woman keep the father’s family name and add the husband’s family name, followed by the preposition de.

 If the individual holds one of the following degrees they should be acknowledged as it follows:

  • Ing. (Engineer; masculine and feminine)
  • Lic. (It indicates that the individual it is, either a lawyer, or holds a Bachelor’s Degree; masculine and feminine)
  • Dr. (Masculine for a physician, surgeon, dentist, veterinarian or the person that holds a PhD)
  • Dra. (Femenine for a physician, surgeon, dentist,  veterinarian or the person that  holds a PhD)

Portuguese

The following abbreviations are used before the proper name or title of the person:

  • Sr. João da Silva (masculine, singular)
  • Sra. Maria da Silva (feminine, singular, married woman)
  • Srta. Maria Garcia da Silva (feminine, singular, unmarried)

 

<PersonName >

                <GivenName>Maria</GivenName>

                <FamilyName primary="true">Garcia</FamilyName>

                <FamilyName primary="false" prefix="de">Silva</FamilyName>

                <Affix type="formOfAddress">Srta.</Affix>

</PersonName>

 

Japanese

 

 

In Japan, three types of characters are used for names: Kanji, Katakana and Hiragana.

Japanese Kanji characters can be read in multiple ways depending on how someone would choose to pronounce the names. In this respect, Katakana is normally used to show how the names would be read. 

Foreign names are written in Roman letters or Katakana.

Yamada Taro

<PersonName>

                <FormattedName>Taro Yamada</FormattedName>

                <GivenName>Taro</GivenName>

                <FamilyName>Yamada</FamilyName>

                <AlternateScript script="Kana">

                                <FormattedName>ヤマダ タロウ</FormattedName>

                                <GivenName>タロウ</GivenName>

                                <FamilyName>ヤマダ</FamilyName>

                </AlternateScript>

                <AlternateScript script="Hira">

                                <FormattedName>やまだ たろう</FormattedName>

                                <GivenName>たろう</GivenName>

                                <FamilyName>やまだ</FamilyName>

                </AlternateScript>

                <AlternateScript script="Hani">

                                <FormattedName>山田 太郎</FormattedName>

                                <GivenName>太郎</GivenName>

                                <FamilyName>山田</FamilyName>

                </AlternateScript>

                <AlternateScript script="Romaji">

                                <FormattedName>Yamada Taro</FormattedName>

                                <GivenName>Taro</GivenName>

                                <FamilyName>Yamada</FamilyName>

                </AlternateScript>

</PersonName>

 

The following example might be used by a staffing agency:

Yamada Hanako

 

<PersonName>

                <FormattedName>Hanako Yamada</FormattedName>

                <GivenName>Hanako</GivenName>

                <FamilyName>Yamada</FamilyName>

                <AlternateScript script