Create Object Format List in v2

Show the structure of an object format list with the optional mediaType information for V2.

Note: This code uses a current beta branch of the version 2.0 d1_common_python source located at https://repository.dataone.org/software/cicore/branches/d1_common_python_v2_vieglais


In [15]:
from d1_common.types import dataoneTypes

object_format_list = dataoneTypes.objectFormatList(start=0)

object_format = dataoneTypes.objectFormat()
object_format.formatId = "eml://ecoinformatics.org/eml-2.0.0"
object_format.formatName = "Ecological Metadata Language, version 2.0.0"
object_format.formatType = "METADATA"
object_format.mediaType = dataoneTypes.mediaType(name='text/xml')
object_format.extension = "xml"
object_format_list.append(object_format)

#
# Note the following object format does not exist in DataONE, it is used as an example 
# of a complete media type
#
object_format = dataoneTypes.objectFormat()
object_format.formatId = "video/H264"
object_format.formatName = "H264 encoded video"
object_format.formatType = "DATA"
object_format.mediaType= dataoneTypes.mediaType(name="video/H264")
object_format.mediaType.property_.append( dataoneTypes.MediaTypeProperty("H44I", name="profile-level-id") )
object_format.mediaType.property_.append( dataoneTypes.MediaTypeProperty("6F", name="max-recv-level") )
object_format.mediaType.property_.append( dataoneTypes.MediaTypeProperty("255", name="sar-supported") )
object_format.extension = "avc"
object_format_list.append(object_format)

object_format_list.count = len(object_format_list.objectFormat)
object_format_list.total = len(object_format_list.objectFormat)

dom = object_format_list.toDOM(None)
xml = dom.toprettyxml(indent="  ")
print xml


<?xml version="1.0" ?>
<ns1:objectFormatList count="2" start="0" total="2" xmlns:ns1="http://ns.dataone.org/service/types/v2.0">
  <objectFormat>
    <formatId>eml://ecoinformatics.org/eml-2.0.0</formatId>
    <formatName>Ecological Metadata Language, version 2.0.0</formatName>
    <formatType>METADATA</formatType>
    <mediaType name="text/xml"/>
    <extension>xml</extension>
  </objectFormat>
  <objectFormat>
    <formatId>video/H264</formatId>
    <formatName>H264 encoded video</formatName>
    <formatType>DATA</formatType>
    <mediaType name="video/H264">
      <property name="profile-level-id">H44I</property>
      <property name="max-recv-level">6F</property>
      <property name="sar-supported">255</property>
    </mediaType>
    <extension>avc</extension>
  </objectFormat>
</ns1:objectFormatList>


In [ ]: