Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

change extensionAuthorityUsed to minOccurs='0' #88

Open
kvanmalssen opened this issue Sep 18, 2014 · 0 comments
Open

change extensionAuthorityUsed to minOccurs='0' #88

kvanmalssen opened this issue Sep 18, 2014 · 0 comments
Labels

Comments

@kvanmalssen
Copy link
Collaborator

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>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant