instantiationLanguage identifies the primary language of the tracks’ audio or text. Languages must be indicated using 3-letter codes standardized in ISO 639-2 or 639-3. If an instantiation includes more than one language, the element can be repeated. Alternately, both languages can be expressed in one element by separating two three-letter codes with a semicolon, i.e. eng;fre.

Best practices: Alternative audio or text tracks and their associated languages should be identified using the element instantiationAlternativeModes.

instantiationLanguage can be contained by pbcoreInstantiation, pbcoreInstantiationDocument, or instantiationPart.

Usage: optional, repeatable.


  • source – optional. The source attribute provides the name of the authority used to declare the value of the element. Different elements will use the source attribute slightly differently. For example, identifier source (required) should be the name of the organization, institution, system or namespace that the identifier came from, such as “PBS NOLA Code” or an institutional database identifier. For other elements, this might be the name of a controlled vocabulary, namespace or authority list, such as Library of Congress Subject Headings. We recommend a consistent and human readable use.
  • ref – optional. The ref attribute is used to supply a source’s URI for the value of the element. Attribute ref can be used to point to a term in a controlled vocabulary, or a URI associated with a source.
  • version optional. The version attribute identifies any version information about the authority or convention used to express data of this element.
  • annotation – optional. The annotation attribute includes narrative information intended to clarify the nature of data used in the element. This attribute can be used as a notes field to include any additional information about the element or associated attributes.


instantiationLanguage contains no subelements.

Controlled Vocabularies

PBCore requires the use of the ISO 639.2 or ISO 639.3 3-letter language codes.


Submit any issues or suggested changes for future schema iterations by creating a ticket in our Github repository.