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

PBCore 2.1 XSD, current release, 2015: click here to visit the GitHub repository, and “download .ZIP” on the right sidebar to download the schema, “Read Me” document and license documents.

PBCore 2.1 Visualization


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.


PBCore 2.1 is made up of 4 content classes, 15 containers, and 82 elements. PBCore 2.1 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 under Element Hierarchy on the Elements 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 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
  1. the addition of a @unitofmeasure attribute to the element essenceTrackBitDepth
  2. the change of the elements instantiationLanguage and essenceTrackLanguage from non-repeatable to repeatable
  3. the change of the element extensionAuthorityUsed from required to optional within the container extensionWrap
  4. 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.  

Previous Versions

Copyright 2015, WGBH Educational Foundation, on behalf of the American Archive of Public Broadcasting