public static function dependsOn() { $bulkUploadXmlVersion = new KalturaVersion(self::BULK_UPLOAD_XML_VERSION_MAJOR, self::BULK_UPLOAD_XML_VERSION_MINOR, self::BULK_UPLOAD_XML_VERSION_BUILD); $bulkUploadXmlDependency = new KalturaDependency(BulkUploadXmlPlugin::getPluginName(), $bulkUploadXmlVersion); $metadataDependency = new KalturaDependency(MetadataPlugin::getPluginName()); return array($bulkUploadXmlDependency, $metadataDependency); }
/** * Add bulk upload job * @param DropFolder $folder * @param DropFolderFile $leadDropFolderFile * @throws Exception */ private function addXMLBulkUploadJob(DropFolder $folder, DropFolderFile $leadDropFolderFile) { /* @var $leadDropFolderFile FeedDropFolderFile */ KalturaLog::info('Adding BulkUpload job'); try { $coreBulkUploadType = BulkUploadXmlPlugin::getBulkUploadTypeCoreValue(BulkUploadXmlType::XML); $objectId = $leadDropFolderFile->getId(); $objectType = DropFolderXmlBulkUploadPlugin::getBatchJobObjectTypeCoreValue(DropFolderBatchJobObjectType::DROP_FOLDER_FILE); $partner = PartnerPeer::retrieveByPK($folder->getPartnerId()); $data = KalturaPluginManager::loadObject('kBulkUploadJobData', $coreBulkUploadType); /* @var $data kBulkUploadJobData */ $data->setUploadedBy(kDropFolderXmlEventsConsumer::UPLOADED_BY); KalturaLog::info("Feed XML path: " . $leadDropFolderFile->getFeedXmlPath()); $data->setFilePath($leadDropFolderFile->getFeedXmlPath()); $data->setFileName(basename($data->getFilePath()) . '.xml'); $objectData = new kBulkUploadEntryData(); KalturaLog::info('Conversion profile id: ' . $folder->getConversionProfileId()); $objectData->setConversionProfileId($folder->getConversionProfileId()); $data->setObjectData($objectData); $job = kJobsManager::addBulkUploadJob($partner, $data, $coreBulkUploadType, $objectId, $objectType); $this->setFileToProcessing($leadDropFolderFile); return $job; } catch (Exception $e) { KalturaLog::err("Error adding BulkUpload job -" . $e->getMessage()); throw new Exception(DropFolderXmlBulkUploadPlugin::ERROR_ADDING_BULK_UPLOAD_MESSAGE, DropFolderXmlBulkUploadPlugin::getErrorCodeCoreValue(DropFolderXmlBulkUploadErrorCode::ERROR_ADDING_BULK_UPLOAD)); } }
public static function dependsOn() { $bulkUploadXmlVersion = new KalturaVersion(self::BULK_UPLOAD_XML_VERSION_MAJOR, self::BULK_UPLOAD_XML_VERSION_MINOR, self::BULK_UPLOAD_XML_VERSION_BUILD); $contentDistributionVersion = new KalturaVersion(self::CONTENT_DSTRIBUTION_VERSION_MAJOR, self::CONTENT_DSTRIBUTION_VERSION_MINOR, self::CONTENT_DSTRIBUTION_VERSION_BUILD); $bulkUploadXmlDependency = new KalturaDependency(BulkUploadXmlPlugin::getPluginName(), $bulkUploadXmlVersion); $contentDistributionDependency = new KalturaDependency(ContentDistributionPlugin::getPluginName(), $contentDistributionVersion); return array($bulkUploadXmlDependency, $contentDistributionDependency); }
/** * @return array */ public static function getAdditionalDescriptions() { return array(BulkUploadXmlPlugin::getApiValue(self::BULK_UPLOAD_XML) => 'Bulk upload', BulkUploadXmlPlugin::getApiValue(self::BULK_UPLOAD_RESULT_XML) => 'Bulk upload results'); }
public static function contributeToSchema($type) { $coreType = kPluginableEnumsManager::apiToCore('SchemaType', $type); if ($coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_XML) && $coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_RESULT_XML)) { return null; } $xsd = ' <!-- ' . self::getPluginName() . ' --> <xs:complexType name="T_subTitles"> <xs:sequence> <xs:element name="action" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation> The action to apply:<br/> Update - Update existing subtitles<br/> </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="update" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element ref="subTitle" maxOccurs="unbounded" minOccurs="0"> <xs:annotation> <xs:documentation>All subTitles elements</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="T_subTitle"> <xs:sequence> <xs:element name="tags" minOccurs="1" maxOccurs="1" type="T_tags"> <xs:annotation> <xs:documentation>Specifies specific tags you want to set for the flavor asset</xs:documentation> </xs:annotation> </xs:element> <xs:choice minOccurs="1" maxOccurs="1"> <xs:element ref="serverFileContentResource" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Specifies that content ingestion location is on a Kaltura hosted server</xs:documentation> </xs:annotation> </xs:element> <xs:element ref="urlContentResource" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Specifies that content file location is a URL (http,ftp)</xs:documentation> </xs:annotation> </xs:element> <xs:element ref="remoteStorageContentResource" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Specifies that content file location is a path within a Kaltura defined remote storage</xs:documentation> </xs:annotation> </xs:element> <xs:element ref="remoteStorageContentResources" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Set of content files within several Kaltura defined remote storages</xs:documentation> </xs:annotation> </xs:element> <xs:element ref="entryContentResource" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Specifies that content is a Kaltura entry</xs:documentation> </xs:annotation> </xs:element> <xs:element ref="assetContentResource" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Specifies that content is a Kaltura asset</xs:documentation> </xs:annotation> </xs:element> <xs:element ref="contentResource-extension" minOccurs="1" maxOccurs="1" /> </xs:choice> <xs:element ref="subtitle-extension" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> <xs:attribute name="captionParamsId" type="xs:int" use="optional"> <xs:annotation> <xs:documentation>The asset id to be updated with this resource used only for update</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="captionParams" type="xs:string" use="optional"> <xs:annotation> <xs:documentation>System name of caption params to be associated with the caption asset</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="captionAssetId" type="xs:string" use="optional"> <xs:annotation> <xs:documentation>ID of caption params to be associated with the caption asset</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="isDefault" type="xs:boolean" use="optional"> <xs:annotation> <xs:documentation>Specifies if this asset is the default caption asset</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="format" type="KalturaCaptionType" use="optional"> <xs:annotation> <xs:documentation>Caption asset file format</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="lang" type="KalturaLanguage" use="optional"> <xs:annotation> <xs:documentation>Caption asset file language</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:element name="subtitle-extension" /> <xs:element name="subTitles" type="T_subTitles" substitutionGroup="item-extension"> <xs:annotation> <xs:documentation>All subTitles elements</xs:documentation> <xs:appinfo> <example> <subTitles> <action>update</action> <subTitle>...</subTitle> <subTitle>...</subTitle> <subTitle>...</subTitle> </subTitles> </example> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="subTitle" type="T_subTitle"> <xs:annotation> <xs:documentation>A single caption asset element</xs:documentation> <xs:appinfo> <example> <subTitle isDefault="true" format="2" lang="Hebrew"> <tags> <tag>tag1</tag> <tag>tag2</tag> </tags> <urlContentResource url="http://my.domain/path/caption.srt"/> </subTitle> </example> </xs:appinfo> </xs:annotation> </xs:element> '; return $xsd; }
public static function contributeToSchema($type) { $coreType = kPluginableEnumsManager::apiToCore('SchemaType', $type); if ($coreType == SchemaType::SYNDICATION || $coreType == BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_XML) || $coreType == BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_RESULT_XML)) { return ' <!-- ' . self::getPluginName() . ' --> <xs:element name="scene-customData" type="T_customData" substitutionGroup="scene-extension"> <xs:annotation> <xs:documentation>XML for custom metadata</xs:documentation> <xs:appinfo> <example> <scene-ad-cue-point entryId="{entry id}"> <sceneStartTime>00:00:05</sceneStartTime> <sceneTitle>my ad title</sceneTitle> <sourceUrl>http://source.to.my/ad.xml</sourceUrl> <adType>1</adType> <protocolType>1</protocolType> <scene-customData metadataProfile="MY_AD_METADATA_PROFILE_SYSTEM_NAME"> <metadata> <adData>my ad custom data</adData> </metadata> </scene-customData> </scene-ad-cue-point> </example> </xs:appinfo> </xs:annotation> </xs:element> '; } if ($coreType == CuePointPlugin::getSchemaTypeCoreValue(CuePointSchemaType::INGEST_API)) { return ' <!-- ' . self::getPluginName() . ' --> <xs:complexType name="T_customData"> <xs:sequence> <xs:any namespace="##local" processContents="skip" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Custom metadata XML according to schema profile</xs:documentation> </xs:annotation> </xs:any> </xs:sequence> <xs:attribute name="metadataId" use="optional" type="xs:int"> <xs:annotation> <xs:documentation>Id of the custom metadata object</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="metadataProfile" use="optional" type="xs:string"> <xs:annotation> <xs:documentation>Custom metadata schema profile system name</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="metadataProfileId" use="optional" type="xs:int"> <xs:annotation> <xs:documentation>Custom metadata schema profile id</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:element name="scene-customData" type="T_customData" substitutionGroup="scene-extension"> <xs:annotation> <xs:documentation>XML for custom metadata</xs:documentation> <xs:appinfo> <example> <scene-ad-cue-point entryId="{entry id}"> <sceneStartTime>00:00:05</sceneStartTime> <sceneTitle>my ad title</sceneTitle> <sourceUrl>http://source.to.my/ad.xml</sourceUrl> <adType>1</adType> <protocolType>1</protocolType> <scene-customData metadataProfile="MY_AD_METADATA_PROFILE_SYSTEM_NAME"> <metadata> <adData>my ad custom data</adData> </metadata> </scene-customData> </scene-ad-cue-point> </example> </xs:appinfo> </xs:annotation> </xs:element> '; } if ($coreType == CuePointPlugin::getSchemaTypeCoreValue(CuePointSchemaType::SERVE_API)) { return ' <!-- ' . self::getPluginName() . ' --> <xs:complexType name="T_customData"> <xs:sequence> <xs:any namespace="##local" processContents="skip" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Custom metadata XML according to schema profile</xs:documentation> </xs:annotation> </xs:any> </xs:sequence> <xs:attribute name="metadataId" use="required" type="xs:int"> <xs:annotation> <xs:documentation>Id of the custom metadata object</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="metadataVersion" use="required" type="xs:int"> <xs:annotation> <xs:documentation>Custom metadata version</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="metadataProfile" use="optional" type="xs:string"> <xs:annotation> <xs:documentation>Custom metadata schema profile system name</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="metadataProfileId" use="required" type="xs:int"> <xs:annotation> <xs:documentation>Custom metadata schema profile id</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="metadataProfileName" use="optional" type="xs:string"> <xs:annotation> <xs:documentation>Custom metadata schema profile name</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="metadataProfileVersion" use="required" type="xs:int"> <xs:annotation> <xs:documentation>Custom metadata schema profile version</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:element name="scene-customData" type="T_customData" substitutionGroup="scene-extension"> <xs:annotation> <xs:documentation>XML for custom metadata</xs:documentation> <xs:appinfo> <example> <scene-ad-cue-point entryId="{entry id}"> <sceneStartTime>00:00:05</sceneStartTime> <sceneTitle>my ad title</sceneTitle> <sourceUrl>http://source.to.my/ad.xml</sourceUrl> <adType>1</adType> <protocolType>1</protocolType> <scene-customData metadataId="{metadata id}" metadataVersion="1" metadataProfile="MY_METADATA_PROFILE_SYSTEM_NAME}" metadataProfileId="{metadata profile id}" metadataProfileName="my metadata profile" metadataProfileVersion="1" > <metadata> <adData>my ad custom data</adData> </metadata> </scene-customData> </scene-ad-cue-point> </example> </xs:appinfo> </xs:annotation> </xs:element> '; } return null; }
public static function contributeToSchema($type) { $coreType = kPluginableEnumsManager::apiToCore('SchemaType', $type); if ($coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_XML) && $coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_RESULT_XML)) { return null; } $xmlnsBase = "http://" . kConf::get('www_host') . "/{$type}"; $xmlnsPlugin = "http://" . kConf::get('www_host') . "/{$type}/" . self::getPluginName(); $xsd = ' <!-- ' . self::getPluginName() . ' --> <xs:complexType name="T_scene_codeCuePointBulkUploadXml"> <xs:complexContent> <xs:extension base="T_scene"> <xs:sequence> <xs:element name="sceneEndTime" minOccurs="0" maxOccurs="1" type="xs:time"> <xs:annotation> <xs:documentation>A cue point that marks the end time</xs:documentation> </xs:annotation> </xs:element> <xs:element name="code" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>Textual code</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="250"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"> <xs:annotation> <xs:documentation>A free text description</xs:documentation> </xs:annotation> </xs:element> <xs:element ref="scene-extension" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element name="scene-code-cue-point" type="T_scene_codeCuePointBulkUploadXml" substitutionGroup="scene"> <xs:annotation> <xs:documentation>A single code cue point element</xs:documentation> <xs:appinfo> <example> <scene-code-cue-point entryId="{entry id}"> <sceneStartTime>00:00:05.3</sceneStartTime> <tags> <tag>tag1</tag> <tag>tag2</tag> </tags> <code>MY_CODE</code> <description>my code cue point description</description> </scene-code-cue-point> </example> </xs:appinfo> </xs:annotation> </xs:element> '; return $xsd; }
public static function contributeToSchema($type) { $coreType = kPluginableEnumsManager::apiToCore('SchemaType', $type); if ($coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_XML) && $coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_RESULT_XML)) { return null; } $xsd = ' <!-- ' . self::getPluginName() . ' --> <xs:complexType name="T_distribution"> <xs:sequence> <xs:choice minOccurs="1" maxOccurs="1"> <xs:element name="distributionProvider" minOccurs="1" maxOccurs="1" type="KalturaDistributionProviderType"> <xs:annotation> <xs:documentation>The provider (Distribution Partner) that the entry is distributed to</xs:documentation> </xs:annotation> </xs:element> <xs:element name="distributionProfileId" minOccurs="1" maxOccurs="1" type="xs:int"> <xs:annotation> <xs:documentation>The identifier of the distribution profile to use for entry distribution</xs:documentation> </xs:annotation> </xs:element> <xs:element name="distributionProfile" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>The system name of the distribution profile to use for entry distribution</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="120"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:choice> <xs:element name="sunrise" minOccurs="0" maxOccurs="1" type="xs:dateTime"> <xs:annotation> <xs:documentation> The date and time that the entry becomes available on the remote site.<br/> If not specified, the entry scheduling date and time are used. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="sunset" minOccurs="0" maxOccurs="1" type="xs:dateTime"> <xs:annotation> <xs:documentation> The date and time that the entry becomes unavailable on the remote site.<br/> If not specified, the entry scheduling date and time are used. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="flavorAssetIds" minOccurs="0" maxOccurs="1" type="xs:string"> <xs:annotation> <xs:documentation> Comma-separated list of existing flavor asset IDs for the distribution destination.<br/> Used only for an existing entry. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="thumbAssetIds" minOccurs="0" maxOccurs="1" type="xs:string"> <xs:annotation> <xs:documentation> Comma-separated list of existing thumbnail asset IDs for the distribution destination.<br/> Used only for an existing entry. </xs:documentation> </xs:annotation> </xs:element> <xs:element ref="distribution-extension" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> <xs:attribute name="entryDistributionId" use="optional" type="xs:int"> <xs:annotation> <xs:documentation>The identifier of an entry distribution object that an update/delete action applies to</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="submitWhenReady" use="optional" type="xs:boolean" default="false"> <xs:annotation> <xs:documentation>Indicates that the entry should be submitted when it is possible</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:complexType name="T_distributions"> <xs:sequence> <xs:element ref="distribution" maxOccurs="unbounded" minOccurs="0"> <xs:annotation> <xs:documentation>All distributions</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:element name="distributions" type="T_distributions" substitutionGroup="item-extension"> <xs:annotation> <xs:documentation>All custom metadata elemets</xs:documentation> <xs:appinfo> <example> <distributions> <distribution> <distributionProfile>MY_DISTRIBUTION_PROFILE</distributionProfile> <sunrise>2011-10-26T21:32:52</sunrise> <sunset>2011-12-26T21:32:52</sunset> </distribution> </distributions> </example> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="distribution" type="T_distribution"> <xs:annotation> <xs:documentation>Details related to a content distribution submission</xs:documentation> <xs:appinfo> <example> <distribution> <distributionProfile>MY_DISTRIBUTION_PROFILE</distributionProfile> <sunrise>2011-10-26T21:32:52</sunrise> <sunset>2011-12-26T21:32:52</sunset> </distribution> </example> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="distribution-extension" /> '; return $xsd; }
public static function contributeToSchema($type) { $coreType = kPluginableEnumsManager::apiToCore('SchemaType', $type); if ($coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_XML) && $coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_RESULT_XML)) { return null; } $xsd = ' <!-- ' . self::getPluginName() . ' --> <xs:complexType name="T_scenes"> <xs:sequence> <xs:element name="action" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation> The action to apply from the item element:<br/> Update - Update an existing entry<br/> </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="update" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element ref="scene" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation>A cue point element</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="T_scene" abstract="true"> <xs:sequence> <xs:element name="sceneStartTime" minOccurs="1" maxOccurs="1" type="xs:time"> <xs:annotation> <xs:documentation>A cue point that marks the start time</xs:documentation> </xs:annotation> </xs:element> <xs:element ref="tags" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>Searchable keywords associated with a cue point</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:attribute name="sceneId" use="optional"> <xs:annotation> <xs:documentation>The identifier of the cue point that an update/delete action applies to</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="250"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="systemName" use="optional"> <xs:annotation> <xs:documentation>The system name of the cue point that an update/delete action applies to</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="120"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:element name="scenes" type="T_scenes" substitutionGroup="item-extension"> <xs:annotation> <xs:documentation>A cue points wrapper element</xs:documentation> <xs:appinfo> <example> <scenes> <action>update</action> <scene-ad-cue-point entryId="{entry id}" systemName="MY_AD_CUE_POINT_SYSTEM_NAME">...</scene-ad-cue-point> <scene-annotation entryId="{entry id}" systemName="MY_ANNOTATION_PARENT_SYSTEM_NAME">...</scene-annotation> <scene-annotation entryId="{entry id}">...</scene-annotation> <scene-code-cue-point entryId="{entry id}">...</scene-code-cue-point> </scenes> </example> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="scene" type="T_scene"> <xs:annotation> <xs:documentation> A base cue point element. This is an abstract element and cannot be used. Use only extended elements. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="scene-extension" /> '; return $xsd; }
public static function contributeToSchema($type) { $coreType = kPluginableEnumsManager::apiToCore('SchemaType', $type); if ($coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_XML) && $coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_RESULT_XML)) { return null; } $xsd = ' <!-- ' . self::getPluginName() . ' --> <xs:complexType name="T_widevineAssets"> <xs:sequence> <xs:element name="action" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation> The action to apply:<br/> Update - Update existing asset<br/> </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="update" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element ref="widevineAsset" maxOccurs="unbounded" minOccurs="0"> <xs:annotation> <xs:documentation>All widevine elements</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="T_widevineAsset"> <xs:sequence> <xs:element name="widevineAssetId" minOccurs="1" maxOccurs="1" type="xs:long"> <xs:annotation> <xs:documentation>widevine asset id</xs:documentation> </xs:annotation> </xs:element> <xs:element name="flavorParamsId" minOccurs="1" maxOccurs="1" type="xs:long"> <xs:annotation> <xs:documentation>widevine asset flavor params Id</xs:documentation> </xs:annotation> </xs:element> <xs:element maxOccurs="1" minOccurs="0" name="widevineDistributionStartDate" type="xs:dateTime"> <xs:annotation> <xs:documentation> The license distribution window start date.<br/> </xs:documentation> </xs:annotation> </xs:element> <xs:element maxOccurs="1" minOccurs="0" name="widevineDistributionEndDate" type="xs:dateTime"> <xs:annotation> <xs:documentation> The license distribution window end date.<br/> </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:attribute name="flavorAssetId" type="xs:string" use="optional"> <xs:annotation> <xs:documentation>The asset id to be updated with this resource used only for update</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:element name="widevineAsset-extension" /> <xs:element name="widevineAssets" type="T_widevineAssets" substitutionGroup="item-extension"> <xs:annotation> <xs:documentation>All widevine elements</xs:documentation> <xs:appinfo> <example> <widevineAssets> <action>update</action> <widevineAsset>...</widevineAsset> <widevineAsset>...</widevineAsset> <widevineAsset>...</widevineAsset> </widevineAssets> </example> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="widevineAsset" type="T_widevineAsset" substitutionGroup="item-extension"> <xs:annotation> <xs:documentation>Widevine asset element</xs:documentation> <xs:appinfo> <example> <widevineAsset flavorAssetId="{asset id}"> <widevineAssetId>123456</widevineAssetId> <flavorParamsId>61</flavorParamsId> <widevineDistributionStartDate>2011-05-05T00:00:00</widevineDistributionStartDate> <widevineDistributionEndDate>2014-05-19T00:00:00</widevineDistributionEndDate> </widevineAsset> </example> </xs:appinfo> </xs:annotation> </xs:element> '; return $xsd; }
public static function contributeToSchema($type) { $coreType = kPluginableEnumsManager::apiToCore('SchemaType', $type); if ($coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_XML) && $coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_RESULT_XML)) { return null; } $xsd = ' <!-- ' . self::getPluginName() . ' --> <xs:complexType name="T_customData"> <xs:sequence> <xs:element name="action" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation> The action to apply:<br/> transformXslt - transform metadata object using Xslt<br/> </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="transformXslt" /> <xs:enumeration value="replace" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="xslt" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation> The xslt to transform on the current metadata object </xs:documentation> </xs:annotation> </xs:element> <xs:element ref="xmlData" maxOccurs="1" minOccurs="0"> <xs:annotation> <xs:documentation>metadata xml Data</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:attribute name="metadataId" use="optional" type="xs:int"> <xs:annotation> <xs:documentation>The identifier of the custom metadata object that an update/delete action applies to</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="metadataProfile" use="optional"> <xs:annotation> <xs:documentation>The schema profile system name of the custom metadata</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="120"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="metadataProfileId" use="optional" type="xs:int"> <xs:annotation> <xs:documentation>The schema profile identifier of the custom metadata</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:complexType name="T_xmlData"> <xs:sequence> <xs:any namespace="##local" processContents="skip" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>The XML for custom metadata according to a schema profile</xs:documentation> </xs:annotation> </xs:any> </xs:sequence> </xs:complexType> <xs:complexType name="T_customDataItems"> <xs:sequence> <xs:element name="action" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation> The action to apply:<br/> Update - Update metadata for existing entry<br/> </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="update" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element ref="customData" maxOccurs="unbounded" minOccurs="0"> <xs:annotation> <xs:documentation>All custom data elemets</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:element name="customDataItems" type="T_customDataItems" substitutionGroup="item-extension"> <xs:annotation> <xs:documentation>All custom metadata elemets</xs:documentation> <xs:appinfo> <example> <customDataItems> <action>update</action> <customData>...</customData> <customData>...</customData> <customData>...</customData> </customDataItems> </example> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="customData" type="T_customData"> <xs:annotation> <xs:documentation>XML for custom metadata</xs:documentation> <xs:appinfo> <example> <customData metadataId="{metadata id}" metadataProfile="MY_METADATA_PROFILE_SYSTEM_NAME}" metadataProfileId="{metadata profile id}" > <action>transformXslt</action> <xslt></xslt> <xmlData> <metadata> <TextFieldName>entry field value</TextFieldName> <MultipleTextFieldName>entry multiple text field value1</MultipleTextFieldName> <MultipleTextFieldName>entry multiple text field value2</MultipleTextFieldName> <TextSelectionListFieldName>entry selected text value</TextSelectionListFieldName> <DateFieldName>21741540</DateFieldName> <EntryIDFieldName>0_5b3t2c8z</EntryIDFieldName> </metadata> </xmlData> </customData> </example> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="xmlData" type="T_xmlData"> <xs:annotation> <xs:documentation>XML data for custom metadata</xs:documentation> <xs:appinfo> <example> <xmlData> <metadata> <TextFieldName>entry field value</TextFieldName> <MultipleTextFieldName>entry multiple text field value1</MultipleTextFieldName> <MultipleTextFieldName>entry multiple text field value2</MultipleTextFieldName> <TextSelectionListFieldName>entry selected text value</TextSelectionListFieldName> <DateFieldName>21741540</DateFieldName> <EntryIDFieldName>0_5b3t2c8z</EntryIDFieldName> </metadata> </xmlData> </example> </xs:appinfo> </xs:annotation> </xs:element> '; return $xsd; }
public static function contributeToSchema($type) { $coreType = kPluginableEnumsManager::apiToCore('SchemaType', $type); if ($coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_XML) && $coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_RESULT_XML)) { return null; } $xsd = ' <!-- ' . self::getPluginName() . ' --> <xs:complexType name="T_scene_annotationBulkUploadXml"> <xs:complexContent> <xs:extension base="T_scene"> <xs:sequence> <xs:element name="sceneEndTime" minOccurs="1" maxOccurs="1" type="xs:time"> <xs:annotation> <xs:documentation>A cue point that marks the end time</xs:documentation> </xs:annotation> </xs:element> <xs:element name="sceneText" minOccurs="0" maxOccurs="1" type="xs:string"> <xs:annotation> <xs:documentation>A free text description</xs:documentation> </xs:annotation> </xs:element> <xs:choice minOccurs="0" maxOccurs="1"> <xs:element name="parent" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>The system name of a parent annotation</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="120"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="parentId" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>The identifier of a parent annotation</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="250"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:choice> <xs:element ref="scene-extension" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element name="scene-annotation" type="T_scene_annotationBulkUploadXml" substitutionGroup="scene"> <xs:annotation> <xs:documentation>A single annotation cue point element</xs:documentation> <xs:appinfo> <example title="XML Example 1: Single annotation"> <scene-annotation entryId="{entry id}"> <sceneStartTime>00:00:05.3</sceneStartTime> <tags> <tag>tag1</tag> <tag>tag2</tag> </tags> <sceneEndTime>00:00:10</sceneEndTime> <sceneText>my annotation</sceneText> </scene-annotation> </example> <example title="Example 2: Multiple related annotations"> <scene-annotation entryId="{entry id}" systemName="MY_ANNOTATION_PARENT_SYSTEM_NAME"> <sceneStartTime>00:00:05.3</sceneStartTime> <tags> <tag>tag1</tag> <tag>tag2</tag> </tags> <sceneEndTime>00:00:10</sceneEndTime> <sceneText>my annotation parent</sceneText> </scene-annotation> <scene-annotation entryId="{entry id}"> <sceneStartTime>00:00:05.3</sceneStartTime> <tags> <tag>tag3</tag> <tag>tag4</tag> </tags> <sceneEndTime>00:00:10</sceneEndTime> <sceneText>my annotation child</sceneText> <parent>MY_ANNOTATION_PARENT_SYSTEM_NAME</parent> </scene-annotation> </example> </xs:appinfo> </xs:annotation> </xs:element> '; return $xsd; }
public static function contributeToSchema($type) { $coreType = kPluginableEnumsManager::apiToCore('SchemaType', $type); if ($coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_XML) && $coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_RESULT_XML)) { return null; } $xsd = ' <!-- ' . self::getPluginName() . ' --> <xs:complexType name="T_scene_adCuePointBulkUploadXml"> <xs:complexContent> <xs:extension base="T_scene"> <xs:sequence> <xs:element name="sceneEndTime" minOccurs="0" maxOccurs="1" type="xs:time"> <xs:annotation> <xs:documentation>A cue point that marks the end time</xs:documentation> </xs:annotation> </xs:element> <xs:element name="sceneTitle" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>Text that defines the title</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="250"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="sourceUrl" minOccurs="0" maxOccurs="1" type="xs:string"> <xs:annotation> <xs:documentation>The URL of the ad XML</xs:documentation> </xs:annotation> </xs:element> <xs:element name="adType" minOccurs="1" maxOccurs="1" type="KalturaAdType"> <xs:annotation> <xs:documentation>Indicates the ad type</xs:documentation> </xs:annotation> </xs:element> <xs:element name="protocolType" minOccurs="1" maxOccurs="1" type="KalturaAdProtocolType"> <xs:annotation> <xs:documentation>Indicates the ad protocol type</xs:documentation> </xs:annotation> </xs:element> <xs:element ref="scene-extension" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element name="scene-ad-cue-point" type="T_scene_adCuePointBulkUploadXml" substitutionGroup="scene"> <xs:annotation> <xs:documentation>A single advertisement cue point element</xs:documentation> <xs:appinfo> <example> <scene-ad-cue-point systemName="MY_AD_CUE_POINT_SYSTEM_NAME"> <sceneStartTime>00:00:05</sceneStartTime> <tags> <tag>tag1</tag> <tag>tag2</tag> </tags> <sceneTitle>my ad title</sceneTitle> <sourceUrl>http://source.to.my/ad.xml</sourceUrl> <adType>1</adType> <protocolType>1</protocolType> </scene-ad-cue-point> </example> </xs:appinfo> </xs:annotation> </xs:element> '; return $xsd; }
public function setType() { $this->type = kPluginableEnumsManager::coreToApi("KalturaBulkUploadType", BulkUploadXmlPlugin::getApiValue(BulkUploadXmlType::XML)); }
public static function contributeToSchema($type) { $coreType = kPluginableEnumsManager::apiToCore('SchemaType', $type); if ($coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_XML) && $coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_RESULT_XML)) { return null; } $xsd = ' <!-- ' . self::getPluginName() . ' --> <xs:complexType name="T_attachments"> <xs:sequence> <xs:element name="action" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation> The action to apply:<br/> Update - Update existing attachment<br/> </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="update" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element ref="attachment" maxOccurs="unbounded" minOccurs="0"> <xs:annotation> <xs:documentation>All attachment elements</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="T_attachment"> <xs:sequence> <xs:element name="tags" minOccurs="0" maxOccurs="1" type="T_tags"> <xs:annotation> <xs:documentation>Specifies specific tags you want to set for the flavor asset</xs:documentation> </xs:annotation> </xs:element> <xs:choice minOccurs="1" maxOccurs="1"> <xs:element ref="serverFileContentResource" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Specifies that content ingestion location is on a Kaltura hosted server</xs:documentation> </xs:annotation> </xs:element> <xs:element ref="urlContentResource" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Specifies that content file location is a URL (http,ftp)</xs:documentation> </xs:annotation> </xs:element> <xs:element ref="remoteStorageContentResource" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Specifies that content file location is a path within a Kaltura defined remote storage</xs:documentation> </xs:annotation> </xs:element> <xs:element ref="remoteStorageContentResources" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Set of content files within several Kaltura defined remote storages</xs:documentation> </xs:annotation> </xs:element> <xs:element ref="entryContentResource" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Specifies that content is a Kaltura entry</xs:documentation> </xs:annotation> </xs:element> <xs:element ref="assetContentResource" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Specifies that content is a Kaltura asset</xs:documentation> </xs:annotation> </xs:element> <xs:element ref="contentResource-extension" minOccurs="1" maxOccurs="1" /> </xs:choice> <xs:element name="filename" minOccurs="0" maxOccurs="1" type="xs:string"> <xs:annotation> <xs:documentation>Attachment asset file name</xs:documentation> </xs:annotation> </xs:element> <xs:element name="title" minOccurs="0" maxOccurs="1" type="xs:string"> <xs:annotation> <xs:documentation>Attachment asset title</xs:documentation> </xs:annotation> </xs:element> <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"> <xs:annotation> <xs:documentation>Attachment asset free text description</xs:documentation> </xs:annotation> </xs:element> <xs:element ref="attachment-extension" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> <xs:attribute name="attachmentAssetId" type="xs:string" use="optional"> <xs:annotation> <xs:documentation>The asset id to be updated with this resource used only for update</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="format" type="KalturaAttachmentType" use="optional"> <xs:annotation> <xs:documentation>Attachment asset file format</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:element name="attachment-extension" /> <xs:element name="attachments" type="T_attachments" substitutionGroup="item-extension"> <xs:annotation> <xs:documentation>All attachments elements</xs:documentation> <xs:appinfo> <example> <attachments> <action>update</action> <attachment>...</attachment> <attachment>...</attachment> <attachment>...</attachment> </attachments> </example> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="attachment" type="T_attachment" substitutionGroup="item-extension"> <xs:annotation> <xs:documentation>Attachment asset element</xs:documentation> <xs:appinfo> <example> <attachment format="1" attachmentAssetId="{asset id}"> <tags> <tag>example</tag> <tag>my_tag</tag> </tags> <urlContentResource url="http://my.domain/path/file.txt"/> <filename>my_file_name.txt</filename> <title>my attachment asset title</title> <description>my attachment asset free text description</description> </attachment> </example> </xs:appinfo> </xs:annotation> </xs:element> '; return $xsd; }
public static function getPluginSchema($type) { $coreType = kPluginableEnumsManager::apiToCore('SchemaType', $type); if ($coreType != self::getSchemaTypeCoreValue(DropFolderXmlSchemaType::DROP_FOLDER_XML)) { return null; } $xmlApiType = BulkUploadXmlPlugin::getApiValue(XmlSchemaType::BULK_UPLOAD_XML); $baseXsdElement = BulkUploadXmlPlugin::getPluginSchema($xmlApiType); $xsd = '<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">'; foreach ($baseXsdElement->children('http://www.w3.org/2001/XMLSchema') as $element) { /* @var $element SimpleXMLElement */ $xsd .= ' ' . $element->asXML(); } $xsd .= ' <xs:complexType name="T_dropFolderFileContentResource"> <xs:choice minOccurs="0" maxOccurs="1"> <xs:element name="fileSize" type="xs:long" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation> The expected size of the file<br/> Used for validation </xs:documentation> </xs:annotation> </xs:element> <xs:element name="fileChecksum" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation> The expected checksum of the file<br/> md5 or sha1<br/> Used for validation </xs:documentation> </xs:annotation> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="type" use="optional" default="md5"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="md5"/> <xs:enumeration value="sha1"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:choice> <xs:attribute name="filePath" use="required"> <xs:annotation> <xs:documentation> The name of the file in the drop folder </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="500"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="dropFolderFileId" type="xs:string" use="optional"> <xs:annotation> <xs:documentation> The id of the drop folder file object </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:element name="dropFolderFileContentResource" type="T_dropFolderFileContentResource" substitutionGroup="contentResource-extension"> <xs:annotation> <xs:documentation>Specifies that content file location is within a Kaltura defined drop folder</xs:documentation> <xs:appinfo> <example title="Using file size validation example"> <item> <action>add</action> <type>1</type> <media>...</media> <content>...</content> <thumbnail> <dropFolderFileContentResource filePath="file.jpg"> <fileSize>453453344</fileSize> </dropFolderFileContentResource> </thumbnail> </item> </example> <example title="Using checksum validation example"> <item> <action>add</action> <type>1</type> <media>...</media> <content>...</content> <thumbnail> <dropFolderFileContentResource filePath="file.jpg"> <fileChecksum type="md5">sdfsjodf90sfsdfzfasdfwrg34</fileChecksum> </dropFolderFileContentResource> </thumbnail> </item> </example> </xs:appinfo> </xs:annotation> </xs:element> '; $schemaContributors = KalturaPluginManager::getPluginInstances('IKalturaSchemaContributor'); foreach ($schemaContributors as $key => $schemaContributor) { /* @var $schemaContributor IKalturaSchemaContributor */ $elements = $schemaContributor->contributeToSchema($xmlApiType); if ($elements) { $xsd .= $elements; } } $xsd .= ' </xs:schema>'; return new SimpleXMLElement($xsd); }
public static function contributeToSchema($type) { $coreType = kPluginableEnumsManager::apiToCore('SchemaType', $type); if ($coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_XML) && $coreType != BulkUploadXmlPlugin::getSchemaTypeCoreValue(XmlSchemaType::BULK_UPLOAD_RESULT_XML)) { return null; } $xmlnsBase = "http://" . kConf::get('www_host') . "/{$type}"; $xmlnsPlugin = "http://" . kConf::get('www_host') . "/{$type}/" . self::getPluginName(); $xsd = ' <!-- ' . self::getPluginName() . ' --> <xs:complexType name="T_scene_thumbCuePoint"> <xs:complexContent> <xs:extension base="T_scene"> <xs:sequence> <xs:element name="title" minOccurs="1" maxOccurs="1" type="xs:string"> </xs:element> <xs:element name="description" minOccurs="1" maxOccurs="1" type="xs:string"> </xs:element> <xs:element name="subType" minOccurs="0" maxOccurs="1" type="KalturaThumbCuePointSubType"> <xs:annotation> <xs:documentation>Indicates the thumb cue point sub type 1 = Slide 2 = Chapter, defaults to Slide</xs:documentation> </xs:annotation> </xs:element> <xs:element maxOccurs="1" minOccurs="0" ref="slide" /> <xs:element ref="scene-extension" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="T_slide"> <xs:sequence> <xs:choice maxOccurs="1" minOccurs="0"> <xs:element maxOccurs="1" minOccurs="0" ref="urlContentResource"></xs:element> <xs:element maxOccurs="1" minOccurs="0" ref="remoteStorageContentResource"></xs:element> <xs:element maxOccurs="1" minOccurs="0" ref="remoteStorageContentResources"></xs:element> <xs:element maxOccurs="1" minOccurs="0" ref="assetContentResource"></xs:element> <xs:element maxOccurs="1" minOccurs="0" ref="entryContentResource"></xs:element> <xs:element maxOccurs="1" minOccurs="0" ref="contentResource-extension"></xs:element> </xs:choice> </xs:sequence> <xs:attribute name="timedThumbAssetId" type="xs:string" use="optional"/> </xs:complexType> <xs:element name="scene-thumb-cue-point" type="T_scene_thumbCuePoint" substitutionGroup="scene"> <xs:annotation> <xs:documentation>Single thumb cue point element</xs:documentation> <xs:appinfo> <example> <scene-thumb-cue-point sceneId="{scene id}" entryId="{entry id}"> <sceneStartTime>00:00:05.3</sceneStartTime> <tags> <tag>my_tag</tag> </tags> <slide> <urlContentResource url="URL_TO_FILE"/> </slide> </scene-thumb-cue-point> </example> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="slide" type="T_slide"> <xs:annotation> <xs:documentation> The slide image to attahce to tht thumb cue point ellement </xs:documentation> </xs:annotation> </xs:element> '; return $xsd; }