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="Kana">

                                <FormattedName>ヤマダ ハナコ</FormattedName>

                                <GivenName>ハナコ</GivenName>

                                <FamilyName>ヤマダ</FamilyName>

                </AlternateScript>

                <AlternateScript script="Hani">

                                <FormattedName>山田 はな子</FormattedName>

                                <GivenName>はな子</GivenName>

                                <FamilyName>山田</FamilyName>

                </AlternateScript>

</PersonName>

Simplified Chinese (Mainland China)

In writing, there are two forms of salutation: in Chinese characters or in Pinyin, the National Phonetic Alphabet, which is a standard system.

In Chinese characters: the person’s full name (formal) or last name (informal) is followed by 先生 (Mr.), or 女士(Mrs.), or 小姐 (Ms.), depending upon the person’s gender and marriage status. It is always safe to use 女士 (Mrs) if you don’t know the lady’s marriage status. The following are some examples:

(Formal)

张小威先生  (Mr. Zhang, Xiaowei)

金丽女士 (Mrs. Jin, Li)

刘芳小姐 (Ms. Liu, Fang)

(Informal)

张先生 (Mr. Zhang)

金女士 (Mrs. Jin)

刘小姐 (Ms. Liu)

In Pinyin: Mr./Mrs./Ms. is used before the person’s full name or last name. For example:

(Formal)

Mr. Xiaowei Zhang or Mr. Zhang, Xiaowei

Mrs. Li Jin or Jin, Li.

Ms. Fang Liu or Ms. Liu, Fang

 

(Informal)

Mr. Zhang

Mrs. Jin

Ms. Liu

Note: Please be aware that in Pinyin form, it can be either first name first or last name first, except that in the latter, the last name and first name should be separated by a comma. In practice, last name first method is preferred.

Also, note that the sort order for Chinese characters is often based on the number of strokes in the symbol. The Chinese character set is used here. However, some operating systems don’t recognize this set and may be displayed as asterisks or other symbols.

Traditional Chinese

A person’s last name is followed by the Chinese equivalent of Mr. and Ms. in both written and spoken Chinese.

If a female is known to be married, her husband’s last name followed by Mrs. is also acceptable.

Spain

 

Married females hold their original name, father’s surname first and the mother’s maiden name last.

Agentina and other South American Countries

 

In these countries only one last name is used, males and females, which is the father’s last name. Married women use the husband’s last name optionally.

India

"Prabhahar Santhanam". Considered a first name and a last name. Some Indians have middle names. Often written as "S. Gowtham" - the family name initial and then the given name. Nicknames are common, in this example "Prabhu".

Greece

"Theodoros Papangelis". Considered a first name and last name. There are no middle names in Greece. Wives almost always take the husband's name. The first name is commonly taken from the paternal grandparents, either the grandmother or the grandfather depending on the gender of the child. Most first names are names of Saints.

Russia

"Mikhail Sergeyevich Gorbachov". Considered a given name, middle name, family name. The family name has a different form for males vs. females. The middle name is often a variant of the father's given name. Nick names (also called 'short name') are common, e.g. "Misha". There is no "Dr." or "Jr." or any other common suffix or prefix. Aristocratic titles are at the front, but are exceedingly rare since the onset of communism.

4            Implementation Considerations

·         A person may have multiple family names. Some systems break out these multiple family names into separate data elements.  Other systems store them as one data element.  This design will handle both approaches to family name. Implementations of this schema must be aware that the family name could be sent using either format, and respond accordingly.  It is expected that if a person has multiple family names, and the names are passed as separate elements, they are passed in the order they would be concatenated to build a name string. (i.e. Fernando Martinez Urrutia )
correct: <GivenName>Fernando</GivenName>

<FamilyName primary=”false”>Martinez</FamilyName>

<FamilyName primary=”true”>Urrutia</FamilyName>.
incorrect: <GivenName>Fernando</GivenName>

<FamilyName primary=”true”>Urrutia</FamilyName>

<FamilyName primary=”false”>Martinez </FamilyName>

·         A person has different names for different situations.  For example, a woman may use her maiden name for professional reasons and her married name for legal/other reasons. If several versions of a person’s name need to be passed for a given context, then the schema design should allow for multiple names at the context level.

5            Known Limitations

6            Appendix A - Schema Revision History

Date

Revisions

2001-08-16

Initial draft based on version 1_1 specification

2001-09-04

Modified this document to more closely match the TSC document template.

Modified Schema design changing the PersonName type to be PersonNameType. Updated all examples and references

Added Appendix D – Schema Examples

2001-Oct-16

Approved recommendation by HR-XML Consortium

2002-Jan-16

New target/default namespace

2003-Feb-26

Approved recommendation by HR-XML Consortium. The default and targetNamespaces of all HR-XML schemas have been standardized to "http://ns.hr-xml.org". This recommendation is available as part of the HR-XML 2_0 architecture.

2005-Nov-11

  • Added AlternateScript structure and script attribute to allow for multiple character sets.
  • Removed deprecated type attribute from FormattedName.
  • Removed deprecated enumerations from Affix/type: academicGrade, aristocraticPrefix, familyNamePrefix, familyNameSuffix.

2005-Nov-28

Added Japanese examples and definitions for 3 character sets (Kanji, Katakana and Hiragana).

2006-Feb-28

Approved by Consortium

2007-Apr-15

Approved by Consortium

7             Appendix B – Related Documents

Reference

Link

PersonName schema

http://ns.hr-xml.org/2_5/HR-XML-2_5/CPO/PersonName.xsd 

 

Japanese examples

http://ns.hr-xml.org/2_5/HR-XML-2_5/CPO/JP/PersonNameExample1.xml

 

http://ns.hr-xml.org/2_5/HR-XML-2_5/CPO/JP/PersonNameExample2.xml

 

8            Appendix C – Schema Examples

Since the Schema language lends itself to more of an object oriented approach, schema designers can restrict the Person Name schema to match the context.

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

 

   <xsd:complexType name = "MyLegalName">

     <xsd:complexContent>

       <xsd:restriction base = "PersonName">

        <xsd:sequence>

          <xsd:element name = "LegalName" type = "xsd:string"/>

        </xsd:sequence>

       </xsd:restriction>

     </xsd:complexContent>

   </xsd:complexType>

 

   <xsd:element name = "TaxFiler" type = "MyLegalName"/>

    

The xml document would contain the following:

<TaxFiler>

   <LegalName>John P. Smith III</LegalName>

</TaxFiler>

 

Note that the other elements of PersonName are not allowed to appear in MyLegalName.  Also, note that the data element LegalName is now a required data element that can appear once and only once.


8.2            Example 2 – Using PersonNameType vs PersonName element

In the following Schema design, the data element EmployeeName has all of the characteristics of PersonName, simply by defining EmployeeName as type PersonNameType.

Schema Code:

<xsd:element name = "EmployeeName" type = "PersonNameType"/>

 

 

Instance Document Example:

<EmployeeName>

   <GivenName>Lorri</GivenName>

   <MiddleName>Marie</MiddleName>

   <FamilyName>Furay</FamilyName>

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

</EmployeeName>

 

 


Example 2 continued:

In this example, the PersonName data element is just one of many data elements describing the employee.

 

 

Schema Code:

<xsd:element name = "Employee">

     <xsd:complexType>

       <xsd:sequence>

        <xsd:element name = "NewHireInformation">

          <xsd:complexType>

           <xsd:sequence/>

          </xsd:complexType>

        </xsd:element>

        <xsd:element ref = "PersonName"/>

        <xsd:element name = "OfficeLocation">

          <xsd:complexType>

           <xsd:sequence/>

          </xsd:complexType>

        </xsd:element>

        <xsd:element name = "WorkSchedule">

          <xsd:complexType>

           <xsd:sequence/>

          </xsd:complexType>

        </xsd:element>

       </xsd:sequence>

     </xsd:complexType>

   </xsd:element>

 

 

Instance Document Example:

<Employee>

   <NewHireInformation/>

   <PersonName>

     <GivenName>Paul</GivenName>

     <FamilyName>Martin</FamilyName>

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

   </PersonName>

   <OfficeLocation/>

   <WorkSchedule/>

</Employee>