PBCore XML Schema

PBCore is a metadata standard designed to describe media, both digital and analog. The PBCore XML Schema Definition (XSD) defines the structure and content of PBCore. The current release (PBCore 2.1) of the XSD can be viewed via our GitHub repository or you can download the .xsd file. The previous release (PBCore 2.) can be downloaded here.

PBCore 2.1 was created by the public broadcasting community in the United States of America for use by public broadcasters and others. PBCore is built on the foundation of the Dublin Core (ISO 15836), an international standard for resource discovery. PBCore was developed with funding provided by the Corporation for Public Broadcasting and is maintained by WGBH with support and guidance from the AMIA PBCore Advisory Sub-Committee.


PBCore 2.1 is made up of 15 containers and 82 elements, and makes use of 49 XML attributes. Attributes are used to further qualify or describe the elements and their values. Not all attributes can be used to describe every element. On this site, each element has a page which describes what attributes can be used with that element.

Within a PBCore XML Document, the order and structure of the elements is determined by the XSD. Elements must included in the correct order, or the XML document will not validate. You can find a listing of the correct order of subelements in PBCore on the Elements Hierarchy page.

For a glossary of terms used in the PBCore schema, visit the Glossary page on this site.

Revisions from PBCore 2.0 to PBCore 2.1

PBCore 2.1 is an incremental update to the PBCore 2.0 schema that provides clearer element definitions and more options to include detailed source information for metadata, while still being backwards compatible with PBCore 2.0.

Changes for 2.1 include:

1. the option to include @source, @ref, @version, @annotation information to all non-container elements.

2. the addition of new optional attribute groups for the following elements:

for pbcoreTitle:

  • @titleTypeSource
  • @titleTypeRef
  • @titleTypeVersion
  • @titleTypeAnnotation

for pbcoreSubject:

  • @subjectTypeSource
  • @subjectTypeRef
  • @subjectTypeVersion
  • @subjectTypeAnnotation

for pbcorePart:

  • @partType
  • @partTypeSource
  • @partTypeRef
  • @partTypeVersion
  • @partTypeAnnotation

for creator, contributor and publisher:

  • @affiliationSource
  • @affiliationRef
  • @affiliationVersion
  • @affiliationAnnotation

3. the addition of a @unitofmeasure attribute to the element essenceTrackBitDepth

4. the change of the elements instantiationLanguage and essenceTrackLanguage from non-repeatable to repeatable

5. the change of the element extensionAuthorityUsed from required to optional within the container extensionWrap

6. overall updated definitions and best practices for each element

For more information on the process and rationale behind the development of PBCore 2.1, see the “Read Me” on the PBCore 2.1 GitHub repository.