Currently, the extensionType dictates that the extensionAuthorityUsed element must be used with extensionWrap. This element should be optional. With the addition of extensionElement and extensionValue to pbcore 2.0, extensionAuthorityUsed should have become optional, and maintained to primarily support legacy migrations from earlier versions of pbcore. We have had to modify the XSD for local uses in order to validate otherwise valid pbcore xml files against the 2.0 schema.
Current schema:
<xsd:complexType name="extensionType">
<xsd:annotation>
<xsd:documentation>"This uses a common structure to allow for the use of multiple,
qualified extensions at the asset, instantiation and essence
levels."</xsd:documentation>
</xsd:annotation>
<xsd:choice>
<xsd:element maxOccurs="unbounded" minOccurs="1" name="extensionWrap">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="extensionElement" type="xsd:string">
<xsd:annotation>
<xsd:documentation xml:lang="en">"The descriptor extensionElement provides
metadata descriptions crafted into metadata dictionaries and schemas
outside of the PBCore Metadata Dictionary Project. These extensions
fulfill the metadata requirements for communities identifying and
describing their own types of media with specialized, custom
terminologies."</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="1" name="extensionValue" type="xsd:string">
<xsd:annotation>
<xsd:documentation xml:lang="en">"Use extensionValue to express the actual
data value of the label indicated by
extensionElement."</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="1" name="extensionAuthorityUsed"
type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation xml:lang="en">"If metadata extensions to PBCore are
assigned to a media item with the descriptor extensionElement, and the
terms used are derived from a specific authority or metadata scheme, use
extensionAuthorityUsed to identify whose metadata extensions are being
used."</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="annotation" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element maxOccurs="unbounded" minOccurs="1" name="extensionEmbedded"
type="embeddedType"> </xsd:element>
</xsd:choice>
</xsd:complexType>
Recommended change:
<xsd:complexType name="extensionType">
<xsd:annotation>
<xsd:documentation>"This uses a common structure to allow for the use of multiple,
qualified extensions at the asset, instantiation and essence
levels."</xsd:documentation>
</xsd:annotation>
<xsd:choice>
<xsd:element maxOccurs="unbounded" minOccurs="1" name="extensionWrap">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="extensionElement" type="xsd:string">
<xsd:annotation>
<xsd:documentation xml:lang="en">"The descriptor extensionElement provides
metadata descriptions crafted into metadata dictionaries and schemas
outside of the PBCore Metadata Dictionary Project. These extensions
fulfill the metadata requirements for communities identifying and
describing their own types of media with specialized, custom
terminologies."</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="1" name="extensionValue" type="xsd:string">
<xsd:annotation>
<xsd:documentation xml:lang="en">"Use extensionValue to express the actual
data value of the label indicated by
extensionElement."</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="extensionAuthorityUsed"
type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation xml:lang="en">"If metadata extensions to PBCore are
assigned to a media item with the descriptor extensionElement, and the
terms used are derived from a specific authority or metadata scheme, use
extensionAuthorityUsed to identify whose metadata extensions are being
used."</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="annotation" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element maxOccurs="unbounded" minOccurs="1" name="extensionEmbedded"
type="embeddedType"> </xsd:element>
</xsd:choice>
</xsd:complexType>
Currently, the extensionType dictates that the extensionAuthorityUsed element must be used with extensionWrap. This element should be optional. With the addition of extensionElement and extensionValue to pbcore 2.0, extensionAuthorityUsed should have become optional, and maintained to primarily support legacy migrations from earlier versions of pbcore. We have had to modify the XSD for local uses in order to validate otherwise valid pbcore xml files against the 2.0 schema.
Current schema:
Recommended change: