Person Name
Recommendation, 2006 Feb 28
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 statement
©2006 HR-XML. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of the publisher.
Abstract
This document provides all necessary documentation for PersonName, including XML Schema, definitions, and examples.
Status of this Document
2006-Jan: Default values have been removed from the PersonName schema in accordance with the Technical Steering Committee's (TSC) Schema Design Guidelines.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
Table of Contents
1.2 Relationship to Business Processes
2.1 Schema Elements and Data Types Explained
4 Implementation Considerations
6 Appendix A - Schema Revision History
7 Appendix B – Related Documents
8 Appendix C – Schema Examples
8.1 Example 1: Restriction – Design requires a Legal Name only:
8.2 Example 2 – Using PersonNameType vs PersonName element
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.
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.
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.
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.
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).
|
Elements and Attributes [Global types listed alphabetically in following table.] |
ContentModel* |
Definition |
|
/ |
- PersonNameType - (1/1) |
The name of a person. |
|
/ PersonName/ |
- xsd:string - S (0/1) |
Contains, in one string, a fully
formatted name with all of its pieces in their proper place. |
|
/ PersonName/ |
- 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/ |
- 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/ |
- 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/ |
- xsd:string - S (0/1) |
Contains a person's middle name or initial. |
|
/ PersonName/ |
xsd:extension base: 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/ |
xsd:restriction base: xsd:string [Enumerations]: true, false, undefined |
Defines the order when multiple
family names are used. |
|
/ PersonName/ FamilyName/ |
- xsd:string - |
The aristocratic or other prefix
for FamilyName. |
|
/ PersonName/ |
xsd:extension base: xsd:string |
Contains the remaining parts of the PersonName as defined by the type attribute. |
|
/ PersonName/ Affix/ |
xsd:restriction base: xsd:string [Enumerations]: aristocraticTitle, formOfAddress, generation, qualification |
Defines the context for the
affix. |
|
/ PersonName/ |
script - xsd:string
- |
The same information as presented
in the base elements, but represented in a different script. |
|
/ PersonName/ AlternateScript/ |
- 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. |
|
/ PersonName/ AlternateScript/ |
- xsd:string - S (0/1) |
Contains, in one string, a fully
formatted name with all of its pieces in their proper place. |
|
/ PersonName/ AlternateScript/ |
- 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/ |
- 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/ |
- 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/ |
- xsd:string - S (0/1) |
Contains a person's middle name or initial. |
|
/ PersonName/ AlternateScript/ |
xsd:extension base: 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/ |
xsd:restriction base: xsd:string [Enumerations]: true, false, undefined |
Defines the order when multiple
family names are used. |
|
/ PersonName/ AlternateScript/
FamilyName/ |
- xsd:string - |
The aristocratic or other prefix
for FamilyName. |
|
/ PersonName/ AlternateScript/ |
xsd:extension base: xsd:string |
Contains the remaining parts of the PersonName as defined by the type attribute. |
|
/ PersonName/ AlternateScript/
Affix/ |
xsd:restriction base: xsd:string [Enumerations]: aristocraticTitle, formOfAddress, generation, qualification |
Defines the context for the
affix. |
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 <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:
*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:
|
|
Portuguese |
The following abbreviations are used before the proper name or title of the person:
<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. |
·
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.
|
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 |
|
|
2005-Nov-28 |
Added Japanese examples and definitions for 3 character sets (Kanji, Katakana and Hiragana). |
|
2006-Feb-28 |
Approved by Consortium |
|
Reference |
Link |
|
PersonName schema |
http://ns.hr-xml.org/2_4/HR-XML-2_4/CPO/PersonName.xsd
|
|
Japanese examples |
http://ns.hr-xml.org/2_4/HR-XML-2_4/CPO/JP/PersonNameExample1.xml
http://ns.hr-xml.org/2_4/HR-XML-2_4/CPO/JP/PersonNameExample2.xml
|
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.

<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.
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>