使用 Developer Portal

本文档介绍了 Developer Portal 的用途和用法,这是一个基于 Web 的界面,用于将内容提交到运营商的 Sun Javatrademark System Content Delivery Server。运营商将这些内容提供给订户,以供其下载到移动电话和其他设备。

本章包括以下主题:


内容

内容是一个通用术语,即订户要下载到移动设备的所有项。例如,游戏、商业应用程序、铃声和图像均为内容。

内容文件是订户可以下载并在其设备上使用的二进制文件或数据文件。对于基于 Java 技术的 MIDlet 应用程序,内容文件包含每个 MIDlet 的 Java 应用程序描述符 (Java Application Descriptor, JAD) 和 Java 归档 (Java Archive, JAR) 文件。请注意,JAD 文件的扩展名为 .jad,JAR 文件的扩展名为 .jar

如果将 Content Delivery Server 设置为支持 iAppli 应用程序,则内容文件是指扩展名为 .jam 的应用程序描述符文件和 JAR (.jar) 文件。支持文件是可以包括在内容中的可选文件。支持文件包括用户指南、图标、屏幕快照和预览文件。支持文件为订户提供了关于内容的附加信息。

预览是订户查看或收听内容项样例的一种方法。预览是随版本一起提交的。预览文件包含内容项的样例。有时,可以将内容文件本身用作其自己的预览文件。通过为每种内容类型提供不同格式的预览文件,订户可以在 Web 浏览器或 WAP 浏览器中查看内容项。预览文件必须是 Content Delivery Server 支持的 MIME 类型,而不能是应用程序或需要多个源文件的其他内容类型。预览集是指与内容版本关联的一个或多个预览文件。在提交新的版本或版本更新时,可以将其与现有版本的预览集相关联,也可以随该版本提交新的预览文件以创建新的预览集。

内容类型提交

可以提交的内容类型由运营商指定。要查看受支持的内容类型,请启动 Developer Portal 中的提交向导(请参见通过向导提交新内容)。第一页上的“选择内容类型”字段展示了 Content Delivery Server 接受的内容类型。

Catalog Manager 管理员可以对 Content Delivery Server 进行配置,以设置单独或单一内容类型提交。默认情况下,将 Content Delivery Server 配置为进行单独内容类型提交。这两种设置如下所述:

例如,假定内容提供商提交了内容类型为 image 的屏幕保护程序图像 Sunset,并且单独提交了内容类型为 sms_picture 的 Sunset。每种格式的 Sunset 都有其自身的元数据和价格。

例如,假定内容提供商要提交铃声 Melody。将使用 ringtone 内容类型来提交内容。提交内容后,内容提供商随后提交具有单声道格式的 Melody 版本。将自动为单声道版本的 Melody 指定初始提交内容的元数据和价格。

采用单独内容类型提交还是单一内容类型提交由 Catalog Manager 确定。默认配置是采用单独内容类型。

版本

由于各种设备的功能各不相同,因此如果不进行定制,可能很难生成在所有设备上都能够使用且质量最好的内容。通过针对特定设备或具有特定功能的设备创建定制内容,您可以获得更大的用户群并提供更令人满意的用户体验。但是,将每个定制都视为不同的内容项会导致效率低下。

Content Delivery Server 通过使用各种版本来解决这种问题。可以为单个内容项提交多个版本。该内容项的所有版本都共享相同的描述、类别、价格信息和支持文件。这些版本所需的设备功能都各不相同。版本也可以包含其特有的定制字段。

订户查看可用的内容列表时,对于每一项,他们只能看到一个条目。Content Delivery Server 将根据订户的设备功能确定适合于订户的版本。

版本不同于更新。“更新”是指内容的功能和修复(请参见更新内容)。“版本”是指目标设备或设备功能,如推送类型。例如,以下各项即为“版本”:

有关提交内容版本的信息,请参见通过向导提交新内容

其他属性字段

除了标准属性(如“显示名称”、“简短描述”和“预览”)以外,内容项或版本还可以包含其他属性,这些属性是由供应商确定的定制字段。这些定制字段可以是必需字段,也可以是可选字段。如果为必需字段,您必须为这些字段提供值,否则 Catalog Manager 将会拒绝您的提交。您可以编辑这些字段的值,就像编辑内容项或版本的其他属性一样。

内容托管

Content Delivery Server 可以管理外部托管内容和本地存储内容。可以将内容上载到 Content Delivery Server 以便本地存储,也可以提交指向您服务器上存储的内容文件的 URL。存储在您的服务器上的内容称为外部内容。

要对本地存储内容的内容文件进行更改,则必须将已修改的文件提交到 Content Delivery Server。要更改外部内容,则只需更新您服务器上的内容文件。在订户访问该内容时,Content Delivery Server 将自动获取更新。在这两种情况下,管理员都必须随后接受并发布更改,以便订户可以使用这些更改。

内容文件是在外部托管的。支持文件(如图标和屏幕快照)都本地存储在 Content Delivery Server 上。

预览文件也可以是本地文件、外部托管文件或受版权保护的外部托管文件。


注册

只有已注册的内容提供商才能提交内容。可以由管理员为您创建帐户,也可以通过 Developer Portal 注册来创建您自己的帐户。


procedure icon  注册

注册为内容提供商,请执行以下操作:

1. 转到位于 http://domain:port/developer/main 的 Developer Portal。

domain 是域名,port 是 Content Delivery Server 的端口号。此信息由运营商提供。

2. 在“登录”页面上单击“新开发者在此注册”,以显示“开发者注册”页面。

3. 输入请求的信息,如下所示:

请注意,必需字段用红色箭头标记。

4. 查看开发者协议。

只有在页面末尾显示指向该协议的链接时,才需要执行此步骤。通过 Developer Portal 注册表示您同意遵守声明的条款。

5. 单击“注册”完成注册。

6. 单击“确定”关闭确认页面并访问 Developer Portal 主页。

创建帐户后,将指定开发者计划。此计划用于指定可以在您为提交创建的应用程序中使用的 API。如果使用不允许的 API,内容将被拒绝。开发者计划可能会限制其他内容类型。如果您对指定给您帐户的开发者计划所允许的内容存有疑问,请与运营商联系。



注 - 在注册后,您可以随时通过提供用户名和密码来登录到 Developr Portal。要进行登录,必须将浏览器设置为接受 Cookie。




提交内容

本节介绍了有关提交内容的指导和过程。提交内容时,Content Delivery Server 将执行四项主要任务:

可以使用 Developer Portal 或内容聚集器界面提交内容。Developer Portal 提供了提交向导,可为您提示成功提交内容所需的所有信息和文件。或者,也可以自行对信息和文件进行打包,然后使用高级提交功能一步完成内容的提交。内容聚集器界面支持 XML-RPC。可以将描述内容的 XML 文件发布到 Content Delivery Server 的内容聚集器界面。



注 - 如果在提交内容时显示“正在跳过设备 device_name,因为它不支持 class_name 类”消息,则 Content Delivery Server 不支持包含 class_name 所标识的类的库,或者 device_name 指定的设备的设备配置文件中不包含该库。有关可以在应用程序中使用的类库的信息,请与 Content Delivery Server 管理员联系。



提交指导

下面列出了有关提交内容的指导:

如果使用预编码格式,则用于分隔 SMS 片段的默认字符为空格。



注 - 使用 DRM 类型包装的内容是由 Catalog Manager 管理员在 Catalog Manager 收到内容时确定的。如果计划提交预包装 OMA DRM 1.0 保护功能的内容,请与 Catalog Manager 管理员协作以确保 Catalog Manager 正确处理您的提交。




procedure icon  通过向导提交新内容

提交向导为提交内容提供了易于使用的界面。使用向导可以一次提交一项。请确保您对完成提交所需的所有文件和信息都具有访问权限。

要使用提交向导来提交新内容,请执行以下操作:

1. 登录到 Developer Portal。

要进行登录,必须将浏览器设置为接受 Cookie。

2. 单击“通过向导提交”启动提交向导。

3. 从提供的列表中选择要提交的内容类型。

4. 单击“下一步”。

将显示“内容数据”页面。

5. 选择是将内容上载到 Content Delivery Server 还是在外部托管内容。

按照以下步骤将内容上载到 Content Delivery Server:

a. 选择“上载”选项。

b. 输入要上载的内容文件的路径和文件名,或者单击“浏览”查找文件。

文件的扩展名必须是其中指定的扩展名。如果要上载应用程序,必须输入应用程序描述符文件和 JAR 文件的位置。

要在外部托管内容,请执行以下操作:

a. 选择“远程托管”选项。

b. 输入内容的 URL。

URL 必须指向具有指定 MIME 类型的文件。如果要提交 MIDlet,URL 必须指向 .jad 文件。如果要提交 iAppli 应用程序,则 URL 必须指向 .jam 文件。

如果提交的是实时流式传输的内容,请在“流式传输 URL”文本字段中输入 URL。URL 必须指向外部主机上的内容。您还必须指定实时流式传输内容的 MIME 类型,以便完成功能匹配过程。

c. 如果要求使用用户名和密码来访问所提供的 URL 上的内容,请选择“使用基本验证”。

请输入 Content Delivery Server 必须使用的用户名和密码。

d. 如果还要将内容文件作为预览文件,请选择“将原始内容文件作为预览”。标题是可选的。

只有在 Catalog Manager 管理员为所提交的内容类型启用了该选项时,才能使用该选项。此选项不适用于流式传输的内容,因为流式传输的内容可能太大而无法进行预览。

6. 单击“下一步”。

将显示“Web 描述”页面。

7. 输入用于向订户显示内容的信息:

默认情况下,“开始时间”和“结束时间”仅适用于流式传输的内容。不过,可以将这些属性配置为适用于其他内容类型。

请注意,红色箭头表示必需的字段:

8. 单击“下一步”。

将显示“内容描述”页面。

9. 输入内容信息:

必须选择价格选项或定义定制价格,具体情况取决于 Catalog Manager 管理员是否为此内容类型创建了预定义的价格选项:

如果有可用的预定义价格选项,则会在此处列出所有选项。

通过定义您自己的价格选项,可以为内容项创建定制价格。如果“定制价格”不可用,则不会显示“定制价格”部分。

表 1 定义了 Content Delivery Server 中支持的价格模型:


表 1 价格模型定义

价格模型

定义

始终免费

对下载内容不收取任何费用。只要内容可用,就可以不限次数地下载内容。

试用

订户在初次下载内容时不付费。以后下载时,订户必须购买内容。

第一次下载

订户在初次下载内容时付费。以后下载时,订户不必付费。

每次下载

订户在每次下载内容时都要付费。

每次使用

购买内容后订户可以下载内容,并为 N 次使用付费。

每期

购买内容后订户可以下载一次,并为运行该内容指定时间(如三天、两周或一个月)而付费。

N 天、周、月或年的使用付费。

每次订阅

在订阅时段内,订户可以不限次数地下载内容,但在当前订阅时段到期后将自动为下一时段的使用付费。

按每天、每周、每月或每年定期付费。

每个间隔

在间隔期间,订户可以不限次数地下载内容,但在指定起始日期和指定结束日期之间运行内容时要付费。

为 mm/dd/yyyy 到 mm/dd/yyyy 期间的使用付费。


 

选择“文件”以指明预览文件为本地文件;或者选择 "URL" 以指明预览文件为远程文件。请输入文件的全限定路径名。“文件”字段中将显示预览文件的原始位置。可以单击“浏览”以查找该文件。请选择用于查看预览的浏览器类型:从设备 (WAP) 或 PC (Web) 中。您可以选择这两种类型。

单击“添加”以加入预览文件。在执行添加操作时,将显示一个窗口。如果文件无效,该窗口将显示一个错误。否则,该窗口将关闭,并根据选择的内容将预览文件添加到 WAP 预览列表和 Web 预览列表中。

您可以选择提供预览的标题。如果预览文件适用于 WAP 和 Web 浏览器,在 WAP 预览列表中输入文件的标题时,将会自动在 Web 预览列表中为该文件输入相同的标题。如果要为 Web 预览文件提供不同的标题,请在 Web 预览列表中覆盖该标题。此操作将中断两个标题之间的关联。标题将显示在基于设备的 Subscriber Portal 和基于 PC 的 Subscriber Portal 中。如果未提供标题,则默认实现显示 "Untitled"。

可以通过单击“检查”,验证是否添加了正确的预览文件。您可以重复执行预览添加过程,以便为该内容项添加更多的预览文件。然后,可以单击向上箭头键和向下箭头键放置预览,以设置向订户显示这些预览的顺序。单击“删除”可从列表中删除文件。

如果 Catalog Manager 管理员没有为内容类型启用预览,则不会显示此字段。

只有设备功能与指定功能相匹配的订户才能访问此内容。

要让 Content Delivery Server 确定哪些设备能够运行该内容项,请选择“使用自动功能匹配”(典型)。

要选择特定设备或设置特定功能,请选择“使用定制功能匹配”,它将显示定制功能选项。

对于仅在特定设备上运行的内容项,请选择“按支持的设备选择”,并从提供的列表中选择一个或多个设备。可以通过按住 Ctrl 键来选择多个设备。

对于需要一组特定功能的内容,请选择“按要求的最小功能选择”并指定一项或多项以下功能:

10. 查看开发者协议。

只有在页面末尾显示指向该协议的链接时,才需要执行此步骤。通过 Developer Portal 提交内容表示您同意遵守声明的条款。

11. 单击“提交内容”。

如果提交成功,将显示确认页。如果提交不成功,将显示错误信息。有关该错误的附加信息,请单击“详细信息”。

Content Delivery Server 将发送一封描述提交状态的电子邮件。有关详细信息,请参见提交验证通知

12. 单击“完成”。

提交的内容视为该项的第一版本。要提交其他版本,请参见下一节。


procedure icon  通过向导提交内容版本

成功提交某项的第一版本后,即可提交其他版本。后面的各个版本将继承第一版本的描述信息、支持文件和价格信息。有关版本的详细信息,请参见版本。可以根据 Catalog Manager 中内容的状态来添加版本。有关可以提交版本的时间以及可以根据内容状态来更改的内容方面的信息,请参见更新指导

要提交版本,请执行以下操作:

1. 登录到 Developer Portal。

2. 单击“内容列表”选项卡显示已经提交的内容列表。

3. 单击要添加版本的内容的标题。将显示内容属性。

4. 单击“新版”启动版本的提交向导。

5. 输入内容的下一版本。

此步骤与第一版本是本地存储还是外部存储有关:

a. 如果第一版本在本地存储到 Content Delivery Server 上,则其他版本也必须本地存储。

输入要上载的内容文件的路径和文件名,或单击“浏览”查找文件。

文件的扩展名必须是其中指定的扩展名。如果要上载应用程序,必须输入应用程序描述符文件和 JAR 文件的位置。如果提交的是流式传输内容,您必须输入外部主机上的版本位置。

b. 如果第一版本是外部托管,则其他版本也必须外部托管。

输入内容的 URL,如果需要,还要输入用户名和密码。

URL 必须指向具有指定 MIME 类型的文件。如果要提交 MIDlet,则 URL 必须指向 .jar 文件。如果要提交 iAppli 应用程序,则 URL 必须指向 .jam 文件。如果提交的是流式传输内容,则 URL 必须指向外部主机上的内容。

如果提交的是实时流式传输的内容,请在“流式传输 URL”文本字段中输入 URL。URL 必须指向外部主机上的内容。您还必须指定实时流式传输内容的 MIME 类型,以便完成功能匹配过程。

6. 如果还要将内容文件作为预览文件,请选择“将原始内容文件作为预览”。

标题是可选的。只有在 Catalog Manager 管理员为所提交的内容类型启用了该选项时,才能使用该选项。此选项不适用于流式传输的内容,因为流式传输的内容可能太大而无法进行预览。

7. 单击“下一步”。

8. 输入内容信息:

版本名称的最大长度为 64 个字符。

9. 为此版本创建新的预览集,或者跳到 10 以使用现有的预览集。

a. 选择“使用一组定制的预览文件”。

b. 选择要使用的文件。

要提交新文件,请按照通过向导提交新内容中的预览说明进行操作。

要使用其他预览集中的文件,请执行以下操作:

i. 单击“可用版本”。

将显示“从可用版本中进行选择”窗口。

ii. 从过滤器列表中,选择包含要使用的文件的预览集。

列表中的条目标识了版本及其引用的预览集。如果所有版本使用相同的预览集,则列表中只包含一个条目。如果多个版本使用相同的预览集,则会在列表中多次显示该集合。如果更新了某个版本,则会在列表中显示该版本的所有版本号。将使用选定预览集中的预览文件填充 WAP 文件和 Web 文件列表。

iii. 选择一个或多个要使用的文件。

单击“检查”以查看或收听预览。

iv. 为每个选定的文件指定目标。

如果订户从其设备中进行浏览,请选择 "WAP" 以使用该文件。如果订户从其 PC 中进行浏览,请选择 "WEB" 以使用该文件。可以同时选择这两个目标。

v. 单击“添加”。

将根据每个选定文件的目标,在“内容描述”页上的 WAP 预览列表和 Web 预览列表中添加选定的文件。

vi. (可选)重复执行步骤 i 至步骤 v,为此版本选择其他文件。

在选择完文件后,在“从可用版本中进行选择”窗口中单击“取消”。

vii. 在“内容描述”页上,编辑标题、更改列表中的文件位置或根据需要删除文件。

10. 选择“使用一组现有的预览文件”,然后从下拉列表中选择预览集。

列表中的条目标识了版本及其引用的预览集。如果所有版本使用相同的预览集,则列表中只包含一个条目。如果多个版本使用相同的预览集,则会在列表中多次显示该集合。如果版本不包含任何预览文件,该集合将显示为“空集合”。如果更新了某个版本,则会在列表中显示该版本的所有版本号。选定预览集中的文件将添加到 WAP 预览列表和 Web 预览列表中。如果选择空集合,则不会在列表中添加任何文件。要查看预览文件,请单击“检查”以查看该项。

11. 指定设备运行此版本所需的功能。

订户必须具有与指定功能匹配的设备,才会被授予访问此版本的权限。

要让 Content Delivery Server 确定哪些设备能够运行该版本,请选择“使用自动功能匹配”(典型)。

要选择特定设备或设置特定功能,请选择“使用定制功能匹配”,它将显示定制功能选项。

对于仅在特定设备上运行的版本,请选择“按支持的设备选择”,并从提供的列表中选择一个或多个设备。可以通过按住 Ctrl 键来选择多个设备。

对于要求一组特定功能的版本,请选择“按要求的最小功能选择”。指定下面的一个或多个功能:

12. 查看开发者协议。

只有在页面末尾显示指向该协议的链接时,才需要执行此步骤。通过 Developer Portal 提交内容表示您同意遵守声明的条款。

13. 单击“提交内容”。

如果提交成功,将显示确认页。如果提交不成功,将显示错误信息。有关该错误的附加信息,请单击“详细信息”。

系统将向您发送一封描述提交状态的电子邮件。有关详细信息,请参见提交验证通知

14. 单击“完成”。

可以通过转到内容列表并单击所需的内容来检查内容版本的状态。“内容属性”页面的“版本”部分显示了所有提交版本的状态。


procedure icon  提交打包的内容

除了提交向导外,还可以使用高级提交选项。在使用此选项提交内容前,必须对要提交的内容进行打包并创建提交文件。有关创建提交文件的信息,请参见打包内容



注 - 必须使用特定工具对软件包中提交的任何 MIDlet 进行编译,这些工具证明符合连接有限设备配置 (Connected Limited Device Configuration, CLDC) 的技术兼容工具包 (Technology Compatibility Kit, TCK)。



通过软件包提交的所有内容都必须具有相同的内容类型,并且必须使用相同的价格选项。将拒绝包含不同内容类型的内容项的软件包。

要提交打包的内容,请执行以下操作:

1. 登录到 Developer Portal。

2. 单击“提交打包的内容”。

3. 输入提交文件的路径和文件名,或单击“浏览”查找该文件。

该文件必须是扩展名为 .zip 的 ZIP 文件,或者是扩展名为 .par 的置备归档 (PAR) 文件。

4. 查看开发者协议。

只有在页面末尾显示指向该协议的链接时,才需要执行此步骤。通过 Developer Portal 提交内容表示您同意遵守声明的条款。

5. 单击“下一步”。

6. 为软件包中的内容选择价格选项。

必须选择要应用于软件包中所有内容项的预定义价格选项或定义您自己的定制价格,具体情况取决于 Catalog Manager 管理员是否为此内容类型创建了预定义的价格选项:

要定义定制价格,请执行以下操作:

a. 选择“定制价格”。

b. 选择一种价格模型。

如果提供免费试用,请输入允许的免费试用次数。有关价格模型的描述,请参见表 1

c. 如果适用,请使用字段中显示的格式输入购买价格和其他信息。

7. 单击“提交内容”。

如果提交的软件包包含了大量的内容,则整个过程可能要花几分钟才能完成。

对于成功提交的每项内容,将显示一条确认消息。对于提交失败的每项内容,将显示一条错误消息。有关该错误的附加信息,请单击“详细信息”。

您还会收到一封描述提交状态的电子邮件。有关详细信息,请参见提交验证通知

仅当软件包中只包含新内容时,才能使用价格选项或定制价格。

请注意,可能会拒绝提交新版本和版本更新(视内容状态而定)。

8. 单击“完成”。

提交验证通知

将内容提交到 Content Delivery Server 时,您将从 Content Delivery Server 收到一封描述提交状态的电子邮件。如果提交具有多项内容的软件包,则将描述其中每一项的状态。对于通过自动验证过程的内容,会为您提供一个指向 Content Delivery Server 中内容的链接。

管理员审阅内容后,您将从 Content Delivery Server 收到一封电子邮件,表明您的内容已被接受、拒绝,还是将接受进一步的审阅或测试。只要管理员对您所提交的内容的状态或属性进行了更改,您就会从 Content Delivery Server 收到电子邮件通知。


打包内容

如果要提交多个项并且所有这些项具有相同的内容类型并使用相同的价格选项,则可以将这些项包装为一个提交文件,然后一步完成内容的提交。如果希望跳过提交向导并且一步提交项,则也可以将单项进行打包以便提交。

要准确地对内容进行分类、存储和发布,则必须在具有特定文件的包中提交内容。Content Delivery Server 使用这些打包的文件来准确地将内容分发给用户。本节描述了在不使用提交向导的情况下如何对内容进行打包以便提交。

创建软件包

创建的软件包可以是扩展名为 .zip 的 ZIP 文件或者扩展名为 .par 的 PAR 文件。请注意,如果选择创建置备归档 (Provisioning Archive, PAR) 文件,则可以提交一个或多个内容项版本,但是无法使用 PAR 文件提交版本更新。此外,也不能使用 PAR 文件提交预览。您只能使用 ZIP 文件提交预览。可以根据 Catalog Manager 中内容的状态来添加版本。有关可以提交版本的时间以及可以根据内容状态来更改的内容方面的信息,请参见更新指导



注 - 不支持将目录属性(包括用户指南屏幕快照建议的类别价格)用于 PAR 提交。对于 PAR 提交,Content Delivery Server 将忽略 user-guidescreenshot。默认情况下,所有 PAR 提交都是免费的,并置于 Home:Featured 类别中。对于 PAR 提交,高级功能值被设置为默认值。PAR 提交也不支持定制字段。



将内容作为 PAR 文件打包时,必须包括名为 provisioning.xml 的置备文件。创建置备文件中介绍了此文件的内容。有关置备文件的详细信息,请参见 J2EEtrademark 客户置备规范版本 1.0 (JSR-124),该规范可从以下位置获得:http://www.jcp.org/en/jsr/detail?id=124

将内容作为 ZIP 文件打包时,必须包括名为 ContentSubmission.xml 的内容提交文件,此文件提供了以下信息:

除了内容或外部内容的 URL 外,软件包还必须包括 Web 界面的所有图形和支持文件(请参见前面关于 PAR 文件的注释)。

要将内容打包,必须为每个项创建以下文件:

以下各节介绍了如何创建其中的每个文件。

创建内容文件

创建其中包含要提供的内容的文件。例如,为图像创建 GIF 文件,或者为铃声创建 MIDI 文件。此文件必须是 Content Delivery Server 支持的内容类型。有关有效内容类型的信息,请与运营商联系。

要提交应用程序,请将应用程序文件捆绑成一个 JAR 文件。还必须创建应用程序描述符,对于 MIDlet,描述符的扩展名为 .jad;对于 iAppli 应用程序,描述符的扩展名为 .jam。应用程序描述符为应用程序管理人员提供了关于 JAR 文件内容的信息。对于应用程序,内容文件既指应用程序描述符文件,也是指 JAR 文件。

创建支持文件

支持文件包括设备图标、小图标、大图标、用户指南以及一个或两个屏幕快照。还可以提供购买前订户用于查看内容样例的预览文件。所有支持文件都是可选的。支持文件必须为表 2 中指定的类型和大小。


表 2 支持文件汇总

文件

类型

图像大小

设备图标

GIF (.gif)

像素为 40 x 40

小图标

GIF (.gif)

像素为 40 x 40

大图标

GIF (.gif)

像素为 80 x 80

用户指南

PDF (.pdf)

不适用

预览文件

任何支持的内容类型

不适用

屏幕快照

JPEG (.jpg)

宽与高的像素为 200 x 190


 

创建内容提交文件

内容提交文件 (ContentSubmission.xml) 包括以下项:

每个 ZIP 格式的软件包都必须包括 ContentSubmission.xml 文件。表 3 包含内容提交文件中所需的顶层顶层标记:


表 3 所需的顶层内容描述符标记

标记名称

标记描述

<?xml?>

<?xml version="1.0" encoding="utf-8"?>

它是文件中的第一个标记。它表明了 XML 版本和此文件使用的文本编码。文件必须使用 UTF-8 编码。

<ContentSubmission>

这是顶层内容提交文件标记,它包括整个文档。

<Action>

<Action value="action">

它指明此次提交的目的。action 具有以下有效值:

  • New - 第一次提交项时使用 New
  • Add - 将版本添加到现有项时使用 Add
  • Update - 更改现有项的二进制文件时使用 Update

 

文件中其余的标记在以下各节中进行了介绍:

有关内容提交文件和标记用法的示例,请参见样例内容提交文件

内容描述符部分

内容提交文件的该部分介绍运行内容所需的功能。所有操作都需要此部分(对必需标记作了如下注释)。表 4 中定义了该部分的标记。

 


表 4 内容描述符标记

标记名称

标记描述

<ContentDescriptor>

此标记是必需的。

内容提交文件的内容描述符部分必须以此顶层内容提交标记开头。

以下标记在 <ContentDescriptor> 中有效:<Capability><ContentType><EditionName><StreamingURL><Version>

<Capability>

<Capability name="capability" value="value"/>

此标记用于定义设备功能。每个设备功能都是通过单独的 <Capability> 标记定义的。列出功能表示内容需要此功能。有关可能的功能定义列表,请参见表 5

对任何字符串或布尔值,都可以使用星号 (*)。使用星号表示内容支持所有设备。省略 XML 文件中的功能表示内容支持所有设备。

例如,如果包括标记 <Capability name="colorcapable" value="*"/> 或省略 colorcapable 标记,颜色支持和非彩色设备都允许下载应用程序。

要为功能指定多个值,则应包括多个 <Capability> 标记,而且名称值都相同。所有功能都是可选的。功能不区分大小写。如果包括 <TargetDevice> 标记,则不要包括 <Capability> 标记。

此标记在 <ContentDescriptor> 中有效。

<ContentType>

此标记是必需的,并且区分大小写。

它指明软件包中提交的内容类型。必须指定 Content Delivery Server 支持的内容类型。要了解此信息,请与运营商联系。

此标记在 <ContentDescriptor> 中有效。

<CustomField>

<CustomField customKey="key" value="somedata"/>

此标记指定了内容项的一个附加属性,可用于标识该项或收集有关该项的更多售卖信息。可以指定多个定制字段。

定制字段是由 Content Delivery Server 管理员定义的。可以将定制字段定义为必需字段,也可以将其定义为可选字段。您有责任确定为内容而存在的定制字段(如果有)以及该字段是否为必需字段。

customKey 由不含空格的字母数字字符组成。有效的特殊字符为下划线 (_) 和连字符 (-)。

value 是与键有关的数据,如名称、编号或日期。

应为要提交的每个定制字段指定一个 <CustomField> 标记。提交规则如下所示:

  • 如果没有为内容定义定制字段,并且提交中包含定制字段,则该提交将被拒绝。
  • 如果将定制字段定义为内容的必需字段,并且在提交中未提供定制字段,则该提交将被拒绝。
  • 如果将定制字段定义为内容的可选字段,并且在提交中未提供定制字段,则只要符合所有其他提交条件,就会接受该提交。

此标记在 <ContentDescriptor> 中有效。

<EditionName>

此标记是必需的。

它指定为内容指派的名称。对于内容提供商,此名称必须唯一。如果 <Action>Update,则使用不同于 <Action> 部分中为 <EditionName> 指定的名称时,会导致内容被重命名。

此标记在 <ContentDescriptor> 中有效。

<MimeType>

如果提交的是实时流式传输内容,则需要此标记。

此标记指定实时流式传输内容的格式。

此标记在 <StreamingURL> 中有效。

<Preview>

<Preview src="path"/>

此标记指定购买前订户用来查看内容样例的预览文件。此值必须是软件包内的全限定文件名,例如,铃声为 src="ring1_preview.wav",MIDlet 为 src="mazegame_preview.jad"

不需要预览文件。如果提供了一个文件,该文件必须为 Content Delivery Server 支持的类型。不提供默认值。如果 Catalog Manager 管理员没有为内容类型启用预览,则忽略预览文件。

此标记在 <ContentDescriptor> 中有效。

<StreamingURL>

<StreamingURL src=path"/>

此标记指定实时流式传输的内容文件。如果提交实时流式传输的内容,则必须包括 <MimeType> 标记,它指定了流式传输内容的格式。

<MimeType> 标记在 <StreamingURL> 中有效。

此标记在 <ContentDescriptor> 中有效。

<TargetDevice>

此标记指明要在其中运行内容的设备类型。指定目标设备将阻止其设备不受支持的用户下载内容。指定的设备必须是 Content Delivery Server 支持的设备。要指定多个设备,需要包括多个 <TargetDevice> 标记。

如果包括此标记,则不要包括 <Capability> 标记。包含的任何 <Capability> 标记都将被忽略。

此标记在 <ContentDescriptor> 中有效。

<Version>

此标记指明内容的版本号。

  • 如果提交 MIDlet,则此值将覆盖 JAR 清单文件中定义的 MIDlet-Version

此标记在 <ContentDescriptor> 中有效。


 

表 5 列出了可能的设备功能定义。不要求将功能作为内容描述符部分的组成部分。但是,定义功能时,将限制可以下载内容的设备。通过将内容限制为最佳设备,可以提高客户满意度。


表 5 可能的功能定义

名称

定义

空格

bitsperpixel

整型

整数,定义运行内容时设备屏幕每个像素应具有的最小位数。

示例:

<Capability name="bitsperpixel" value="8"/>

ccppaccept-language

字符串

定义内容要求的设备支持的语言环境。使用双字符语言代码后跟双字符国家/地区代码的格式,例如,en_US

示例:

<Capability name="ccppaccept-language" value="en_US"/>
<Capability name="ccppaccept-language" value="it_IT"/>

colorcapable

yesno

定义内容是否要求彩色屏幕设备。

示例:

<Capability name="colorcapable" value="yes"/>

deliverytype

字符串

为内容定义传送机制。

对于单独内容提交,只能给定一个值。对于单一内容类型提交,可以包含多个值。可以将 OTANSMEMS 作为值列出。

没有前导或后缀

示例:

<Capability name="deliverytype" value="OTA"/>
<Capability name="deliverytype" value="NSM"/>
<Capability name="deliverytype" value="EMS"/>

inputcharset

字符串

定义在进行文本输入时内容要求的设备支持的字符集。任何设备支持的字符集都可以作为值列出。

没有前导或后缀

示例:

<Capability name="inputcharset" value="US-ASCII"/> 
<Capability name="inputcharset" value="utf-8"/> 

numberofsoftkeys

整型

定义内容所需的软键数。

示例:

<Capability name="numberofsoftkeys" value="2"/>

outputcharset

字符串

定义输出到设备显示时内容所需的设备支持的字符集。任何设备支持的字符集都可以作为值列出。

没有前导或后缀

示例:

<Capability name="outputcharset" value="US-ASCII"/> 
<Capability name="outputcharset" value="ISO-8859-1"/> 
<Capability name="outputcharset" value="Shift-JIS"/> 

screenheight

整型

定义内容所需的最小设备屏幕高度(以像素为单位)。

示例:

<Capability name="screenheight" value="64"/>

screenwidth

整型

定义内容所需的最小设备屏幕宽度(以像素为单位)。

示例:

<Capability name="screenwidth" value="64"/>

 

不要求将功能作为内容描述符部分的组成部分。但是,定义功能时,将限制可以下载内容的设备。通过将内容限制为最佳设备,可以提高客户满意度。

Web 描述符部分

此部分的内容提交文件向订户介绍内容。此部分提供的信息将在用户浏览可用内容列表时显示给用户。只有当 <Action>New 时才包括此部分。表 6 中定义了该部分的标记(还注明了必需标记)。

 


表 6 Web 描述符标记

标记名称

标记描述

<WebDescriptor>

此标记是必需的。

内容提交文件的 Web 描述符部分必须以此顶层 Web 提交标记开头。

<Category>

此标记是必需的。

它指明编制内容目录时要依据的服务器类别,例如:Home:Business:Finance。要指定多个类别,需要提供多个 <Category> 标记。可以通过 Developer Portal 查看为 Content Delivery Server 定义的现有类别。

此标记在 <WebDescriptor> 中有效。

<CustomField>

<CustomField customKey="key" value="somedata"/>

此标记指定了一个附加版本属性,可用于标识该版本或收集有关该版本的更多售卖信息。可以指定多个定制字段。

定制字段是由 Content Delivery Server 管理员定义的。可以将定制字段定义为必需字段,也可以将其定义为可选字段。您有责任确定为内容而存在的定制字段(如果有)以及该字段是否为必需字段。

customKey 由不含空格的字母数字字符组成。有效的特殊字符为下划线 (_) 和连字符 (-)。

value 是与键有关的数据,如名称、编号或日期。

应为要提交的每个定制字段指定一个 <CustomField> 标记。提交规则如下所示:

  • 如果没有为内容定义定制字段,并且提交中包含定制字段,则该提交将被拒绝。
  • 如果将定制字段定义为内容的必需字段,并且在提交中未提供定制字段,则该提交将被拒绝。
  • 如果将定制字段定义为内容的可选字段,并且在提交中未提供定制字段,则只要符合所有其他提交条件,就会接受该提交。

此标记在 <WebDescriptor> 中有效。

<DeveloperContentID>

此标记指定系统用来标识该内容的个人标识符。此 ID 仅供您使用。Content Delivery Server 不使用此 ID。它的值为由字母和数字字符组成的字符串。

此标记在 <WebDescriptor> 中有效。

<DeviceIcon>

<DeviceIcon src="path"/>

此标记指定要在设备屏幕上显示的图形。此值必须是软件包内图形文件的全限定文件名,例如,src="/icon/deviceicon.gif"

图形文件必须是扩展名为 .gif 的 GIF 文件,并且像素必须为 40 x 40。如果定义了不存在的路径,则提交将失败。如果未定义图标的路径,则提供默认图标。

此标记在 <WebGroup> 中有效。

<DisplayName>

此标记是必需的。

它指定服务器 Web 界面上显示的内容标题,例如 Stock Ticker。此值最多不超过 20 个字符(包括空格)。

此标记在 <WebGroup> 中有效。

<InfoURL>

此标记指明具有内容或供应商信息的 Web 站点。如果提交 MIDlet,则此变量将覆盖 JAR 清单文件中定义的 MIDlet-Info-URL

此标记在 <WebDescriptor> 中有效。

<LargeIcon>

<LargeIcon src="path"/>

此标记指定要在服务器 Web 界面上显示的图形。此值必须是软件包内图形文件的全限定文件名,例如,src="/icon/largeicon.gif"

图形文件必须是扩展名为 .gif 的 GIF 文件,并且像素必须为 80 x 80。如果定义了不存在的路径,则提交将失败。如果未定义图标的路径,则提供默认图标。

此标记在 <WebGroup> 中有效。

<LongDescription>

此标记是必需的。

它的值为进一步描述内容的文本字符串,例如:

Let Stock Ticker watch the market while you get on with your life.Get the latest stock quotes, personalize your portfolio, and set alarms on stock values.

此值最多不超过 512 个字符。

此标记在 <WebGroup> 中有效。

<Preview>

<Preview src="path"/>

此标记指定购买前订户用来查看内容样例的预览文件。此值必须是软件包内的全限定文件名,例如,铃声为 src="ring1_preview.wav",MIDlet 为 src="mazegame_preview.jad"

不需要预览文件。如果提供了一个文件,该文件必须为 Content Delivery Server 支持的类型。不提供默认值。如果 Catalog Manager 管理员没有为内容类型启用预览,则忽略预览文件。

此标记在 <WebGroup> 中有效。

<ScreenShot>

<ScreenShot src="path"/>

此标记指定要在服务器 Web 界面上显示的屏幕快照。要指定第二张的屏幕快照,请提供其他 <ScreenShot> 标记。此值必须是软件包内图形文件的全限定文件名,例如,src="/graphics/screen1.jpg"

不需要屏幕快照。如果提供了屏幕快照,则图形文件必须是扩展名为 .jpg 的 JPEG 文件,并且宽与高的像素必须为 200 x 190。不提供默认值。

此标记在 <WebGroup> 中有效。

<ShortDescription>

此标记是必需的。

它的值为描述内容的文本字符串,例如,Get the latest stock quotes。此值最多不超过 40 个字符。

此标记在 <WebGroup> 中有效。

<SmallIcon>

<SmallIcon src="path"/>

此标记指定要在服务器 Web 界面上显示的图形。此值必须是软件包内图形文件的全限定文件名,例如,src="/icon/smallicon.gif"

图形文件必须是扩展名为 .gif 的 GIF 文件,并且像素必须为 40 x 40。如果定义了不存在的路径,则提交将失败。如果未定义图标的路径,则提供默认图标。

此标记在 <WebGroup> 中有效。

<UserGuide>

<UserGuide src="path"/>

此标记指定一个作为内容说明的 Adobe PDF 文件。此值必须是软件包内 PDF 文件的全限定文件名,例如,src="/docs/usersguide.pdf"

不需要文档。如果提供了文件,则该文件必须是 Adobe PDF 文件。不提供默认值。

此标记在 <WebGroup> 中有效。

<WebGroup>

此标记是必需的。

它包括特定语言环境的内容描述。它可以包含以下有效标记:<DisplayName><ShortDescription><LongDescription><DeviceIcon><SmallIcon><LargeIcon><UserGuide><Preview><ScreenShot>

此标记在 <WebDescriptor> 中有效。


 
样例内容提交文件

代码示例 1 中显示的样例文件描述了一个软件包,其中包含需要特定设备功能的股票行情应用程序。此应用程序正在进行第一次提交。


代码示例 1 新应用程序内容的内容提交文件
<?xml version="1.0" encoding="UTF-8"?>
<ContentSubmission>
  <Action value="New"/>
  <ContentDescriptor>
    <ContentType>midlet</ContentType>
    <EditionName>Stock Ticker - color</EditionName>
    <Version>1.0</Version>
    <Capability name="bitsperpixel" value="8"/>
    <Capability name="ccppaccept-language" value="en_US"/>
    <Capability name="colorcapable" value="yes"/>
    <Capability name="deliverytype" value="OTA"/>
    <Capability name="inputcharset" value="US-ASCII"/>
    <Capability name="inputcharset" value="UTF-8"/>
    <Capability name="outputcharset" value="US-ASCII"/>
    <Capability name="outputcharset" value="UTF-8"/>
    <Capability name="numberofsoftkeys" value="2"/>
    <Capability name="screenheight" value="64"/>
    <Capability name="screenwidth" value="64"/>
  </ContentDescriptor>
  <WebDescriptor>
    <Category>Home:Business:Finance</Category>
    <Category>Home:Business:Tools</Category>
    <InfoURL>http://www.stockticker.com</InfoURL>
    <WebGroup>
      <DisplayName>Stock Ticker</DisplayName>
      <ShortDescription>Get the latest stock quotes</ShortDescription>
      <LongDescription>
        Let Stock Ticker watch the market while you get on with your
        life. Get the latest stock quotes, personalize your portfolio,
        and set alarms on stock values.
     </LongDescription> 
     <DeviceIcon src="/graphics/deviceicon.gif"/> 
     <SmallIcon src="/graphics/smallicon.gif"/> 
     <LargeIcon src="/graphics/largeicon.gif"/> 
     <UserGuide src="/docs/userguide.pdf"/>  
     <ScreenShot src="/graphics/screen1.jpg"/>
     <ScreenShot src="/graphics/screen2.jpg"/>
    </WebGroup>
  </WebDescriptor>
</ContentSubmission>

 

代码示例 2 中显示的样例文件包含三个预览,其中的两个预览可在基于设备的 Subscriber Portal 上使用 WAP 浏览器时使用,另一个预览可在基于 PC 的 Subscriber Portal 上使用 Web 浏览器时使用。在针对 WAP 浏览器的两个文件中,一个文件是内容文件本身,另一个文件是该内容的不同版本。针对 Web 浏览器的文件是内容文件本身。每个内容提交都包含一些定制字段,将为内容项定义一对字段,并为内容版本定义一对不同的字段。


代码示例 2 新铃声内容的内容提交文件
<?xml version="1.0" encoding="UTF-8"?>
<ContentSubmission>
  <Action value="New"/>
  <ContentDescriptor>
    <ContentType>ringtone</ContentType>
    <EditionName>Lullaby</EditionName>
    <Version>1.0</Version>
    <Preview>
      <Wap>
        <File useContentFile="true" caption="Full Version"/>
        <File src="/preview/LullabySample.au" caption="Short Version"/>
      </Wap>
      <Web>
        <File useContentFile="true" caption=""/>
      </Web>
    </Preview>
    <CustomField customKey="Studio" value="Manchester Studio 3"/>
    <CustomField customKey="Rating" value="number"/>
    <CustomField customKey="SeeAlso" value="text"/>
  </ContentDescriptor>
  <WebDescriptor>
    <Category>Home:Entertainment:Music</Category>
    <DeveloperContentId>12345</DeveloperContentId>
    <WebGroup>
      <DisplayName>Lullaby</DisplayName>
      <ShortDescription>Latest from GenCompany</ShortDescription>
      <LongDescription>Bring back memories of gentler days
       every time your phone rings</LongDescription>
      <Preview src="ring1_preview.wav"/>
     </WebGroup>
    <CustomField customKey="Artist" value="The Cure"/>
    <CustomField customKey="Album" value="Disintigration"/>
  </WebDescriptor>
</ContentSubmission>

 

代码示例 3 中显示的样例文件描述了一个软件包,其中包含了新版本的股票行情应用程序,该应用程序的目标设备是 Siemens SL45i。


代码示例 3 本地托管的新版本的内容提交文件

<?xml version="1.0" encoding="UTF-8"?>
<ContentSubmission>
  <Action value="Add">
    <EditionName>Stock Ticker</EditionName>
  </Action>
  <ContentDescriptor>
    <ContentType>midlet</ContentType>
    <EditionName>Stock Ticker - Siemens</EditionName>
    <Version>1.0</Version>
    <TargetDevice>Siemens SL45i</TargetDevice>
  </ContentDescriptor>
</ContentSubmission>

 

代码示例 4 中显示的样例文件描述了一个软件包,其中包含了对股票行情应用程序的更新。


代码示例 4 现有内容更新的内容提交文件

<?xml version="1.0" encoding="UTF-8"?>
<ContentSubmission>
  <Action value="Update">
    <EditionName>Stock Ticker - color</EditionName>
  </Action>
  <ContentDescriptor>
    <ContentType>midlet</ContentType>
    <EditionName>Stock Ticker - color</EditionName>
    <Version>1.5</Version>
    <Capability name="ccppaccept-language" value="en_US"/>
    <Capability name="ccppaccept-language" value="it_IT"/>
    <Capability name="colorcapable" value="yes"/>
    <Capability name="deliverytype" value="OTA"/>
    <Capability name="inputcharset" value="UTF-8"/>
    <Capability name="outputcharset" value="UTF-8"/>
    <Capability name="numberofsoftkeys" value="2"/>
  </ContentDescriptor>
</ContentSubmission>

 

创建置备文件

如果提交的内容是作为 PAR 文件打包的,则必须包括 provisioning.xml 文件。表 7 列出了置备可包含的标记。


表 7 置备文件标记

标记名称

标记描述

<provisioning-archive>

这是置备文件中的顶层标记,它包括整个文档。

<bundle-type>

捆绑类型。对于 MIDlet,类型必须是 APPLICATION。有关其他有效内容类型的信息,请与运营商联系。

此标记在 <client-bundle> 中有效。

<client-bundle>

此标记包含用于定义特定内容包的所有标记。对于提交的每个内容项或每个其他版本,应包括 <client-bundle> 标记。

  • 提交第一版本时,不能在 PAR 文件中包含内容的新版本。必须在独立于初始提交的置备文件中提交内容的更高版本。

此标记在 <provisioning-archive> 中有效。

<content-file>

<content-file>"http://path"</content-file>

打包静态内容时需要此标记。

内容文件元素。该元素的文本内容必须是内容文件的 URI。URI 可以是绝对的(例如,其形式可以是 http://),表示内容文件不在 PAR 文件内。否则,它将相对于 PAR 文件根进行解释。对于 iAppli 内容,请提供指向 JAM 文件的 URL。对于所有其他内容类型,请提供指向内容的 URL。

如果捆绑的内容不包含描述符文件,则必须包含 <content-file> 标记以指示内容所在的位置。此链接既可以是相对的,也可以是绝对的。包的内容文件必须可用于服务器。

此标记在 <client-bundle> 中有效。

<content-id>

每个开发者的唯一内容 ID。如果开发者用同一 ID 重新提交内容,则它将作为一个版本添加到系统的现有内容。

可以根据 Catalog Manager 中内容的状态来添加版本。有关可以提交版本的时间以及可以根据内容状态来更改的内容方面的信息,请参见更新指导

此标记在 <client-bundle> 中有效。

<descriptor-file>

只有在提交 MIDlet 时,才需要此标记。

描述符文件元素。该元素的文本内容必须是描述符文件的 URI。URI 可以是绝对的(即其形式可以是 http://),表示描述符文件不在 PAR 文件内。否则,它将相对于 PAR 文件根进行解释。

此标记在 <client-bundle> 中有效。

<描述>

捆绑描述。详细描述和简要描述中都使用此标记。

此标记在 <client-bundle> 中有效。

<device-requirement>

在指定特定设备要求时需要此标记。

<device-requirement> 中的有效标记为:<requirement-name><requirement-value>

此标记在 <client-bundle> 中有效。

<display-name>

此标记是必需的。

对于第一次提交,display-name 为内容的目录显示名称以及内容第一版本的版本名。当前只支持一种语言环境。对于随后的各版本,display-name 为添加的新版本的版本名,并且必须是唯一的。

<display-name> 的值最多不超过 20 个字符。

此标记在 <client-bundle> 中有效。

<icon>

<icon mime-type=image/gif>

图标的 MIME 类型(如果有)。设备、小图标和大图标都使用此标记。

此标记在 <client-bundle> 中有效。

<requirement-name>

在指定设备要求时需要此标记。

指定设备的硬件特征。支持以下值:

  • HardwarePlatform.BitsPerPixel
  • HardwarePlatform.DeviceIdentifier
  • HardwarePlatform.BitsPerPixel

此标记在 <device-requirement> 中有效。

<requirement-value>

在指定设备要求时需要此标记。

提供在 <requirement-name> 标记中指定的硬件特征的值。

此标记在 <device-requirement> 中有效。

<user-descriptions>

此标记是必需的。

内容描述是在 <user-descriptions> 标记中定义的。

user-descriptions> 中的有效标记为:<display-name><描述><icon>

此标记在 <client-bundle> 中有效。


 

默认情况下,所有 PAR 提交当前都视为免费内容,并置于 Home:Featured 类别中。

如果提交多个内容项或其他版本,则可以在置备文件中包含多个 client-bundle 标记。提交第一版本时,不能在 PAR 文件中包含内容的新版本。必须在独立于初始提交的置备文件中提交内容的更高版本。

要了解使用 PAR 文件创建软件包时的限制,请参见创建软件包

有关可以提交版本的时间以及可以根据内容状态来更改的内容方面的信息,请参见更新指导

J2EE 客户置备规范版本 1.0 (JSR-124) 中描述了置备文件 (provisioning.xml) 的内容详细信息,该规范可从以下位置获得:
http://www.jcp.org/en/jsr/detail?id=124代码示例 5 显示了置备文件的示例:


代码示例 5 置备文件示例
<provisioning-archive>
  <client-bundle>
     <content-id>20235J</content-id>  
     <bundle-type>APPLICATION</bundle-type>
 
     <!--Required only for MIDlets
     <descriptor-file>http://hostname/games/checkers.jad
     </descriptor-file>
     -->
 
     <user-descriptions>
        <display-name>Checkers</display-name>
        <description>Play the game of checkers on phone</description>
        <icon mime-type=’image/gif’>/Checkers.gif</icon>
     </user-descriptions>
 
     <device-requirement>
        <requirement-name>HardwarePlatform.DeviceIdentifier</requirement-name>
        <requirement-value>Nokia/6310i</requirement-value>
     </device-requirement>
     <device-requirement>
        <requirement-name>HardwarePlatform.BitsPerPixel</requirement-name>
        <requirement-value>1</requirement-value>
     </device-requirement>
     <device-requirement>
         <requirement-name>HardwarePlatform.ScreenSize</requirement-name>
         <requirement-value>101x80</requirement-value>
     </device-requirement>
 
  </client-bundle>
</provisioning-archive>

 

创建压缩文件

创建内容文件、支持文件、ContentSubmission.xml 文件或 provisioning.xml 文件后,请为内容创建压缩文件。

表 8 列出了压缩文件的内容。


表 8 ZIP 或 PAR 文件的压缩文件内容

文件

对于打包的 ZIP 文件

对于打包的 PAR 文件

内容文件

必须位于根级别。

 

对于应用程序,JAD 和 JAR 文件都必须位于根级别。

可以位于任何级别,包括根级别。

 

对于应用程序,JAD 和 JAR 文件必须位于同一级别。

提交文件

ContentSubmission.xml 文件必须位于 meta 目录中。

不适用。

置备文件

不适用。

provisioning.xml 文件必须位于 META_INF 目录中。

支持文件

可以位于根级别下面的任何级别。

可以位于任何级别,包括根级别。


 

下图显示了铃声的样例 ZIP 文件,其中还包括 preview 子目录中的预览文件。


包含铃声和预览的 ZIP 文件的详细信息

下图显示了 iAppli 应用程序的样例 ZIP 文件,其中还包括子目录中的支持文档、图标和屏幕快照。


包含 iAppli 文件、图像文件和文档的 ZIP 文件的详细信息

如果要提交多个项,请为每个项创建一个软件包 ZIP 文件。例如,如果有四张不同的图像,请生成四个软件包 ZIP 文件,并将其捆绑为一个 ZIP 文件。


包含多个图像的打包文件的 ZIP 文件的详细信息

只要 ZIP 文件包含同一内容类型,即可将多个软件包 ZIP 文件捆绑为一个提交文件。例如,提交文件可以包括两个或多个包含图像的软件包 ZIP 文件,但是不能包括其中包含应用程序的软件包 ZIP 文件。无法捆绑多个软件包 PAR 文件。

打包版本

版本是在不同功能的设备上运行的不同内容版本。例如,可以创建一个股票行情应用程序版本,用于在 Nokia 6310i 设备上运行,也可创建另一个应用程序版本,用于在 Siemens S55 设备上运行。每个版本都共享提交的第一版本的 Web 描述符属性。有关版本的详细信息,请参见版本

必须单独为每个版本打包。第一版本的 ContentSubmission.xml 文件必须为该操作指定 New。确保在随后各版本的 ContentSubmission.xml 文件中指定以下项:

不要包括 <WebDescriptor> 标记。



注 - 如果将第一版本的内容文件提交到 Content Delivery Server 进行本地存储,则所有的后续版本都必须随内容文件一起提交。同样,如果提交了第一版本的 URL,则所有随后的版本都必须外部托管。



因为无法保证以单个文件提交软件包时软件包的处理顺序,所以应该单独提交第一版本。收到第一版本已收到的确认后,可以捆绑其余的版本并以一个 ZIP 文件提交。无法作为 PAR 文件提交版本更新。

可以根据 Catalog Manager 中内容的状态来添加版本。有关可以提交版本的时间以及可以根据内容状态来更改的内容方面的信息,请参见更新指导

要了解新版本的样例内容提交文件,请参见代码示例 3代码示例 6

打包外部内容

打包外部内容,必须创建以下文件:

创建 ContentSubmission.xml、支持文件和压缩文件,请使用打包内容(创建软件包)的指令,区别如下:

外部内容的 URL。指定的 URL 必须使用 http:// 协议并指向 Content Delivery Server 支持的 MIME 类型的文件。URL 必须返回 content-typelast-modified HTTP 头字段。



注 - 对于 MIDlet,URL 必须指向 MIME 类型为 text/vnd.sun.j2me.application-descriptor.jad 文件。.jad 文件必须包含语句 MIDlet-Jar-URL:url-to-jar,其中为 url-to-jar 指定的值指向 MIME 类型为 application/java-archive.jar 文件。URL 必须返回 content-typelast-modified HTTP 头字段。

对于 iAppli 应用程序,URL 必须指向 MIME 类型为 application/x-jam 的应用程序描述符文件 (.jam)。.jam 文件必须包含语句 DOJA_PACKAGE_URL:url-to-jar,其中 JAR 是 application/java-archive



如果访问由 URL 指向的内容要求进行验证,则 <ContentURL> 标记必须包含 <Authentication> 标记。


<Authentication type="type">
  <Username>...</Username>
  <Password>...</Password>
</Authentication>

 

标识用于访问内容的用户名和密码。typeNoneBasic。如果指定了 None,则用户名和密码都将被忽略。

代码示例 6 显示了用于提交外部内容的样例内容提交文件。


代码示例 6 外部托管的新版本的内容提交文件

<?xml version="1.0" encoding="UTF-8"?>
<ContentSubmission>
  <Action value="Add">
    <EditionName>Islands</EditionName>
  </Action>
  <ContentDescriptor>
    <ContentType>image</ContentType>
    <ContentURL src="http://host.domain.com/content/islands.gif">
      <Authentication type="Basic">
        <Username>externaluser</Username>
        <Password>passwd</Password>
      </Authentication>
    </ContentURL>
    <EditionName>Islands - Nokia</EditionName>
    <Version>1.0</Version>
    <TargetDevice>Nokia 7650</TargetDevice>
  </ContentDescriptor>
</ContentSubmission>

 

压缩文件必须是 ZIP 格式。压缩文件必须包含以下项:



注 - 压缩文件中包括的任何内容文件都将被忽略。



打包实时流式传输的内容

打包实时流式传输的内容,必须创建以下文件:

创建 ContentSubmission.xml、支持文件和压缩文件,请使用打包内容(创建软件包)的指令,区别如下:

指定的流式传输内容的 URL 可以使用 HTTP 或 RTSP 协议,并且必须指向 Content Delivery Server 支持的 MIME 类型的文件。在 Content Delivery Server 集成了流式传输服务器后,它可以从提交的 URL 中流式传输内容。

如果访问由 URL 指向的内容要求进行验证,则 <ContentURL> 标记必须包含 <Authentication> 标记。


<Authentication type="type">
  <Username>...</Username>
  <Password>...</Password>
</Authentication>

 

标识用于访问内容的用户名和密码。typeNoneBasic。如果指定了 None,则用户名和密码都将被忽略。

代码示例 6 显示了用于提交外部内容的样例内容提交文件。


代码示例 7 实时流式传输内容的内容提交文件

<?xml version="1.0" encoding="UTF-8"?>
<ContentSubmission>
  <ContentDescriptor>
    <ContentType>streaming_video</ContentType>
    <StreamingURL src="rttp://host.domain.com/content/movie.3gp">
      <MimeType>video/3gpp</MimeType>
    </StreamingURL>
      <Authentication type="Basic">
        <Username>externaluser</Username>
        <Password>passwd</Password>
      </Authentication>
    </ContentURL>
    <Version>1.0</Version>
    <TargetDevice>Nokia 7650</TargetDevice>
  </ContentDescriptor>
</ContentSubmission>

 

压缩文件必须是 ZIP 格式。压缩文件必须包含以下项:



注 - 压缩文件中包括的任何内容文件都将被忽略。




procedure icon  将内容提交到内容聚集器界面

内容聚集器界面支持 XML-RPC,用于提交内容。提交到此界面的内容被视为外部内容(请参见内容托管)。与以前介绍的提交内容不一样,将内容提交到内容聚集器不涉及图形用户界面。

将内容提交到内容聚集器界面,请执行以下操作:

1. 创建描述内容的 XML 文件

请参见为内容聚集器界面创建 XML 文件

2. 发布 XML 文件。

请参见发布 XML 文件


procedure icon  为内容聚集器界面创建 XML 文件

创建描述内容的 XML 文件。除了以下差异外,此文件与创建内容提交文件中所述的内容提交文件相同:

此标记为 Developer Portal 中的帐户设置用户名。必须具有帐户才能提交内容。

此标记为 Developer Portal 中的帐户设置密码。

此标记为外部内容设置 URL。指定的 URL 必须使用
http:// 协议并指向 Content Delivery Server 支持的 MIME 类型的文件。URL 必须返回 content-typelast-modified HTTP 头字段。

对于 MIDlet,URL 必须指向 MIME 类型为 text/vnd.sun.j2me.application-descriptor.jad 文件。.jad 文件必须包含语句 MIDlet-Jar-URL:url-to-jar,其中为 url-to-jar 指定的值指向 MIME 类型为 application/java-archive.jar 文件。URL 必须返回 content-typelast-modified HTTP 头字段。

对于 iAppli 应用程序,URL 必须指向 MIME 类型为 application/x-jam 的应用程序描述符文件 (.jam)

如果访问由 URL 指向的内容要求进行验证,则 <ContentURL> 标记必须包含 <Authentication> 标记。


<Authentication type="type">
  <Username>...</Username>
  <Password>...</Password>
</Authentication>

 

标识用于访问内容的用户名和密码。typeNoneBasic。如果指定了 None,则用户名和密码都将被忽略。

支持文件将从指定位置复制到 Content Delivery Server。

可以使用此标记为内容指定价格和使用情况。仅当 <Action>New 时才需要此标记。

此标记包括描述了您在内容中放置的价格的部分。本部分的有效标记包括:

请注意,运营商可能并不支持所有的价格模型。如果指定了运营商不支持的价格模型,提交将失败。要确定受支持的价格模型,请询问运营商,或者使用提交向导提交内容(请参见通过向导提交新内容)并记下9 中显示的价格模型。以下是价格模型标记:

如果希望客户免费下载内容,请使用此标记。

如果希望客户仅为第一次下载的内容付费,请使用此标记。此价格模型对所有内容类型都有效。


表 9 价格描述符中“第一次下载”价格模型的示例

描述符和价格属性

描述

描述符文本

<FirstDownload price="0.79" />

price

设置初次下载的收费价格。value 必须采用运营商为系统定义的货币。默认值为 0


 

如果希望客户为每次下载的内容付费,请使用此标记。此价格模型对所有内容类型都有效。


表 10 价格描述符中“每次下载”价格模型的示例

描述符和价格属性

描述

描述符文本

<RecurringDownload price="0.79" />

price

设置每次下载的收费价格。value 必须采用运营商为系统定义的货币。默认值为 0


 

如果要设置客户可以按指定价格下载内容的特定时间,请使用此标记。此价格模型对所有使用 OMA DRM 的内容类型都有效。


表 11 价格描述符中“每个间隔”价格模型的示例

描述符和价格属性

描述

描述符文本

<Interval price="0.79" startDate="03/11/05" endDate="03/18/05" />

price

设置下载的价格。value 必须采用运营商为系统定义的货币。默认值为 0

startDate

表示可以按指定价格下载内容的第一天。与 endDate 一起使用。

格式:mm/dd/yyyy

endDate

表示可以按指定价格下载内容的最后一天。与 startDate 一起使用。

格式:mm/dd/yyyy


 

如果要设置客户可以按指定价格下载并运行内容的时间范围,请使用此标记。此价格模型对所有非 SMS 内容类型都有效。


表 12 价格描述符中“每期”价格模型的示例

描述符和价格属性

描述

描述符文本

<Period price="0.79" numberOf="2" timeInterval="weeks" />

price

设置下载的价格。value 必须采用运营商为系统定义的货币。默认值为 0

numberOf

表示可以按指定价格下载并运行内容的天、周、月或年数。

有效值为大于 0 的整数。

timeInterval

表示可以按指定价格下载并运行内容的时间长度。

有效值为


 

如果希望客户连续一段时间使用内容,请使用此标记。在订阅时段结束时,将为客户发送续订通知。此价格模型仅对 MIDlet 有效。


表 13 价格描述符中“每次订阅”价格模型的示例

描述符和价格属性

描述

描述符文本

<Subscription price="3.95" frequency="monthly" recurring="yes"/>

price

设置下载的价格。value 必须采用运营商为系统定义的货币。默认值为 0

frequency

表示应用单一收费的时间段。

有效值为每天每周每月每年


 

如果希望对客户收费前允许其免费使用 N 次内容,请使用此标记。在指定试用时,<PriceDescriptor> 内必须包含另一个价格标记。不能单独使用此标记。

如果希望客户对内容使用指定次数,请使用此标记。此价格模型仅对 MIDlet 有效。


表 14 价格描述符中“使用次数”价格模型的示例

描述符和价格属性

描述

描述符文本

<Usage price="1.49" uses="5"/>

price

设置下载的价格。value 必须采用运营商为系统定义的货币。默认值为 0

uses

表明可以按指定价格使用内容的次数。

设置为大于 0 的数。


 

只能在 XML 文件中使用以下标记之一,否则提交将会失败:<PricingOptionID><PricingOptionName><PriceDescriptor>

将按以下方式定义 <PricingOptionID><PricingOptionName>

此标记为内容的价格选项指定唯一标识符。它的值为由字母和数字字符组成的字符串。字符串中的符号和特殊字符无效。

此标记指定外部系统用于标识内容的外部价格选项名称。它的值为由字母和数字字符组成的字符串。字符串中的符号和特殊字符无效。

代码示例 8 显示了使用 XML-RPC 和 <PriceDescriptor> 提交新图像的样例 XML 文件。


代码示例 8 使用 PriceDescriptor 的 XML-RPC 提交的 XML 文件

<?xml version="1.0" encoding="UTF-8"?>
<ContentSubmission>
  <Action value="New"/>
  <Username>developer1</Username>
  <Password>dev1pwd</Password>
  <ContentDescriptor>
    <ContentType>image</ContentType>
    <ContentURL src="http://localhost/pics/yosemite.jpg"/>
    <EditionName>Yosemite</EditionName>
    <Version>1.0</Version>
    <Capability name="deliverytype" value="OTA"/>
  </ContentDescriptor>
  <WebDescriptor>
   <Category>Home:Entertainment:Images</Category>
   <DeveloperContentId>177</DeveloperContentId>
   <WebGroup>
     <DisplayName>Yosemite Valley</DisplayName>
     <ShortDescription>Yosemite Valley</ShortDescription>
     <LongDescription>A panoramic view of Yosemite Valley
     </LongDescription>
     <SmallIcon src="http://localhost/pics/icons/yosemIcon.gif"/>
   </WebGroup>
  </WebDescriptor>
  <PriceDescriptor>
    <Download price="3.00" recurring="no"/>
  </PriceDescriptor>
</ContentSubmission>

 

代码示例 9 显示了使用 XML-RPC 和 <PricingOptionID> 提交新图像的样例 XML 文件。


代码示例 9 使用 PricingOptionID 的 XML-RPC 提交的 XML 文件

<?xml version="1.0" encoding="UTF-8"?>
<ContentSubmission>
  <Action value="New"/>
  <Username>developer1</Username>
  <Password>dev1pwd</Password>
  <ContentDescriptor>
    <ContentType>image</ContentType>
    <ContentURL src="http://localhost/pics/yosemite.jpg"/>
    <EditionName>Yosemite</EditionName>
    <Version>1.0</Version>
    <Capability name="deliverytype" value="NSM"/>
  </ContentDescriptor>
  <WebDescriptor>
   <Category>Home:Entertainment:Images</Category>
   <DeveloperContentId>177</DeveloperContentId>
   <WebGroup>
     <DisplayName>Yosemite Valley</DisplayName>
     <ShortDescription>Yosemite Valley</ShortDescription>
     <LongDescription>A panoramic view of Yosemite Valley
     </LongDescription>
     <SmallIcon src="http://localhost/pics/icons/yosemIcon.gif"/>
   </WebGroup>
  </WebDescriptor>
  <PricingOptionID>NGames_100</PricingOptionID>
</ContentSubmission>

 

代码示例 10 显示了使用 XML-RPC 和 <PricingOptionName> 提交新图像的样例 XML 文件。


代码示例 10 使用 PricingOptionName 的 XML-RPC 提交的 XML 文件

<?xml version="1.0" encoding="UTF-8"?>
<ContentSubmission>
  <Action value="New"/>
  <Username>developer1</Username>
  <Password>dev1pwd</Password>
  <ContentDescriptor>
    <ContentType>image</ContentType>
    <ContentURL src="http://localhost/pics/yosemite.jpg"/>
    <EditionName>Yosemite</EditionName>
    <Version>1.0</Version>
    <Capability name="deliverytype" value="EMS"/>
  </ContentDescriptor>
  <WebDescriptor>
   <Category>Home:Entertainment:Images</Category>
   <DeveloperContentId>177</DeveloperContentId>
   <WebGroup>
     <DisplayName>Yosemite Valley</DisplayName>
     <ShortDescription>Yosemite Valley</ShortDescription>
     <LongDescription>A panoramic view of Yosemite Valley
     </LongDescription>
     <SmallIcon src="http://localhost/pics/icons/yosemIcon.gif"/>
   </WebGroup>
  </WebDescriptor>
  <PricingOptionName>POToneName1</PricingOptionName>
</ContentSubmission>

 

发布 XML 文件

使用 HTTP Post 将 XML 文件发布到
http://portal-host:port/developer/XMLSubmission,其中 portal-hostport 为 Developer Portal 的域名和端口号。要了解此信息,请与运营商联系。

内容聚集器界面通过 XML 文件进行响应。以下示例显示了提交成功时的响应。


<XMLResult>
   <ResultCode>0</ResultCode>
   <ResultDetails>
      <EditionName>...</EditionName>
      <EditionId>...</EditionId>
   </ResultDetails>
</XMLResult>

 

下一个示例显示了提交失败时的样例响应。<ResultCode> 非零,<ResultDetails> 提供了错误信息。


<XMLResult>
   <ResultCode>-100</ResultCode>
   <ResultDetails>Invalid command</ResultDetails>
</XMLResult>

 

Content Delivery Server 将向您发送一封描述提交状态的电子邮件。有关详细信息,请参见提交验证通知


管理已提交的内容

Developer Portal 保留了一份您提交的所有项的记录,不管是通过 Developer Portal 还是通过内容聚集器界面提交。使用 Developer Portal 可以查看项的列表和每项的详细信息。


procedure icon  查看提交

要查看已提交的内容列表,请执行以下操作:

1. 登录到 Developer Portal。

2. 单击“内容列表”选项卡以显示已提交的内容列表。

每个项都将显示以下信息:



注 - 这是显示的默认信息。您可以与系统管理员一起更改显示的内容属性字段。



要查看项的详细信息,请单击内容列表中项的标题。显示内容属性。该项的版本列表位于属性的结尾处。版本可以具有以下状态之一:

要查看版本的详细信息,请单击版本名。

查找提交的内容

如果具有大量内容,则可能很难查找特定的内容项。可以使用几种方法来查找内容项并获取这些项的相关信息:

下面介绍了基本查找方法:

有关高级查找方法,请参见高级查找


procedure icon  执行简单查找

要查找内容,请执行以下操作:

1. 登录到 Developer Portal。

2. 单击“内容列表”选项卡以显示已提交的内容列表。

3. 在“查找”文本字段中,输入单个关键字或短语。

查找查询不区分大小写,但范围和通配符查找除外,这些查找必须使用小写字符。有关使用通配符以及可用于内容查找和排序的其他高级查找方法的信息,请参见高级查找

4. 单击“提交”。

将显示与查找条目匹配的所有内容的列表。有关查找结果的详细信息,请参见查找结果显示

导出查找结果

可以将查找结果作为以逗号分隔的结果列表保存到文本文件中。单击“浏览和查找结果”页面中的以下图标之一:


图标

描述


页面上的导出结果图标

 

创建一个列表,其中包含页面上当前显示的查找结果。


 

所有导出结果图标

 

创建一个列表,其中包含所有查找结果。


 

右键单击“导出保存”页面,将文件保存到所需的位置。


procedure icon  执行字段查找

可以指定一个或多个内容查找字段以查找内容的属性。有关字段名称的列表,请参见查找字段

要查找特定信息,请执行以下操作:

1. 在“查找”文本字段中输入查找字段名称,后跟一个冒号和值。

例如:status:New

要查找多个属性,请输入一个查找字段名称和值,后跟 AND 运算符以及另一个查找字段名称和值。

例如:status:New AND shortdesc:game

2. 单击“提交”。

查找将返回一个列表,其中包含符合所有查找条件的内容。

查找定制字段

默认情况下,可以查找 Content Delivery Server 提供的已启用定制字段,不过,系统管理员可以将定制字段指定为不能进行查找。如果无法查找某个定制字段,请与系统管理员联系。在查找定制字段名称时,必须输入包含 emf. 前缀在内的完整字段名称。

例如,status:new AND emf.artist:jones

要查找特定内容类型的定制字段,请使用布尔型运算符修改查询。

例如,emf.artist:jones NOT ctype:images

在 Content Delivery Server 提供的定制字段中,可以查找的字段为 start_timeend_time

有关有效查找字段名称的列表,请参见查找字段。您可以查找内容和版本的大多数属性。有关高级查找方法的示例,请参见高级查找。有关查找结果的详细信息,请参见查找结果显示


procedure icon  显示其他内容信息

除了“浏览和查找结果”页面中显示的一组默认内容信息以外,您还可以指定要在查找结果显示中显示的其他内容属性。

要显示默认查找结果中不包含的内容信息,请执行以下操作:

1. 输入关键字或查找查询。

2. 添加 &fl=value,其中 value 是另一个查找字段名称。

例如:shortdesc:game&fl=version

请注意,& 必须紧靠 fl 前面出现。

3. 单击“提交”。

将在结果中显示简短描述包含 "game" 的所有内容,并将“版本”字段包括在查找结果显示中。要显示多个其他字段,请用逗号分隔这些字段名称:

shortdesc:game&fl=version,dpprice,preview

可以在“查找”文本字段中只指定 &fl=value,以查看所有内容的特定属性值。


procedure icon  显示指定行数的内容

可以指定要在查找结果中显示的内容行数。

要显示特定数量的匹配内容,请执行以下操作:

1. 输入查找关键字或查询。

2. 添加 &rows=N,其中 N 是要在查找结果中显示的行数。

例如,

ctype:ringtone&rows=25

先返回类型为 ringtone 的内容项,然后显示前 25 个项。

如果包含排序字段,则会显示前 N 个排序的内容项。例如,

ctype:ringtone&sort=title asc&rows=25

返回类型为 ringtone 的内容并按标题字母顺序进行排序,然后显示前 25 个排序的项。

在单击“浏览和查找结果”页面上的列标题时,将对与该属性字段相关的列出内容进行排序,然后显示该排序请求的前 25 项。有关排序的详细信息,请参见对内容列表进行排序

也可以在“查找”文本字段中只指定 &rows=N,以便在结果页面上显示特定数量的内容。例如,如果有 200 个内容项,并将内容显示设置为每页只显示 20 项,则可以指定 &rows=200 以便在一个页面上显示这些内容。


procedure icon  显示指定数量的匹配项

您可以执行查找并返回结果,且偏移量为使用 &start 指定的整数值。例如,如果查询有大量匹配内容,而您仅对查看后面的匹配项感兴趣,则可以使用 &start 跳过结果列表中前面部分的匹配项。

在查找查询中添加 &start=N,以查看查找结果中的最后 N 行。例如,

devname:jones&start=44

返回 Jones 提交的内容项,并显示匹配项列表(从结果列表中的第 45 项开始)。

也可以在查找字段中只指定 &start=N,以便在结果页面上显示内容的特定部分。例如,如果有 200 个内容项,您只想查看最后 20 项,则可以指定 &start=180 以显示最后 20 个内容项。

查找结果显示

查找结果页上显示的属性字段取决于查找结果显示属性,这些属性是由系统管理员配置的:

具体显示的一组内容属性字段取决于系统管理员设置的每个属性的配置。对于每种查找类型,要确保查找结果显示的是您希望看到的信息,请与系统管理员一起定义所需的查找结果显示字段。有关执行查找查询的信息,请参见 Catalog Manager 和 Vending Manager 中的联机帮助。有关编辑查找结果属性的信息,请参见《Sun Javatrademark System Content Delivery Server 5.1 集成和配置指南》。有关查找和排序的详细信息,请参见《Sun Javatrademark System Content Delivery Server 5.1 参考手册》。

在执行关键字或字段查询查找时,Content Delivery Server 默认显示的内容属性字段为“标题”、“内容类型”、“类别列表”、“建议的价格”、“状态消息”以及“状态”。默认情况下,用户定义的查找仅显示使用 &fl&sort 指定的字段。

对于可能包含长字符串的查询字段(如状态消息和详细描述),查找结果中仅显示前 40 个字符。单击某个内容项可查看该内容的属性页上的完整条目。



注 - 查找结果是通过定期重新编制索引的查找数据库生成的。如果在上次查找数据库重新编制索引后更改了内容,“浏览和查找结果”页面中显示的结果可能不会立即反映出内容的最新状态。例如,如果更改了状态,结果可能显示的是修改内容的以前状态。




procedure icon  对内容列表进行排序

可以使用以下方法对内容进行排序:

要在查找查询中设置排序顺序,请执行以下操作:

1. 输入查找关键字,或者指定属性字段和可选项:降序或升序值。

2. 添加 &sort=,然后指定排序顺序和可选项:降序或升序值。

例如:shortdesc:game&sort=dpprice asc

排序对由 field-name(排序顺序类型)和 asc(用于升序)或 desc(用于降序)组成。

3. 单击“提交”。

将按照“开发者建议价格”货币值增加的顺序,显示简短描述包含 "game" 的所有内容。

在指定多个排序顺序时,请用逗号分隔这些排序顺序。例如,shortdesc:game&sort=dpprice asc,ctype desc



注 - 虽然可使用大多数可查找字段对内容进行排序,但不能使用具有多个值的查找字段对内容进行排序,例如,categorymatcheddeviceid



有关查找和排序结果显示的信息,请参见查找结果显示

对结果进行排序

如果在查找查询中指定了排序顺序,则会按指定的顺序列出查找结果页面上的匹配内容。如果未指定排序顺序,则会基于查找分数对内容进行排序,并按分数值降序列出这些内容。内容项的分数值是按照内容信息与指定查询的完全匹配程度确定的。

在查找结果页面上,如果在查找查询中指定了多个排序顺序,则会优先使用指定的第一个顺序,然后基于初始排序结果处理后面的排序顺序。这种排序序列也适用于以下情况:在查找查询中指定了一个排序顺序,然后在查找结果页面中单击列标题。将基于在查询中指定的第一个排序顺序对内容进行排序。后面的排序基于初始排序结果。

查找字段

每个属性旁边将显示内容属性字段名称 field-name。在执行字段查找时,将使用这些字段名称。请注意,在查找查询中输入的字段名称区分大小写。

将日期作为值的字段必须采用 yyyy-mm-ddThh:mm:ssZ 格式,并且必须作为时间范围输入。例如,要查找从 2007 年 8 月 4 日中午到 2007 年 8 月 5 日中午重新编制索引的内容,请输入以下查询:

timestamp:[2007-08-04T12:00:00Z TO 2007-08-05T12:00:00Z]


注 - 请注意,时间基于 24 小时制。



您可以查找以下内容属性:


表 15 内容的查找字段

查找字段名称

描述

可排序字段

category

内容类别列表

字符串。

例如,Games

categoryid

列出内容项时依据的所有类别的类别标识符列表

数字。

例如,13 14 9 2

cmprice

内容的目录价格

请注意,dpprice 的相同可查找价格特征也适用于 cmprice。要进行查找,请将 dpprice 替换为 cmprice。例如,目录的建议货币值为 cmprice_value。有关描述,请参见 dpprice 价格特征。

要查找特定的货币金额,请使用 cmprice_value

字符串。

例如,
free、usage、weekly、download、2 uses subscription

ctype

内容项类型

字符串。

例如,image

devcontentid

开发者内容 ID

字符串。

例如,rsmith22

devid

开发者 ID

数字。

例如,004

devname

开发者名称

字符串。

例如,rsmith

dpprice

最初提交内容的价格

要查找特定的货币金额,请使用 dpprice_value

字符串。

例如,
free、usage、weekly、download、2 uses subscription

dpprice_enddate

可以运行使用“每个间隔”价格模型的内容的最后一天

值的格式为:yyyy-mm-ddThh:mm:ssZ

日期。

例如,
[2007-09-04T00:00:00Z TO
2007-09-04T23:59:59Z]

dpprice_freqocc

可以下载内容的频率

文本。

例如,monthly

dpprice_model

内容的价格模型。

字符串。

价格模型的值为:

  • Free - 不限次数的免费使用和下载
  • TrialUsage - 免费使用有限的次数
  • FirstDownload - 仅第一次下载收费
  • ReurringDownload - 每次下载都收费
  • Subscription - 每次续订时都收费
  • Usage - 按一定的使用次数收费
  • LimitedTime - 在一组特定日期使用时收费
  • Period - 在某个时间段使用收费
  • Bundle - 下载捆绑内容时收费

dpprice_noofdays

可以下载内容的天数

数字。

例如,30

dpprice_nooftimes

可以下载内容的次数

数字。

例如,25

dpprice_startdate

可以运行使用“每个间隔”价格模型的内容的第一天

值的格式为:yyyy-mm-ddThh:mm:ssZ

日期。

例如,
[2007-08-04T00:00:00Z TO
2007-08-04T23:59:59Z]

dpprice_value

提交的内容的货币值

数字。

例如,1.25

longdesc

内容项的详细描述

字符串。

例如,nature scenes coastline

planid

计划 ID 的列表

数字。

例如,1 1001 1000

preview

内容是否包含预览

布尔值 truefalse

rcid

内容类 ID

数字。

例如,3001

shortdesc

内容项的简短描述

字符串。

例如,nature scenes

status

内容状态

字符串。

例如,new

text

以下内容字段中包含的字符串:类型、标题、简短描述、详细描述、类别、开发者名称和状态

字符串。

例如,
chart spreadsheet

timestamp

上次重新对内容编制索引的日期

日期。

例如,
[2007-07-12T00:00:00Z TO
2007-07-12T23:59:59Z]

title

内容标题

字符串。

例如,Goldminer


 

注 - 可通过在以下字段中添加 _exact 来执行完全字符串匹配:ctypedevcontentiddevnamelongdescshortdescstatustitle。有关执行精确查找的信息,请参见精确查找



可以对 Content Delivery Server 提供的以下定制字段进行查找和排序:

表 16 列出了可查找的版本属性:


表 16 内容版本的查找字段

查找字段名称

描述

可查找的字段

edname

版本的标题

字符串。

例如,
City Map - Large

edstatus

版本的状态

字符串。

例如,new

lastmoddate

最近修改版本的日期

日期。

例如,

[2007-08-04T12:00:00Z TO
2007-08-05T12:00:00Z]

loctype

流式传输内容版本的位置类型

字符串。

该字段的值为:

  • I - 内部内容
  • E - 外部托管内容
  • C - 受版权保护的内容
  • S - 使用 SDP 文件提交的流式传输内容
  • U - 流式传输 URL

matcheddevice

由功能匹配确定的该版本的匹配设备列表

字符串。

例如,Motorola T720 Nokia 7610

matcheddeviceid

由功能匹配确定的该版本的匹配设备 ID 列表

字符串。

例如,1011 2001 3000

maxsize

由功能匹配确定的版本二进制文件大小

数字。

例如,47923

riid

版本资源标识符

数字。

例如,6008

statusmsg

Catalog Manager 为版本定义的状态消息

字符串。

例如,May require testing

subdate

版本的提交日期

日期。

例如,

[2007-06-02T08:00:00Z TO
2007-06-21T23:59:00Z]

version

版本的版本号

数字。

例如,2.4 1.2

weight

版本的权重

数字。

例如,50.033.7


 

高级查找

您几乎可以基于内容项的任何标识属性来查找内容项,例如,内容标题、状态、内容提供商、简短描述和价格。也可以使用以下方法大大缩小查找范围:查找一组特定的属性、对查找词条进行分组,等等。

可以执行以下类型的查找:

简单字词或短语查找

查找查询不区分大小写。要查找单个字词或短语,请输入一个字母数字文本字符串。将短语用双引号引起来。例如,

"Blue Eyes"

检索所有包含短语 "blue eyes" 的内容。如果没有引号,查找将仅返回内容信息包含词条 "blue" 和/或 "eyes" 的所有内容。

要查找类似的字词,请在查找字符串末尾放置一个波浪符 (~)。例如,

ball~

检索所有包含类似词条的内容,例如,balls、bell 或 ballad。

要查找与查找词条比较接近的匹配字词,请在波浪符 (~) 后面应用权重指标。例如,

ball~0.9

检索所有包含查找词条的内容,例如,balls,但不包含 bell。权重指标是介于 0 和 1 之间的值,其中 1 为完全匹配。如果未指定权重,则使用的默认值为 0.5。

属性字段查找

可通过指定特定信息字段来缩小查找范围。在“查找”文本字段中,输入 field-name: value,如下所示:

ctype:ringtone

您可以在字段名称后面输入一个短语,但只有紧靠冒号后面的字符串有效。例如,

title:Am I Blue

返回所有标题包含 "Am" 的内容。要匹配完整的标题,请将整个值用双引号引起来。



注 - 在查找查询中输入的字段名称区分大小写。



多个字段查找

您可以一次查找多个字段。例如,

title:blu* AND devname:jdoe AND status:published

返回由开发者 jdoe 提供且标题包含字符串 "blu" 的所有发布内容。

范围查找

您可以输入字段的范围(数值或小写字母)。例如,

subdate:[2006-04-03T23:30:00Z TO 2007-04-04T23:30:00Z]

列出从 2006 年 4 月 3 日晚上 11:30 到 2007 年 4 月 4 日晚上 11:30 提交的所有内容版本(含这两个时间)。



注 - 时间段由日期和时间组成,必须将其放在方括号内并使用以下格式:yyyy-mm-ddThh:mm:ssZ。时间基于 24 小时制。



要执行排他性查找,请使用花括号,而不是方括号。例如,

devname:{benson TO lewis}

返回所有包含开发者名称字段且具有以下值的内容:这些值介于 Benson 和 Lewis 之间(按字母顺序排列),但不包括 Benson 或 Lewis。

通配符查找

可以执行单个字符或多个字符通配符查找。您必须在通配符查找中使用小写字符。此外,也不能将通配符作为查询中的第一个字符,并且不能在字段名称中使用通配符。

可以使用问号 (?) 来执行单个字符通配符查找。例如,

b?ll

返回匹配项 ball、bell、bill、boll 或 bull。

可以使用星号 (*) 来执行多个字符通配符查找。例如,

bel*

返回匹配项 bells、believe、below,等等。

特殊字符查找

可以在查找查询中使用以下特殊字符:

+ - && || ! () {} [] ^ " ~ * ? " \

要在查找中使用实际字符,请在该字符前面放置一个反斜杠 (\)。例如,

hot\+cold

查找包含加号的字符串 "hot+cold"。

精确查找

可以在某些字段中添加 _exact 以查找特定内容。例如,

title_exact:Spruce

仅返回包含特定标题 Spruce 的内容,而不返回包含字符串 spruce 的内容,如 Spruce Clock 或 SpruceTime。

可以将 _exact 与列出的一个字段结合使用,以查找在查找字符串结尾或附近包含特殊字符的字符串的完全匹配项。例如,

shortdesc_exact:mystery\?

仅返回简短描述包含 Mystery? 的内容项。如果不包含 _exact,查找将返回比较接近的匹配项,如 mystery magic、Mystery? Maze 和 mystery?island。



注 - 使用 _exact 的查找查询不区分大小写。通过使用前面的示例,还会返回包含字符串 mystery? 的简短描述。



可以在以下查找字段中添加 _exact 以查找精确的字符序列:

使用布尔型运算符的查找

表 17 列出了查找查询中的有效布尔型运算符:


表 17 查找运算符

运算符

描述

+

与包含必需查找查询项的内容匹配。请将 + 放在必需词条的前面。例如,

blue suede +shoes

返回包含 "shoes" 的匹配项,并且可能包含 "blue" 或 "suede"。

blue "suede shoes"

返回包含 "suede shoes" 的内容,并且可能包含 "blue"。

-

与包含查找查询项但不包含指定忽略的项的内容匹配。请将减号 (-) 放在要从查找中忽略的词条前面。例如,

blue -moon

返回包含 "blue" 但不包含 "moon" 的匹配项。

blu* -"suede shoes"

返回包含字符串 "blu" 但不包含短语 "suede shoes" 的内容。

OR

与至少包含一个关键字或字段值的内容匹配。例如,

devname:jdoe OR preview:true

返回内容开发者为 "jdoe" 或具有预览的内容。

AND

与包含两个查找查询项的内容匹配。例如,

devname:jdoe AND status:New

返回内容开发者为 "jdoe" 且状态为“新建”的内容。

NOT

与包含两个查找查询项的内容匹配。例如,

subdate:[2007-02-02T00:00:00Z TO 2007-02-02T23:59:59Z7] NOT developer:jdoe

返回提交日期为 02/02/2007 但不是由 "jdoe" 提交的内容版本。


 
对查找项进行分组

可以使用布尔型运算符执行子查询。例如:

blue AND (eyes OR shoes)

返回所有包含词条 "blue" 以及 "eyes" 或 "shoes" 的内容。

对字段中的词条进行分组

可以在字段查找中使用加号 (+) 对字词或短语进行分组。例如:

title=(+Behind +"Blue Eyes")

返回所有标题包含 "blue eyes" 和 "behind" 的内容。

相对时间段查找

查找在相对时间段内提交的内容(如昨天或两天前提交的内容),请将词条 NOW 和相对时间结合使用,并将时间段设置为范围查找格式。例如,

subdate:[NOW-1DAY TO NOW]

返回在昨天和今天之间提交的所有内容版本。您可以使用 "+" 查找包含将来截止日期的内容,如具有订阅价格模型的内容。例如,

dpprice_enddate:[NOW TO NOW+3DAYS]

返回所有以下内容:可用性日期在从当前日期算起的 3 天后结束。

还可以包含 N 个月以及天数。例如,

dpprice_enddate:{NOW TO NOW/Day+4MONTHS+3DAYS}

返回所有以下内容:可用性日期在当天以后的 4 个月零 3 天内结束。

邻近查找

查找短语中的相邻字词,请在短语后面应用波浪符 (~) 和权重指标。例如,

"blue eyes"~5

检索所有以下内容:包含词条 "blue" 和 "eyes" 且这些词条相距不超过 5 个字词。

相关性查找

如果要查找的字词或短语的查找相关性高于查找中包含的其他字词或短语,请在所需的字词或短语后面应用插入记号 (^) 和权重指标。例如:

blue^7 eyes

将 "blue" 作为更重要的查找词条。要提升短语的重要性,请在双引号后面应用插入记号 (^) 和权重指标。例如:

"blue eyes"^7 crying


procedure icon  编辑提交

对于状态为“新建”或“已拒绝”的任何提交内容,可以对描述、支持文件、价格信息、定制字段或预览进行更改。对于状态为“新建”或“已拒绝”的内容版本,可以对定制字段进行更改。

有关何时根据内容状态更新或编辑内容和版本的特定信息,请参见更新指导

要编辑内容,请执行以下操作:

1. 登录到 Developer Portal。

2. 单击“内容列表”选项卡以显示已提交的内容列表。

3. 单击要编辑的内容的标题。

内容的状态不能为“待定”、“已发布”、“未发布”或“测试”。

将显示“查看内容属性”页面。

4. 单击“编辑说明”以编辑说明或支持文件。

按照需要编辑说明或支持文件,单击“确定”保存更改。可更改以下的任何一个字段:

有关字段的描述,请参见通过向导提交新内容

5. 单击“确定”。

将显示“内容属性”页面, 并显示所做的任何更改。


procedure icon  编辑内容价格

要更改内容价格,请执行以下操作:

1. 登录到 Developer Portal。

2. 单击“内容列表”选项卡以显示已提交的内容列表。

3. 单击要编辑的内容的标题。

内容的状态必须为“新建”或“已拒绝”。

4. 单击“内容属性”页面上的“编辑价格”来编辑价格信息。

5. 选择所需的价格选项,或者创建一个定制价格(如果适用)。

有关价格选项的描述,请参见通过向导提交新内容

6. 单击“确定”保存更改。

有关编辑内容或内容版本的预览集的说明,请参见编辑预览


procedure icon  编辑预览

您可以独立于版本来管理与内容项关联的预览集,也可以管理与特定版本关联的预览集。在单独进行管理时,对预览集所做的任何更改将影响引用该预览集的所有版本。按版本进行管理时,可以使用以下选项:

如果进行更改以使任何版本都不再引用某个预览集,系统将自动删除该预览集。



注 - 要在管理预览集时检查预览文件,必须将浏览器设置为允许使用 Content Delivery Server Developer Portal 弹出式窗口。另外,Content Delivery Server 不检查使用的浏览器能否显示或播放选定的预览。浏览器决定了如何处理不支持的文件类型。



要编辑预览,请执行以下操作:

1. 登录到 Developer Portal。

2. 单击“内容列表”选项卡以显示已提交的内容列表。

3. 单击要编辑的内容的标题。

将显示“内容属性”页面, 并在“目录描述”部分后面显示一个包含预览信息的部分。

4. 按照以下步骤,独立于版本来编辑预览集(要编辑特定版本的预览集,请跳到 5):

a. 从“选择预览集”列表中,选择要编辑的预览集。

如果内容状态为“新建”或“已拒绝”,则可以编辑所有预览集。如果内容状态为“已发布”或“未发布”,并且预览集仅与状态为“新建”或“已拒绝”的新版本或版本更新关联,则可以编辑该预览集。

b. 单击“编辑集合”。

将显示“编辑预览集”页面。在预览集名称下面,将标识使用该集合的版本。在此页面上,按照通过向导提交内容版本中在提交版本时新建预览集的说明修改该预览集。您也可以更改标题、对文件重新排序以及删除不需要的文件。要查看或收听预览文件,请单击“检查”以查看该文件。

c. 对该预览集进行更改。

d. 单击“确定”。

所有使用该预览集的版本都会受到所进行的更改的影响。如果内容状态为“已拒绝”,则会将内容及其所有版本的状态更改为“新建”。如果内容状态为“已发布”或“未发布”,则会进行以下更改:

5. 要编辑状态为“新建”或“已拒绝”的特定版本的预览集,请执行以下操作:

a. 在“内容属性”页面的“版本”部分中,单击要编辑的版本的名称。

将显示“查看内容版本”页面, 并在“一般信息”部分后面显示“预览”部分。

b. 单击“编辑版本预览”。

将显示“编辑版本预览”页面。在预览集名称下面,将标识使用该集合的版本。在此页面上,您可以使用与提交版本相同的过程修改预览集(请参见通过向导提交内容版本)。您也可以更改标题、对文件重新排序以及删除不需要的文件。要查看或收听预览文件,请单击“检查”以查看该文件。

c. 对该预览集进行更改。

d. 单击“确定”。

如果此版本正在使用其他版本所使用的预览集,则会为此版本创建一个新的预览集。其他版本保持不变。如果内容状态为“已拒绝”,则会将内容及其所有版本的状态更改为“新建”。如果内容状态为“已发布”或“未发布”,版本状态为“已拒绝”,则会将版本状态更改为“新建”。不会更改其他版本。


procedure icon  更新内容

如果在提交内容后对其进行更改(即修改源文件),则必须将更新提交到 Content Delivery Server。内容更新在以下方面不同于新版本:更新是指进行了修订以添加、修改或修复现有功能的版本;而新版本是指为不同目标设备或设备功能创建的内容项实例。

本节描述了更新内容的指导和更新本地存储和外部托管的内容的过程。有关版本的信息,请参见版本

更新指导

表 18 定义了提交到 Catalog Manager 的内容的状态。


表 18 Catalog Manager 中的内容状态类型

状态

定义

新建

已被 Catalog Manager 接受。

待定

正在接受审阅。

测试

正在接受测试。

已发布

已接受,并且可供 Vending Manger 使用。

未发布

已接受,但不能供 Vending Manger 使用。

已拒绝

已拒绝

已删除

已删除


 

除非内容的状态是“已删除”,否则可以更新以前提交的内容。如果内容的状态为“已删除”,则将该内容作为新内容重新提交。不要更新已删除的内容。表 19 中概述了更新内容的指导。

 


表 19 内容更新指导

状态

可能的操作

新建
已拒绝

可以提交内容的版本。

可以提交内容更新以执行以下操作:

  • 更改版本的元数据(例如:版本名和版本号)
  • 更改内容文件(二进制)
  • 更改外部内容的 URL

可以执行以下编辑操作:

  • 更改价格
  • 更改资源元数据(例如,信息 URL、简要描述和详细描述、小图标或大图标)
  • 更改定制字段的值

待定
测试
已删除

已发布
未发布

可以提交内容的版本。

可以提交内容更新以执行以下操作:

  • 更改版本的元数据(例如:版本名和版本号)
  • 更改内容文件(二进制)
  • 更改外部内容的 URL

无法执行以下编辑操作:

  • 更改价格
  • 更改资源元数据(例如,信息 URL、简要描述和详细描述、小图标或大图标)
  • 更改定制字段的值

 

对状态为“新建”或“已拒绝”的内容进行更新时,将从数据库删除原始内容并替换为新的内容。在 Catalog Manager 中,对状态为“已拒绝”的内容的更新将指定状态“新建”。

对状态为“已发布”或“未发布”的内容进行更新时,更新将添加到数据库并且引用原始内容。内容的状态将两次显示于提交开发者的内容列表中,一次是 status/Upgraded,再一次是 New。例如,最初提交的内容 SpruceDraw(具有 Edition ID 1027)的状态为“已发布”,Catalog Manager 已收到对该内容的更新(具有 Edition ID 1029)。图 1 显示了开发者的内容列表。

图 1 显示更新内容的版本字段

显示内容的新版本和升级状态的版本字段

Catalog Manager 发布更新时,通知将发送到提交开发者和 Vending Manager。在 Vending Manager 中,将在订户的内容列表中注明具有可用更新的购买内容。

图 1 中所示,在 Catalog Manager 收到更新后,会将其状态指定为“新建”。图 2 显示了将状态更改为“已发布”时对开发者的“内容属性”页所做的更改。

图 2 显示更新状态的版本字段

显示新版本状态为“已发布”的版本字段



注 - 升级原始内容后,不能再次对其进行升级。



要更改描述或价格信息,请编辑提交。请参见编辑提交


procedure icon  更新本地存储的内容

更新 Content Delivery Server 上存储的内容,请执行以下操作:

1. 登录到 Developer Portal。

2. 单击“内容列表”选项卡。

将显示已提交的内容列表。

3. 单击要更新的内容标题。

将显示“查看内容属性”页面。

4. 在“版本”部分中,单击要更新的版本名。

将显示“查看内容版本”页面。

5. 单击“更新内容”。

6. 输入已更新内容文件的路径和文件名,或者单击“浏览”查找该文件。

文件的扩展名必须是其中指定的扩展名。如果要上载应用程序,必须输入应用程序描述符文件和 JAR 文件的位置。

7. 选中或取消选中将原始内容用作预览的选项。

您可以选择在该复选框下面的文本字段中指定预览的标题。

8. 单击“下一步”。

9. 输入内容信息:

10. 根据需要,修改适用于内容的任何定制字段。

11. (可选)根据需要,修改预览文件信息。

12. 指定运行该版本所需的设备功能。

订户必须具有与指定功能匹配的设备,才会被授予访问此版本的权限。

对于无特定功能要求的版本,请选择“不要求功能”。

对于仅在特定设备上运行的版本,请选择“按支持的设备选择”,并从提供的列表中选择一个或多个设备。可以通过按住 Ctrl 键来选择多个设备。

对于要求一组特定功能的版本,请选择“按要求的最小功能选择”。指定下面的一个或多个功能:

13. 查看开发者协议。

只有在页面结尾显示指向该协议的链接时,才需要执行此步骤。通过 Developer Portal 提交内容表示您同意遵守声明的条款。

14. 单击“提交内容”。

如果提交成功,将显示确认页。如果提交不成功,将显示错误信息。有关该错误的附加信息,请单击“详细信息”。

15. 单击“完成”。

更新外部托管的内容

只要针对外部托管内容的可执行文件需要更新,则可直接在服务器上更新文件。不必将更新提交到 Content Delivery Server。订户购买或下载外部内容时,Content Delivery Server 将识别存储在外部站点上的内容的更改时间,并访问最新版本。处理更新版本的方式与处理内容最新一样,因此在其替换现有内容之前,管理员可能需要接受它。



注 - 运营商可以对系统进行配置,以自动接受外部内容更新。



要更改 URL 或任何指定的功能,请按照更新本地托管内容的说明进行操作(更新本地存储的内容)。对于 6,输入内容的 URL,如果需要,还要输入用户名和密码。URL 必须指向具有指定 MIME 类型的文件。如果要提交 MIDlet,URL 必须指向 JAD 文件。如果要提交 iAppli 应用程序,URL 必须指向扩展名为 .jam 的应用程序描述符文件。

提交到内容聚集器界面的内容将作为外部托管的内容进行处理。可以按照本节中的描述更新此内容,或者将更新提交到内容聚集器界面。要将更新提交到界面,请按照为内容聚集器界面创建 XML 文件中的描述创建 XML 文件,区别如下:

打包更新

要使用高级提交功能提交更新,请使用与打包新版本(请参见打包版本)相同的方式打包更新,区别如下:

要了解用于更新内容的样例内容提交文件,请参见代码示例 4