Using the Developer Portal

This document describes the purpose and use of the Developer Portal, a web-based interface for submitting content to an operator’s Sun Javatrademark System Content Delivery Server. The operator makes the content available to subscribers for download to mobile phones and other devices.

This chapter covers the following topics:


Content

Content is a generic term for any item that a subscriber might want to download to a mobile device. Examples of content are games, business applications, ring tones, and images.

Content files are the binary or data files that subscribers can download and use on their devices. For Java technology-based MIDlet applications, content files consist of a Java Application Descriptor (JAD) and a Java Archive (JAR) file per MIDlet. Note that JAD files have the extension .jad and JAR files have the extension .jar.

If Content Delivery Server is set up to support iAppli applications, content files refer to the application descriptor file with the extension .jam and the JAR (.jar) file. Support files are optional files that can be included with content. Support files include a user guide, icons, screen shots, and a preview file. Support files provide subscribers with additional information about your content.

A preview is a means for a subscriber to see or hear a sample of a content item. Previews are submitted with editions. A preview file contains a sample of a content item. Sometimes a content file itself can be used as its own preview file. Various formats of preview files for each content type enable subscribers to sample a content item on a web browser or a WAP browser. The preview file must be of a MIME type that is supported by Content Delivery Server and cannot be an application or other type of content that requires more than one source file. A preview set refers to one or more preview files associated with a content edition. When a new edition or an edition update is submitted, it can be associated with the preview set of an existing edition or new preview files can be submitted with the edition to create a new preview set.

Content Type Submissions

The types of content that you can submit are specified by the operator. To see what content types are supported, start the submission wizard in the Developer Portal (see Submitting New Content with the Wizard). The Select Content Type field on the first page shows the types of content that Content Delivery Server accepts.

The Catalog Manager administrator configures Content Delivery Server to set up either separate or single content type submission. By default, Content Delivery Server is configured for separate content type submissions. The two setups are described as follows:

For example, suppose a content provider submits a screen saver image, Sunset, of content type image and makes a separate submission of Sunset that has that content type sms_picture. Each format of Sunset has its own metadata and price.

For example, suppose a content provider has a ring tone, Melody, to submit. The content is submitted with the ringtone content type. After the content is submitted, the content provider then submits an edition of Melody that has a monophonic format. The monophonic version of Melody is automatically assigned the metadata and price of the initial submission.

The submission of separate or single content type is determined by the Catalog Manager. The default configuration is to have separate content types.

Editions

Due to the multitude of devices available with varying capabilities, it can be difficult to produce content of the highest quality that can be used on all devices without customization. Creating customizations of your content to target specific devices or devices with specific capabilities enables you to reach a larger customer base and provide a more satisfying user experience. However, it is inefficient to treat each customization as different items of content.

Content Delivery Server handles this situation with editions. You can submit multiple editions for a single item of content. All editions of the item share the same description, category, pricing information, and support files. The editions differ in the device capabilities that they require. Editions can also have custom fields that are unique to the edition.

When subscribers view the list of content available to them, they see only one entry for each item. Content Delivery Server determines which edition is appropriate for the subscriber based on the capabilities of the subscriber’s device.

An edition is different from an update. An update refers to the features and fixes of content (see Updating Content). An edition refers to the targeted device or device capabilities, such as Push type. The following items are examples of editions:

For information on submitting content editions, see Submitting New Content with the Wizard.

Additional Property Fields

In addition to the standard properties, such as Display Name, Short Description, and Preview, a content item or edition can have additional properties, custom fields, that are determined by the vendor. These custom fields can be required or optional. If required, you must a provide values for them or your submission is rejected by the Catalog Manager. You can edit the values of these fields just as you can the other properties of a content item or edition.

Content Hosting

Content Delivery Server can manage both externally hosted and locally stored content. You can upload the content to Content Delivery Server for local storage, or you can submit a URL that points to content files stored on your server. Content stored on your server is referred to as external content.

To make changes to the content files for locally stored content, you must submit the modified files to Content Delivery Server. To make changes to external content, you just update the content files on your server. Content Delivery Server automatically gets the updates when a subscriber accesses that content. In either case, the administrator must then accept and publish the changes to make them available to subscribers.

Content files are hosted externally. Support files, such as icons and screen shots, are stored locally at Content Delivery Server.

A preview file can also be a local file, an externally hosted file, or a copyrighted externally hosted file.


Registration

Only registered content providers can submit content. The administrator can create an account for you, or you can create your own account by registering through the Developer Portal.


procedure icon  Registering

To register as a content provider, follow these steps:

1. Go to the Developer Portal at http://domain:port/developer/main.

domain is the domain name and port is the port number for Content Delivery Server. This information is provided by the operator.

2. Click New Developers Sign Up Here on the Log In page to display the Developer Registration page.

3. Enter the requested information as follows:

Note that required fields are flagged with a red arrow.

4. Review the developer’s agreement.

This is necessary only if a link to the agreement is displayed at the end of the page. Registering through the Developer Portal indicates that you agree to abide by the terms and conditions stated.

5. Click Register to complete your registration.

6. Click OK to close the confirmation page and access the Developer Portal home page.

When an account is created for you, a developer plan is assigned. This plan specifies the APIs that you can use in the applications that you create for submission. If you use APIs that are not allowed, your content is rejected. The developer plan might restrict other types of content. Contact the operator if you have questions on what is allowed by the developer plan assigned to your account.



Note - After you register, you can log into the Developr Portal at any time by providing your user name and password. To log in, your browser must be set to accept cookies.



Submitting Content

This section describes the guidelines and processes for submitting content. When you submit content, Content Delivery Server performs four major tasks:

You can submit content using the Developer Portal or the Content Aggregator Interface. The Developer Portal provides a submission wizard that prompts you for all of the information and files needed to successfully submit content. Alternatively, you can package the information and files yourself and submit the content in a single step using the advanced submission feature. The Content Aggregator Interface supports XML-RPC. You can post an XML file that describes the content to the Content Aggregator Interface of Content Delivery Server.



Note - If the message “Skipping Device device_name because it does not support Class class_name” appears when you submit content, either the library that includes the class identified by class_name is not supported by Content Delivery Server or the library is not included in the device profile for the device specified by device_name. Contact the Content Delivery Server administrator for information on what class libraries can be used in applications.


Submission Guidelines

Following are guidelines for submitting content:

If pre-encoded, the default character to use to separate SMS fragments is a space.



Note - Content is wrapped with the DRM type determined by the Catalog Manager administrator when it received by the Catalog Manager. If you plan to submit content that is prewrapped with OMA DRM 1.0 protection, coordinate with the Catalog Manager administrator to ensure that your submission is handled correctly by the Catalog Manager.



procedure icon  Submitting New Content with the Wizard

The submission wizard provides an easy-to-use interface for submitting content. Use the wizard to submit one item at a time. Make sure that you have access to all of the files and the information that you need to complete the submission.

To submit new content using the submission wizard follow these steps:

1. Log into the Developer Portal.

To log in, your browser must be set to accept cookies.

2. Click Submit with Wizard to start the submission wizard.

3. Select the type of content that you want to submit from the list provided.

4. Click Next.

The Content Data page is displayed.

5. Choose whether you want to upload the content to Content Delivery Server or host the content externally.

Follow these steps to upload content to Content Delivery Server:

a. Select the Upload option.

b. Enter the path and file name of the content file that you want to upload, or click Browse to locate the file.

The file name must have one of the file extensions indicated. If you are uploading an application, you must enter the location of both the application descriptor file and the JAR file.

To host content externally, follow these steps:

a. Select the Host Remotely option.

b. Enter the URL for the content.

The URL must point to a file with the MIME type indicated. If you are submitting a MIDlet, the URL must point to the .jad file. If you are submitting an iAppli application, the URL must point to the .jam file.

If you are submitting live streamed content, enter the URL in the Streaming URL text field. The URL must point to the content on the external host. You must also specify the MIME type of the live streamed content so that capability matching can occur.

c. If a user name and password are required to access content at the URL provided, select Use Basic Authentication.

Enter the user name and password that Content Delivery Server must use.

d. Select Use Original Content as a Preview if you want the content file to also be a preview file. A caption is optional.

This option is available only if the Catalog Manager administrator enabled the option for the type of content that you are submitting. This option is inapplicable for streamed content as streamed content can be too large for the purposes of a preview.

6. Click Next.

The Web Descriptions page is displayed.

7. Enter the information used to present the content to the subscriber:

By default, Start Time and End Time are applicable to streamed content only. However, these properties can be configured to be applicable to other content types.

Note that a red arrow indicates a required field.

8. Click Next.

The Content Descriptions page is displayed.

9. Enter content information:

Depending on whether the Catalog Manager administrator created predefined pricing options for this content type, you must either select a pricing option or define a custom price:

If predefined pricing options are available, all options are listed here.

By defining your own pricing option, you create a custom price for the content item. If Custom Pricing is not available, the Custom Pricing section is not displayed.

TABLE 1 defines the pricing models supported in Content Delivery Server:


TABLE 1 Pricing Model Definitions

Pricing Model

Definition

Free Always

No charge for downloading content. Content can be downloaded any number of times for as long as the content is available.

Trial

No charge for content on initial download. Subscriber must purchase content for subsequent downloads.

First Download

Subscriber is charged for initial download of content. Subscriber is not charged for subsequent downloads.

Every Download

Subscriber is charged for each download of content.

Per Use

Subscriber can download content once after purchase and is charged for N uses.

Per Period

Subscriber can download content once after purchase and is charged for running content for the specified length of time, for example, 3 days, 2 weeks, or 1 month.

Charge for N days, weeks, months, or years.

Per Subscription

Subscriber can download content an unlimited number of times during the subscription period and is automatically charged for the next period of use when the current period expires.

Charge recurring fee daily, weekly, monthly, or yearly.

Per Interval

Subscriber can download content an unlimited number of times during the interval and is charged for running content from the specified start date to the specified end date.

Charge for use starting mm/dd/yyyy through mm/dd/yyyy.


Select File to indicate that the preview file is local or URL to indicate that the preview file is remote. Enter the fully qualified pathname of the file. The original location of the preview file is displayed in the File field. You can click Browse to locate the file. Select the browser type by which the preview can be viewed, either from a device (WAP) or a PC (web). You can select both.

Click Add to include the preview file. A window appears while the add operation is performed. If the file is invalid, the window shows an error. Otherwise, the window closes and the preview file is added to the WAP Previews list and the Web Previews list based on your selections.

You have the option to provide a caption for the preview. If the preview file is for both WAP and web browsers, entering a caption for the file in the WAP Previews list automatically enters the same caption for that file in the Web Previews list. If you want a different caption for the web preview file, overwrite the caption in the Web Previews list. This action breaks the link between the two captions. Captions appear in both the device-based and PC-based Subscriber Portal. If no caption is provided, the default implementation shows Untitled.

You can verify that the correct preview file is added by clicking Inspect. You can repeat the preview addition process to add more preview files for this content item. You can then click the Up and Down arrows to position the previews to set the order in which they are presented to the subscriber. Click Delete to remove a file from the list.

If preview is not enabled by the Catalog Manager administrator for a content type, this field is not present.

Only subscribers who have devices that match the capabilities specified can access this content.

To let the Content Delivery Server determine which devices can run the content item, select Use Automated Capabilities Matching (typical).

To choose specific devices or set specific capabilities, select Use Custom Capabilities Matching, which displays the custom capability options.

For a content item that runs only on specific devices, select Choose by Supported Devices, and select one or more devices from the list provided. Hold the Control key to select multiple devices.

For content that requires a set of specific capabilities, select Choose by Minimum Required Capability and specify one or more of the following capabilities:

10. Review the developer’s agreement.

This is necessary only if a link to the agreement is displayed at the end of the page. Submitting content through the Developer Portal indicates that you agree to abide by the terms and conditions stated.

11. Click Submit Content.

If the submission is successful, a confirmation page is shown. If the submission is not successful, an error message is displayed. Click Details for additional information about the error.

The Content Delivery Server sends an email that describes the status of your submission. See Submission Verification Notices for more information.

12. Click Done.

The content submitted is considered the first edition of the item. To submit other editions, see the following section.


procedure icon  Submitting Content Editions With the Wizard

After the first edition of an item has been successfully submitted, you can submit other editions. Subsequent editions inherit the descriptive information, support files, and pricing information from the first edition. For more information on editions, see Editions. Editions can be added depending on the status of the content in the Catalog Manager. See Update Guidelines for information on when editions can be submitted and what aspects of the content can be changed depending on its status.

To submit editions, follow these steps:

1. Log in to the Developer Portal.

2. Click the Content List tab to show the list of content that you have submitted.

3. Click the title of the content to which you want to add an edition. The content properties are shown.

4. Click New Edition to start the submission wizard for editions.

5. Enter the next edition of the content.

This step is dependent on whether the first edition is stored locally or externally:

a. If the first edition is stored locally on Content Delivery Server, each additional edition must also be stored locally.

Enter the path and file name of the content file that you want to upload or click Browse to locate the file.

The file name must have one of the file extensions indicated. If you are uploading an application, you must enter the location of both the application descriptor file and the JAR file. If you are submitting streamed content, you must enter the location of the edition on the external host.

b. If the first edition is hosted externally, each additional edition must also be hosted externally.

Enter the URL for the content, and the user name and password, if needed.

The URL must point to a file with the MIME type indicated. If you are submitting a MIDlet, the URL must point to the .jar file. If you are submitting an iAppli application, the URL must point to the .jam file. If you are submitting streamed content, the URL must point to the content on the external host.

If you are submitting live streamed content, enter the URL in the Streaming URL text field. The URL must point to the content on the external host. You must also specify the MIME type of the live streamed content so that capability matching can occur.

6. Use Original Content as a Preview if you want the content file to also be a preview file.

A caption is optional. This option is available only if the Catalog Manager administrator enabled the option for the type of content that you are submitting. This option is inapplicable for streamed content as streamed content can be too large for the purposes of a preview.

7. Click Next.

8. Enter content information:

Edition names have a maximum length of 64 characters.

9. Create a new preview set for this edition or skip to Step 10 to use an existing preview set.

a. Select Use a Custom Set of Preview Files.

b. Choose the files that you want to use.

To submit new files, follow the instructions for Preview in Submitting New Content with the Wizard.

To use files in other preview sets, follow these steps:

i. Click Available Editions.

The Select from Available Editions window is shown.

ii. Select from the Filter list the preview set that contains the file that you want to use.

The entries in the list identify the edition and the preview set that it references. If all editions use the same preview set, the list contains only one entry. If more than one edition uses the same preview set, the set appears in the list more than once. If an edition has been updated, all versions of the edition appear in the list. The WAP Files and Web Files lists are filled with the preview files in the selected preview set.

iii. Select the file or files that you want to use.

Click Inspect to view or hear the preview.

iv. Specify the target for each selected file.

Select WAP to use the file when subscribers browse from their device. Select WEB to use the file when subscribers browse from their PC. Both targets can be selected.

v. Click Add.

The files that you selected are added to the WAP Previews and Web Previews lists on the Content Descriptions page based on the targets for each selected file.

vi. (Optional) Repeat Step i through Step v to select additional files for this edition.

When you are done selecting files, click Cancel in the Select from Available Editions window.

vii. On the Content Descriptions page, edit the caption, change the position of the files in the list, or delete files as needed.

10. Select Use an Existing Set of Preview Files and select the preview set from the drop-down list.

The entries in the list identify the edition and the preview set that it references. If all editions use the same preview set, the list contains only one entry. If more than one edition uses the same preview set, the set appears in the list more than once. If an edition does not have any preview files, the set is shown as Empty Set. If an edition has been updated, all versions of the edition appear in the list. The files in the selected preview set are added to the WAP Previews and Web Previews lists. If the empty set is selected, no files are added to the lists. To view a preview file, click Inspect for that item.

11. Specify required capabilities for a device to run this edition.

Only subscribers who have devices that match the capabilities specified are given access to this edition.

To let the Content Delivery Server determine which devices can run the edition, select Use Automated Capabilities Matching (typical).

To choose specific devices or set specific capabilities, select Use Custom Capabilities Matching, which displays the custom capability options.

For an edition that runs only on specific devices, select Choose by Supported Devices, and select one or more devices from the list provided. Hold the Control key to select multiple devices.

For editions that require a set of specific capabilities, select Choose by Minimum Required Capability. Specify one or more of the following capabilities:

12. Review the developer’s agreement.

This is necessary only if a link to the agreement is displayed at the end of the page. Submitting content through the Developer Portal indicates that you agree to abide by the terms and conditions stated.

13. Click Submit Content.

If the submission is successful, a confirmation page is shown. If the submission is not successful, an error message is displayed. Click Details for additional information about the error.

An email message is sent to you that describes the status of your submission. See Submission Verification Notices for more information.

14. Click Done.

You can check on the status of content editions by going to the content list and clicking on the desired content. The Editions section of the Content Properties page shows the status of all submitted editions.


procedure icon  Submitting Packaged Content

In addition to the submission wizard, an advanced submission option is available. You must package the content that you want to submit and create a submission file before you use this option to submit content. For information on creating a submission file, see Packaging Content.



Note - Any MIDlets in the package that you submit must be compiled with tools that certify compliance with the Technology Compatibility Kit (TCK) for the Connected Limited Device Configuration (CLDC).


All content submitted through a package must be of the same content type and must use the same pricing option. A package containing content items with different content types is rejected.

To submit packaged content, follow these steps:

1. Log in to the Developer Portal.

2. Click Submit Packaged Content.

3. Enter the path and file name of your submission file, or click Browse to locate the file.

The file must be either a ZIP file with the extension .zip or a Provisioning Archive (PAR) file with the extension .par.

4. Review the developer’s agreement.

This is necessary only if a link to the agreement is displayed at the end of the page. Submitting content through the Developer Portal indicates that you agree to abide by the terms and conditions stated.

5. Click Next.

6. Select the pricing option for the contents in the package.

Depending on whether the Catalog Manager administrator created predefined pricing options for this content type, you must either select a predefined pricing option to be applied to all content items in the package or define a custom price of your own.

To define a custom price, follow these steps:

a. Select Custom Pricing.

b. Select a pricing model.

If free trials are offered, enter the number of free trials allowed. See TABLE 1 for a description of pricing models.

c. Enter a purchase price and other information as applicable in the formats shown in the fields.

7. Click Submit Content.

If the package being submitted contains a large amount of content, the process might take several minutes to complete.

For each content that is successfully submitted, a confirmation message is shown. For each content that is not successfully submitted, an error message is displayed. Click Details for additional information about the error.

You also receive an email that describes the status of your submission. See Submission Verification Notices for more information.

The pricing options or custom pricing is only available if the package contains only new content.

Note that depending on the status of the content, the submission of new editions and edition updates might be rejected.

8. Click Done.

Submission Verification Notices

When you submit content to Content Delivery Server, you receive an email message from Content Delivery Server that describes the status of your submission. If you submitted a package with multiple items of content, the status of each item is described. For content that passed the automatic verification process, a link to your content in Content Delivery Server is provided.

After the administrator reviews your content, you receive an email from Content Delivery Server that indicates whether your content is accepted, denied, or is undergoing further review or testing. Any time the administrator makes a change to the status or the properties of content that you submitted, Content Delivery Server notifies you by email.


Packaging Content

If you have multiple items to submit and all the items are of the same content type and use the same pricing option, you can bundle the items into a single submission file and submit the content in one step. You can also package a single item for submission if you want to bypass the submission wizard and submit the item in one step.

To categorize, store, and post content accurately, content must be submitted in a package with specific files. Content Delivery Server uses these packaged files to accurately distribute your content to customers. This section describes how to package content for submission without using the submission wizard.

Creating the Package

The package that you create can be a ZIP file with the .zip extension or a PAR file with the .par extension. Be aware that if you choose to create a Provisioning Archive (PAR) file, you can submit one or more editions of an item of content, but you cannot use a PAR file to submit edition updates. Also, you cannot submit previews using a PAR file. You can only submit previews using a ZIP file. Editions can be added depending on the status of the content in the Catalog Manager. See Update Guidelines for information on when editions can be submitted and what aspects of the content can be changed depending on its status.



Note - Catalog properties including user-guide, screenshot, recommended category, and pricing are not supported for PAR submissions. Content Delivery Server ignores user-guide and screenshot for PAR submissions. All PAR submissions are priced as free by default and placed in the Home:Featured category. The advanced capability values are set to their default values for PAR submissions. Custom fields are also not supported for PAR submissions.


When you package your content as a PAR file, you must include a provisioning file named provisioning.xml. The contents of this file are described in Creating a Provisioning File. For detailed information on provisioning files, see the J2EEtrademark Client Provisioning Specification, version 1.0 (JSR-124) available at http://www.jcp.org/en/jsr/detail?id=124.

When you package your content as a ZIP file, you must include a content submission file named ContentSubmission.xml that provides the following information:

Your package must also include all the graphic and support files (see the preceding note about PAR files) for the web interface along with either your content or the URL for external content.

To package content, you must create the following files for each item:

The following sections describe how to create each of these files.

Creating the Content File

Create a file that contains the content that you want to provide. For example, create a GIF file for an image or a MIDI file for a ring tone. This file must be a content type that is supported by Content Delivery Server. Contact the operator for information on the valid content types.

To submit an application, bundle the application files into a single JAR file. You must also create an application descriptor with the extension .jad for a MIDlet or .jam for an iAppli application. The application descriptor provides information to the application manager about the contents of the JAR file. For applications, content file refers to both the application descriptor and JAR files.

Creating the Support Files

Support files include a device icon, a small icon, a large icon, a user guide, and one or two screen shots. You can also provide a preview file that the subscriber can use to sample content before purchasing it. All support files are optional. Support files must be of the type and size indicated in TABLE 2.


TABLE 2 Summary of Support Files

File

Type

Image Size

Device icon

GIF (.gif)

40 x 40 pixels

Small icon

GIF (.gif)

40 x 40 pixels

Large icon

GIF (.gif)

80 x 80 pixels

User guide

PDF (.pdf)

Not applicable

Preview file

Any supported content type

Not applicable

Screen shots

JPEG (.jpg)

200 wide x 190 high pixels


Creating a Content Submission File

The content submission file (ContentSubmission.xml) includes the following items:

Each package in the ZIP format must include the ContentSubmission.xml file. TABLE 3 contains the top-level tags that are required in the content submission file:


TABLE 3 Required Top-Level Content Descriptor Tags

Tag Name

Tag Description

<?xml?>

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

It is the first tag in the file. It states the XML version and the text encoding used for this file. The file must use UTF-8 encoding.

<ContentSubmission>

This is the top-level content submission file tag and encloses the entire document.

<Action>

<Action value="action">

It indicates the purpose of this submission. action has the following valid values:

  • New - Use New when you are submitting an item for the first time.
  • Add - Use Add when you are adding an edition to an existing item.
  • Update - Use Update when you are changing the binaries for an existing item.

The remaining tags in the file are described in the following sections:

For examples of content submission files and tag usage, see Sample Content Submission Files.

Content Descriptor Section

This section of the content submission file describes the capabilities required to run the content. This section is required for all actions (required tags are so noted). Tags for this section are defined in TABLE 4.

 


TABLE 4 Content Descriptor Tags

Tag Name

Tag Description

<ContentDescriptor>

This tag is required.

The content descriptor section of the content submission file must begin with this top-level content submission tag.

The following tags are valid within <ContentDescriptor>: <Capability>, <ContentType>, <EditionName>, <StreamingURL>, and <Version>.

<Capability>

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

This tag defines a device capability. Each device capability is defined with a separate <Capability> tag. Listing a capability indicates that the capability is required for the content. See TABLE 5 for a list of possible capability definitions.

You can use an asterisk (*) for any string or Boolean value. Using the asterisk indicates that the content supports all devices. Omitting a capability from your XML file indicates that the content supports all devices.

For example, if you include the tag <Capability name="colorcapable" value="*"/> or omit the colorcapable tag, both color-capable and non-color devices are allowed to download the application.

To specify more than one value for a capability, include more than one <Capability> tag with the same value for name. All capabilities are optional. Capabilities are not case sensitive. Do not include <Capability> tags if you include a <TargetDevice> tag.

This tag is valid within <ContentDescriptor>.

<ContentType>

This tag is required and is case sensitive.

It indicates the type of content submitted in the package. You must specify a content type that is supported by Content Delivery Server. Contact the Operator for this information.

This tag is valid within <ContentDescriptor>.

<CustomField>

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

This tag specifies an additional property of the content item that can be used to identify the item or to gather more vending information about the item. More than one custom field can be specified.

Custom fields are defined by a Content Delivery Server administrator. Custom fields can be defined as required or optional. It is your responsibility to determine what custom fields exist for the content, if any, and whether the field is required.

customKey takes an alphanumeric character with no spaces. Valid special characters are underscore (_) and hyphen (-).

value is data that is relevant to the key, such as a name, number, or date.

Specify one <CustomField> tag for each custom field you are submitting. Submission rules are as follows:

  • If no custom fields are defined for the content and you include custom fields in your submission, the submission is rejected.
  • If custom fields are defined as required for the content and you do not provide custom fields in your submission, the submission is rejected.
  • If custom fields are defined as optional for the content and you do not provide custom fields in your submission, the submission is accepted as long as all other submission criteria are met.

This tag is valid within <ContentDescriptor>.

<EditionName>

This tag is required.

It specifies the name assigned to the content. This name must be unique by content provider. If <Action> is Update, using a name different from the name specified for <EditionName> in the <Action> section causes the content to be renamed.

This tag is valid within <ContentDescriptor>.

<MimeType>

This tag is required if live streamed content is being submitted.

This tag specifies the format of the live streamed content.

This tag is valid within <StreamingURL>.

<Preview>

<Preview src="path"/>

This tag specifies a preview file that the subscriber can sample before purchasing the content. This value must be the fully qualified file name within the package, for example, src="ring1_preview.wav" for a ring tone or
src="mazegame_preview.jad" for a MIDlet.

Preview files are not required. If a file is provided, the file must be a type supported by Content Delivery Server. No default is provided. If preview is not enabled by the Catalog Manager administrator for the content type, then the preview file is ignored.

This tag is valid within <ContentDescriptor>.

<StreamingURL>

<StreamingURL src=path"/>

This tag specifies the live streamed content file. If live streamed content is submitted, the <MimeType> tag must be included, which specifies the format of the streamed content.

The <MimeType> tag is valid within <StreamingURL>.

This tag is valid within <ContentDescriptor>.

<TargetDevice>

This tag indicates the type of device on which the content is intended to run. Specifying the target device prevents customers with unsupported devices from downloading your content. The device specified must be a device supported by Content Delivery Server. To specify more than one device, include more than one <TargetDevice> tag.

If you include this tag, do not include <Capability> tags. Any <Capability> tag included is ignored.

This tag is valid within <ContentDescriptor>.

<Version>

This tag indicates the version number for the content.

Note - If you are submitting a MIDlet, this value overrides the MIDlet-Version defined in your JAR manifest file.

This tag is valid within <ContentDescriptor>.


TABLE 5 lists the possible device capability definitions. None of the capabilities are required as part of the content descriptor section. However, when you define capabilities, you limit the devices that can download your content. By limiting your content to optimum devices, you improve customer satisfaction.


TABLE 5 Possible Capability Definitions

Name

Value

Definition

Spaces

bitsperpixel

Integer

Integer that defines the minimum number of bits per pixel that a device screen must have to run the content.

None

Example:

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

ccppaccept-language

String

Defines the device-supported locale that your content requires. Use a two-character language code followed by a two-character country code, for example, en_US.

None

Example:

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

colorcapable

yes or no

Defines whether or not your content requires a device with a color screen.

None

Example:

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

deliverytype

String

Defines the delivery mechanism for content.

In the case of separate content submission, only one value can be given. In the case of single content type submission, more than one value can be included. OTA, NSM, and EMS can be listed as values.

No leading or trailing

Example:

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

inputcharset

String

Defines the device-supported character set that your content requires for text entry. Any device-supported character set can be listed as a value.

No leading or trailing

Example:

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

numberofsoftkeys

Integer

Defines the number of soft keys that your content requires.

None

Example:

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

outputcharset

String

Defines the device-supported character set that your content requires for output to the device’s display. Any device-supported character set can be listed as a value.

No leading or trailing

Example:

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

screenheight

Integer

Defines in pixels the minimum device screen height that your content requires.

None

Example:

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

screenwidth

Integer

Defines in pixels the minimum device screen width that your content requires.

None

Example:

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

Capabilities are not required as part of the content descriptor section. However, when you define capabilities, you limit the devices that can download your content. By limiting your content to optimum devices, you can improve customer satisfaction.

Web Descriptor Section

This section of the content submission file describes the content to subscribers. The information provided in this section is presented to customers when they are browsing the list of available content. Include this section only if <Action> is New. Tags for this section are defined in TABLE 6 (required tags are so noted).

 


TABLE 6 Web Descriptor Tags

Tag Name

Tag Description

<WebDescriptor>

This tag is required.

The web descriptor section of the content submission file must begin with this top-level web submission tag.

<Category>

This tag is required.

It indicates the server categories under which the content will be cataloged, for example: Home:Business:Finance. To specify more than one category, provide more than one <Category> tag. You can see the existing categories defined for Content Delivery Server through the Developer Portal.

This tag is valid within <WebDescriptor>.

<CustomField>

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

This tag specifies an additional property of the edition that can be used to identify the edition or to gather more vending information about the edition. More than one custom field can be specified.

Custom fields are defined by a Content Delivery Server administrator. Custom fields can be defined as required or optional. It is your responsibility to determine what custom fields exist for the content, if any, and whether the field is required.

customKey takes an alphanumeric character with no spaces. Valid special characters are underscore (_) and hyphen (-).

value is data that is relevant to the key, such as a name, number, or date.

Specify one <CustomField> tag for each custom field you are submitting. Submission rules are as follows:

  • If no custom fields are defined for the content and you include custom fields in your submission, the submission is rejected.
  • If custom fields are defined as required for the content and you do not provide custom fields in your submission, the submission is rejected.
  • If custom fields are defined as optional for the content and you do not provide custom fields in your submission, the submission is accepted as long as all other submission criteria are met.

This tag is valid within <WebDescriptor>.

<DeveloperContentID>

This tag specifies a personal identifier for your system to use to identify this content. This ID is for your use only. It is not used by Content Delivery Server. It takes a string of alphabetic and numeric characters.

This tag is valid within <WebDescriptor>.

<DeviceIcon>

<DeviceIcon src="path"/>

This tag specifies a graphic to display on the device’s screen. This value must be the fully qualified file name of a graphic file within the package, for example, src="/icon/deviceicon.gif".

The graphic file must be a GIF with the extension .gif and must be 40 pixels wide and 40 pixels high. If you define a path that does not exist, your submission fails. If you do not define a path for the icon, a default icon is provided.

This tag is valid within <WebGroup>.

<DisplayName>

This tag is required.

It specifies the content title that is shown on the server’s web interface, for example, Stock Ticker. This value can be a maximum of 20 characters including spaces.

This tag is valid within <WebGroup>.

<InfoURL>

This tag indicates a web site with content or vendor information. If you are submitting a MIDlet, this variable overrides the MIDlet-Info-URL defined in your JAR manifest file.

This tag is valid within <WebDescriptor>.

<LargeIcon>

<LargeIcon src="path"/>

This tag specifies a graphic to display on the server’s web interface. This value must be the fully qualified file name of a graphic file within the package, for example, src="/icon/largeicon.gif".

The graphic file must be a GIF with the extension .gif and must be 80 pixels wide and 80 pixels high. If you define a path that does not exist, your submission fails. If you do not define a path for the icon, a default icon is provided.

This tag is valid within <WebGroup>.

<LongDescription>

This tag is required.

It takes a text string that further describes the content, for example:

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.

This value can be a maximum of 512 characters.

This tag is valid within <WebGroup>.

<Preview>

<Preview src="path"/>

This tag specifies a preview file that the subscriber can sample before purchasing the content. This value must be the fully qualified file name within the package, for example, src="ring1_preview.wav" for a ring tone or
src="mazegame_preview.jad" for a MIDlet.

Preview files are not required. If a file is provided, the file must be a type supported by Content Delivery Server. No default is provided. If preview is not enabled by the Catalog Manager administrator for the content type, then the preview file is ignored.

This tag is valid within <WebGroup>.

<ScreenShot>

<ScreenShot src="path"/>

This tag specifies screen shots to display on the server’s web interface. To specify a second screen shot, provide an additional <ScreenShot> tag. The value must be the fully qualified file name of a graphic file within the package, for example, src="/graphics/screen1.jpg".

Screen shots are not required. If a screen shot is provided, the graphic file must be a JPEG file with the extension .jpg and must be 200 pixels wide and 190 pixels high. No default is provided.

This tag is valid within <WebGroup>.

<ShortDescription>

This tag is required.

It takes a text string that describes the content, for example, Get the latest stock quotes.This value can be a maximum of 40 characters.

This tag is valid within <WebGroup>.

<SmallIcon>

<SmallIcon src="path"/>

This tag specifies a graphic to display on the server’s web interface. This value must be the fully qualified file name of a graphic file within the package, for example, src="/icon/smallicon.gif".

The graphic file must be a GIF with the extension .gif and must be 40 pixels wide and 40 pixels high. If you define a path that does not exist, your submission fails. If you do not define a path for the icon, a default icon is provided.

This tag is valid within <WebGroup>.

<UserGuide>

<UserGuide src="path"/>

This tag specifies an Adobe PDF file as instructions for the content. This value must be the fully qualified file name of a PDF file within the package, for example, src="/docs/usersguide.pdf".

Documentation is not required. If a file is provided, the file must be an Adobe PDF file. No default is provided.

This tag is valid within <WebGroup>.

<WebGroup>

This tag is required.

It encloses locale-specific content descriptions. It can contain the following valid tags: <DisplayName>, <ShortDescription>, <LongDescription>, <DeviceIcon>, <SmallIcon>, <LargeIcon>, <UserGuide>, <Preview>, and <ScreenShot>.

This tag is valid within <WebDescriptor>.


Sample Content Submission Files

The sample file shown in CODE EXAMPLE 1 describes a package that contains a stock ticker application that requires specific device capabilities. This application is being submitted for the first time.


CODE EXAMPLE 1 Content Submission File for New Application Content
<?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>

The sample file shown in CODE EXAMPLE 2 includes two previews that are available when using a WAP browser on the device-based Subscriber Portal and one preview that is available when using a web browser on the PC-based Subscriber Portal. Of the two files targeted for a WAP browser, one is the content file itself and one is a different version of the content. The file targeted for the web browser is the content file itself. Custom fields are included for each content submission with one pair of fields defined for the content item and a different pair of fields defined for content edition.


CODE EXAMPLE 2 Content Submission File for New Ring Tone Content
<?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>

The sample file shown in CODE EXAMPLE 3 describes a package that contains a new edition of the stock ticker application that targets the Siemens SL45i device.


CODE EXAMPLE 3 Content Submission File for a New Locally Hosted Edition
<?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>

The sample file shown in CODE EXAMPLE 4 describes a package that contains an update to the stock ticker application.


CODE EXAMPLE 4 Content Submission File for an Update of Existing Content
<?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>

Creating a Provisioning File

If the contents you are submitting are packaged as a PAR file, you must include a provisioning.xml file. TABLE 7 lists the tags that a provisioning can contain.


TABLE 7 Provisioning File Tags

Tag Name

Tag Description

<provisioning-archive>

This is the top-level tag in the provisioning file and encloses the entire document.

<bundle-type>

The bundle type. For MIDlets, the type must be APPLICATION. Contact the operator for information on other valid content types.

This tag is valid within <client-bundle>.

<client-bundle>

This tag contains all the tags that define a specific content bundle. Include a <client-bundle> tag for each content item or for each additional edition being submitted.

Note - You cannot include new editions of content in a PAR file when submitting the first edition. Later editions of content must be submitted in a provisioning file separate from the initial submission.

This tag is valid within <provisioning-archive>.

<content-file>

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

This tag is required when packaging static content.

The content-file element. The text contents of this element must be a URI for the content file. The URI can be absolute (that is, it can have a scheme such as http://), indicating that the content file is not inside the PAR file. Otherwise, it is interpreted relative to the PAR file root. For iAppli content, provide the URL to the JAM file. For all other content types, provide the URL to the content.

If bundled content does not contain a descriptor file, the <content-file> tag must be included to indicate where the content is located. This link can be relative or absolute. The content files for the bundle must be made available to the server.

This tag is valid within <client-bundle>.

<content-id>

The unique Content ID per developer. If a developer resubmits the content with same ID, it is added as an edition to the existing content in the system.

Editions can be added depending on the status of the content in the Catalog Manager. See Update Guidelines for information on when editions can be submitted and what aspects of the content can be changed depending on its status.

This tag is valid within <client-bundle>.

<descriptor-file>

This tag is required only if submitting a MIDlet.

The descriptor-file element. The text contents of this element must be a URI for the descriptor file. The URI can be absolute (that is, it can have a scheme such as http:// ), indicating that the descriptor file is not inside the PAR file. Otherwise, it is interpreted relative to the PAR file root.

This tag is valid within <client-bundle>.

<description>

The bundle description. This tag is used for both long and short descriptions.

This tag is valid within <client-bundle>.

<device-requirement>

This tag is required if specifying specific device requirements.

Valid tags within <device-requirement> are: <requirement-name> and <requirement-value>.

This tag is valid within <client-bundle>.

<display-name>

This tag is required.

For a first submission, display-name is the catalog display name of the content and the edition name for the first edition of the content. Currently, only one locale is supported. For a subsequent edition, display-name is the edition name of the new edition being added and must be unique.

The value for <display-name> can be a maximum of 20 characters.

This tag is valid within <client-bundle>.

<icon>

<icon mime-type=’image/gif’>

The MIME type of the icon, if any. This tag is used for device, small, and large icons.

This tag is valid within <client-bundle>.

<requirement-name>

This tag is required if specifying device requirements.

Specifies a hardware characteristic of the device. The following values are supported:

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

This tag is valid within <device-requirement>.

<requirement-value>

This tag is required if specifying device requirements.

Provides the value of the hardware characteristic specified in the <requirement-name> tag.

This tag is valid within <device-requirement>.

<user-descriptions>

This tag is required.

Content descriptions are defined within the <user-descriptions> tag.

Valid tags within user-descriptions> are: <display-name>, <description>, and <icon>.

This tag is valid within <client-bundle>.


All PAR submissions are currently treated as free content and are placed in the Home:Featured category by default.

You can include multiple client-bundle tags in a provisioning file if you are submitting more than one item of content or additional editions. You cannot include new editions of content in a PAR file when submitting the first edition. Later editions of content must be submitted in a provisioning file separate from the initial submission.

See Creating the Package for restrictions that apply when creating a package using a PAR file.

See Update Guidelines for information on when editions can be submitted and what aspects of the content can be changed depending on its status.

Details of the contents of a provisioning file (provisioning.xml) are described in the J2EE Client Provisioning Specification, version 1.0 (JSR-124) available at
http://www.jcp.org/en/jsr/detail?id=124. CODE EXAMPLE 5 shows an example of a provisioning file:


CODE EXAMPLE 5 Provisioning File Example
<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>

Creating the Compression File

After you create the content file, support files, and either the ContentSubmission.xml file or the provisioning.xml file, create a compression file for your content.

TABLE 8 lists the contents of the compression file.


TABLE 8 Compression File Contents for ZIP or PAR Files

File

For Packaged ZIP Files

For Packaged PAR Files

Content file

Must be placed at the root level.

 

For applications, both the JAD and JAR files must be placed at the root level.

Can be placed at any level, including the root level.

 

For applications, the JAD and JAR files must both be placed at the same level.

Submission file

The ContentSubmission.xml file must be in the meta directory.

Not applicable.

Provisioning file

Not applicable.

The provisioning.xml file must be in the META_INF directory.

Support files

Can be placed at any level below the root level.

Can be placed at any level, including the root level.


The following figure shows a sample ZIP file for a ring tone that also contains a preview file in the preview subdirectory.


Details of ZIP file containing ring tone and preview

The following figure shows a sample ZIP file for an iAppli application that also includes supporting documentation, icons, and screen shots in subdirectories.


Details of ZIP file containing iAppli files, image files, and documentation

If you want to submit more than one item, create a package ZIP file for each item. For example, if you have four different images, make four package ZIP files and bundle them into a single ZIP file.


Details of ZIP file containing packaged files of multiple images

You can bundle multiple package ZIP files into a single submission file as long as the ZIP files contain the same content type. For example, a submission file can contain two or more package ZIP files that contain images, but cannot include a package ZIP file that contains an application. You cannot bundle multiple package PAR files.

Packaging Editions

Editions are alternate versions of content that run on devices with different capabilities. For example, you can create one edition of the stock ticker application that runs on the Nokia 6310i device and a second edition of the application that runs on the Siemens S55 device. Each edition shares the web descriptor properties of the first edition submitted. For more information on editions, see Editions.

You must package each edition separately. The ContentSubmission.xml file for the first edition must specify New for the action. Be sure to specify the following items in the ContentSubmission.xml files for each subsequent edition:

Do not include the <WebDescriptor> tag.



Note - If you submit the content files for the first edition to Content Delivery Server for local storage, all subsequent editions must be submitted with content files. Similarly, if you submit a URL for the first edition, all subsequent editions must be hosted externally.


Because the order in which packages are processed when submitted in a single file cannot be guaranteed, submit the first edition separately. After you receive confirmation that the first edition was received, you can bundle the remaining editions and submit them in a single ZIP file. Edition updates cannot be submitted as a PAR file.

Editions can be added depending on the status of the content in the Catalog Manager. See Update Guidelines for information on when editions can be submitted and what aspects of the content can be changed depending on its status.

See CODE EXAMPLE 3 or CODE EXAMPLE 6 for a sample content submission file for a new edition.

Packaging External Content

To package external content, you must create the following files:

To create your ContentSubmission.xml, support files, and compression file, use the instructions for packaging content (Creating the Package) with the following differences:

The URL for the external content. The URL specified must use the
http:// protocol and point to a file with a MIME type supported by Content Delivery Server. The URL must return content-type and last-modified HTTP header fields.



Note - For MIDlets, the URL must point to a .jad file with the MIME type text/vnd.sun.j2me.application-descriptor. The .jad file must contain the statement MIDlet-Jar-URL: url-to-jar, where the value specified for url-to-jar points to a .jar file with the MIME type application/java-archive. The URL must return content-type and last-modified HTTP header fields.

For iAppli applications, the URL must point to the application descriptor file (.jam) with the MIME type application/x-jam. The .jam file must contain the statement DOJA_PACKAGE_URL: url-to-jar, where JAR is application/java-archive.


If authentication is required to access the content pointed to by the URL, the <ContentURL> tag must contain an <Authentication> tag.


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

Identifies the user name and password used to access the content. The type is either None or Basic. If None is specified, the user name and password are ignored.

CODE EXAMPLE 6 shows a sample content submission file for submitting external content.


CODE EXAMPLE 6 Content Submission File for an Externally Hosted New Edition
<?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>

The compression file must be in the ZIP format. The compression file must contain the following items:



Note - Any content file included in the compression file is ignored.


Packaging Live Streamed Content

To package live streamed content, you must create the following files:

To create your ContentSubmission.xml, support files, and compression file, use the instructions for packaging content (Creating the Package) with the following differences:

The URL for the streamed content specified can use the
HTTP or RTSP protocol and must point to a file with a MIME type supported by Content Delivery Server. Once the streaming server is integrated with Content Delivery Server, it can stream the content from the submitted URL.

If authentication is required to access the content pointed to by the URL, the <ContentURL> tag must contain an <Authentication> tag.


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

Identifies the user name and password used to access the content. The type is either None or Basic. If None is specified, the user name and password are ignored.

CODE EXAMPLE 6 shows a sample content submission file for submitting external content.


CODE EXAMPLE 7 Content Submission File for Live Streamed Content
<?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>

The compression file must be in the ZIP format. The compression file must contain the following items:



Note - Any content file included in the compression file is ignored.



procedure icon  Submitting Content to the Content Aggregator Interface

The Content Aggregator Interface supports XML-RPC for submission of content. Content submitted to this interface is treated as external content (see Content Hosting). Unlike submitting content as previously described, submitting content to the Content Aggregator does not involve a graphical user interface.

To submit content to the Content Aggregator Interface:

1. Create the XML file that describes the content

See Creating the XML File for the Content Aggregator Interface.

2. Post the XML file.

See Posting the XML File.


procedure icon  Creating the XML File for the Content Aggregator Interface

Create the XML file that describes the content. This file is the same as the content submission file described in Creating a Content Submission File except for the following differences:

This tag sets the user name for your account with the Developer Portal. You must have an account to submit content.

This tag sets the password for your account with the Developer Portal.

This tag sets the URL for the external content. The URL specified must use the
http:// protocol and point to a file with a MIME type supported by Content Delivery Server. The URL must return content-type and last-modified HTTP header fields.

For MIDlets, the URL must point to a .jad file with the MIME type text/vnd.sun.j2me.application-descriptor. The .jad file must contain the statement MIDlet-Jar-URL: url-to-jar, where the value specified for url-to-jar points to a .jar file with the MIME type application/java-archive. The URL must return content-type and last-modified HTTP header fields.

For iAppli applications, the URL must point to the application descriptor file (.jam)with the MIME type application/x-jam.

If authentication is required to access the content pointed to by the URL, the <ContentURL> tag must contain an <Authentication> tag.


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

Identifies the user name and password used to access the content. The type is either None or Basic. If None is specified, the user name and password are ignored.

The support files are copied from the specified location to Content Delivery Server.

Use this tag to specify a price and usage for the content. This tag is required only if <Action> is New.

This tag encloses the section that describes the price you place on your content. Valid tags in this section are:

Be aware that the operator might not support all pricing models. Your submission fails if you specify a pricing model that the operator does not support. Determine which pricing models are supported, ask the operator or submit content using the submission wizard (see Submitting New Content with the Wizard), and note the pricing models shown in Step 9. Following are the pricing model tags:

Use this tag when you want customers to download content free of charge.

Use this tag when you want customers to pay for only the first download of content. This pricing model is valid for all content types.


TABLE 9 Example of the First Download Pricing Model in Price Descriptor

Descriptor and Pricing Attributes

Description

Descriptor Text

<FirstDownload price="0.79" />

price

Sets the price charged for the initial download. The value must be in the currency as defined for the system by the operator. The default value is 0.


Use this tag when you want customers to pay for every download of content. This pricing model is valid for all content types.


TABLE 10 Example of the Every Download Pricing Model in Price Descriptor

Descriptor and Pricing Attributes

Description

Descriptor Text

<RecurringDownload price="0.79" />

price

Sets the price charged for every download. The value must be in the currency as defined for the system by the operator. The default value is 0.


Use this tag when you want to set a specific time in which customers can download content at the specified price. This pricing model is valid for all content types using OMA DRM.


TABLE 11 Example of the Per Interval Pricing Model in Price Descriptor

Descriptor and Pricing Attributes

Description

Descriptor Text

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

price

Sets the price for the download. The value must be in the currency as defined for the system by the operator. The default value is 0.

startDate

Indicates the first day content can be downloaded for the price specified. Used in conjunction with endDate.

Format: mm/dd/yyyy

endDate

Indicates the last day content can be downloaded for the price specified. Used in conjunction with startDate.

Format: mm/dd/yyyy


Use this tag when you want to set a range of time in which customers can download and run content at the specified price. This pricing model is valid for all non-SMS content types.


TABLE 12 Example of the Per Period Pricing Model in Price Descriptor

Descriptor and Pricing Attributes

Description

Descriptor Text

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

price

Sets the price for the download. The value must be in the currency as defined for the system by the operator. The default value is 0.

numberOf

Indicates the number of days, weeks, months, or years content can be downloaded and run for the price specified.

Valid value is an integer greater than 0.

timeInterval

Indicates the length of time content can be downloaded and run for the price specified.

Valid values are days, weeks, months, years


Use this tag when you want customers to have use of content for a period of time. A subscription renewal notification is sent to customers at the end of the subscription period. This pricing model is valid only for MIDlets.


TABLE 13 Example of the Per Subscription Pricing Model in Price Descriptor

Descriptor and Pricing Attributes

Description

Descriptor Text

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

price

Sets the price for the download. The value must be in the currency as defined for the system by the operator. The default value is 0.

frequency

Indicates the period of time to which a single charge applies.

Valid values are daily, weekly, monthly, yearly.


Use this tag when you want to offer N number of free uses of content before customers are charged. Another pricing tag must be included within <PriceDescriptor> when specifying a trial. This tag must cannot be used alone.

This tag is used when you want customers use content a specified number of times. This pricing model is valid only for MIDlets.


TABLE 14 Example of the Usage Pricing Model in Price Descriptor

Descriptor and Pricing Attributes

Description

Descriptor Text

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

price

Sets the price for the download. The value must be in the currency as defined for the system by the operator. The default value is 0.

uses

Indicates the number of times the content can be used for the price specified.

Set to a number greater than 0.


You can only use one of the following tags, <PricingOptionID>, <PricingOptionName>, or <PriceDescriptor> in the XML file, otherwise, the submission fails.

<PricingOptionID> and <PricingOptionName> are defined as follows:

This tag specifies a unique identifier for the content’s pricing option. It takes a string of alphabetic and numeric characters. Symbols and special characters in the string are invalid.

This tag specifies an external pricing option name used by external systems to identify the content. It takes a string of alphabetic and numeric characters. Symbols and special characters in the string are invalid.

CODE EXAMPLE 8 shows a sample XML file for submitting a new image using XML-RPC with <PriceDescriptor>.


CODE EXAMPLE 8 XML File for XML-RPC Submission Using PriceDescriptor
<?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>

CODE EXAMPLE 9 shows a sample XML file for submitting a new image using XML-RPC with <PricingOptionID>.


CODE EXAMPLE 9 XML File for XML-RPC Submission Using PricingOptionID
<?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>

CODE EXAMPLE 10 shows a sample XML file for submitting a new image using XML-RPC with <PricingOptionName>.


CODE EXAMPLE 10 XML File for XML-RPC Submission Using PricingOptionName
<?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>

Posting the XML File

Use HTTP Post to post the XML file to
http://portal-host:port/developer/XMLSubmission where portal-host and port are the domain name and port number for the Developer Portal. Contact the operator for this information.

The Content Aggregator Interface responds with an XML file. The following example shows the response if the submission is successful.


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

The next example shows a sample response if the submission fails. <ResultCode> is non-zero and <ResultDetails> provides the error message.


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

Content Delivery Server sends an email to you that describes the status of your submission. See Submission Verification Notices for more information.


Managing Submitted Content

The Developer Portal maintains a record of all items that you submit, whether submitted through the Developer Portal or the Content Aggregator Interface. Use the Developer Portal to view the list of items and the details of each item.


procedure icon  Viewing Submissions

To view the list of submitted content, follow these steps:

1. Log in to the Developer Portal.

2. Click the Content List tab to show the list of submitted content.

The following information is shown for each item:



Note - This is the default information displayed. You can work with your system administrator to change the content property fields that are displayed.


To view the details for an item, click the title of the item in the content list. The content properties are shown.The list of editions for that item is at the end of the properties. An edition can have one of the following statuses:

To view the details for an edition, click the edition name.

Searching for Submitted Content

Locating a specific content item can be difficult when you have a large number of content. You can locate content items and obtain information about the items in several ways:

Basic search techniques are described here:

For advanced search techniques, see Advanced Searching.


procedure icon  Performing a Simple Search

To search for content, follow these steps:

1. Log in to the Developer Portal.

2. Click the Content List tab to show the list of submitted content.

3. Enter either a single keyword or phrase in the Search text field.

Search queries are case insensitive except for range and wildcard searches, for which you must use lowercase characters. See Advanced Searching for information on using wildcard characters and other advanced searching techniques that you can use to locate and sort content.

4. Click Submit.

A list of all content matching the search entry is displayed. For more information on search results, see Search Result Displays.

Exporting Search Results

You can save the search results to a comma separated results lists in a text file. Click one of the following icons on the Browse and Search Result page:


Icon

Description


Export results on page icon

 

Creates a list of the search results currently displayed on the page.


 

All export results icon

 

Creates a list of all the search results.


Right-click on the Export Save page to save the file to a desired location.


procedure icon  Performing a Field Search

You can search for properties of content by specifying one or more content search fields. See Search Fields for a list of field names.

To search for specific information, follow these steps:

1. Enter the search field name followed by a colon and a value in the Search text field.

For example: status:New

To search for multiple properties, enter a search field name and a value followed by the AND operator and another search field name and value.

For example: status:New AND shortdesc:game

2. Click Submit.

The search returns a list of content that match all the search criteria.

Searching for Custom Fields

Enabled custom fields provided by Content Delivery Server are searchable by default, however, the system administrator can specify that a custom field not be searchable. If search fails for a custom field, contact your system administrator. When searching for a custom field name, you must enter the full field name including the emf. prefix.

For example, status:new AND emf.artist:jones

To search for the custom field of a specific content type, use a Boolean operator to modify the query.

For example, emf.artist:jones NOT ctype:images

Custom fields provided by Content Delivery Server that you can search for are start_time and end_time.

See Search Fields for a list of valid search field names. You can search for most properties of content and editions. See Advanced Searching for examples of advanced searching techniques. For more information on search results, see Search Result Displays.


procedure icon  Displaying Additional Content Information

In addition to the default set of content information displayed in the Browse and Search Results page, you can specify other content properties that you want shown in the search results display.

To display content information not included in the default search results, follow these steps:

1. Enter the keyword or search query.

2. Add &fl=value, where value is another search field name.

For example: shortdesc:game&fl=version

Note that & must come immediately before fl.

3. Click Submit.

All content containing “game” in their short descriptions are displayed in the results and the Version field is included in the search results display. To display multiple additional fields, separate the field names with commas:

shortdesc:game&fl=version,dpprice,preview

You can specify just &fl=value in the Search text field to see the values of a specific property for all content.


procedure icon  Displaying a Specified Number of Content Rows

You can specify the number of rows of content you want displayed in the search results.

To display a specific number of matched content, follow these steps:

1. Enter the search keyword or query.

2. Add &rows=N where N is the number of rows you want to see in the search results.

For example,

ctype:ringtone&rows=25

returns content items of type ringtone first and displays the first 25 items.

If you include a sort field, the first N number of sorted content is displayed, for example,

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

returns content of type ringtone sorted alphabetically by title and the first 25 sorted items are displayed.

Clicking on a column title on the Browse and Search Results page sorts the listed content relevant to that property field and the first 25 items of that sort request are displayed. For more on sorting, see Sorting the Content List.

You can also specify just &rows=N in the Search text field to display a specific number of contents on the resuts page. For example, if you have 200 content items and the content display is set to show only 20 items per page, you can specify &rows=200 to see content on one page.


procedure icon  Displaying A Specified Number of Matches

You can perform a search and have the results returned offset by the integer value specified with &start. For example, if you have a large number of content that you know match the query and are interested only in seeing the later matches, use &start to skip matched items in the first part of the results list.

In the search query, add &start=N to see the last N rows in the search results. For example,

devname:jones&start=44

returns the content items submitted by Jones and displays the list of matches starting with the 45th item in the results list.

You can also specify just &start=N in the search field to display a specific portion of contents on the resuts page. For example, if you have 200 content items and you only want to see the last 20 items, you can specify &start=180 to display the last 20 content items.

Search Result Displays

The property fields displayed on the search results page are dependent on the search result display properties, which are configured by the system administrator:

The exact set of content property fields that are shown depends on the configuration of the each property set by the system administrator. To ensure that the search results display the information you want to see for each type of search, work with your system administrator to define the desired search result displays. See the online help in the Catalog and Vending Manager for information on performing search queries. See the Sun Java System Content Delivery Server Integration and Configuration Guide for information on editing the search results properties. See the Sun Java System Content Delivery Server Reference Manual for more information on searching and sorting.

By default, the content property fields that Content Delivery Server displays when a keyword or field query search are Title, Content Type, Category List, Suggested Price, Status Message, and Status. The default display for a user-defined search shows only the fields specified with &fl or &sort.

For queried fields with the potential for long character strings, such as status messages and long descriptions, only the first 40 chararcters are displayed in the search results. Click on a content item to see the full entry on the content’s property page.



Note - Search results are produced from the search database, which is periodically reindexed. If content is changed after the last reindexing of the search database, the results shown on the Browse and Search Result page might not immediately reflect the most current state of the content. For example, if a status change is made, the results might show the modified content as having the prior status.



procedure icon  Sorting the Content List

You can sort content in the following ways:

To set the sort order in a search query, follow these steps:

1. Enter the search keyword or specify a property field and optionally, an ascending or descending value.

2. Add &sort= then specify the sort order and optionally, an ascending or descending value.

For example: shortdesc:game&sort=dpprice asc

The sort pair consists of the field-name, which is the sort order type, and either asc (for ascending order) or desc (for descending order).

3. Click Submit.

All content containing “game” in their short descriptions are displayed in order of increasing monetary value of the Developer Suggested Price.

When specifying more than one sort order, separate the sort orders by commas. For example, shortdesc:game&sort=dpprice asc,ctype desc



Note - Although you can sort content using most of the searchable fields, you cannot sort content using search fields that take multiple values, for example, category or matcheddeviceid.


For information on search and sort result displays, see Search Result Displays.

Sorting Results

If you specify a sort order in the search query, the matching contents on the search results page are listed in order specified. If you do not specify a sort order, the contents are sorted based on their search score and listed in descending order of the score value. The score value of a content item is determined by how completely the content’s information matches the specified query.

On the search results page, if you specify multiple sort orders in the search query, the first order specified takes precedence and the following sort orders are processed based on the initial ordering. This is sequence of sorting also applies in the case where a sort order is specified in the search query and a column title is clicked in the search results page. The contents are sorted based on the first sort order specified in the query. Subsequent sorts are based on the initial sort ordering.

Search Fields

Content property field names, field-name, are shown next to each property. Use these field names when performing a field search. Note that field names entered in the search query are case sensitive.

Fields that take a date as a value must be of the form yyyy-mm-ddThh:mm:ssZ and must be entered as a range of time. For example, to search for content that was reindexed from noon August 04, 2007 to noon August 05, 2007, enter the following query:

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


Note - Note that time is based on a 24-hour clock.


You can search for the following content properties:


TABLE 15 Search Fields for Content

Search Field Name

Description

Value

Sortable Field

category

List of content categories

String.

For example, Games

No

categoryid

List of category identifiers for all categories under which a a content item is listed

Numeric.

For example, 13 14 9 2

No

cmprice

Catalog price of content

Note that the same searchable pricing characteristics for dpprice are applicable to cmprice. To search, replace dpprice for cmprice. For example, the catalog suggested monetary value is cmprice_value. See dpprice pricing characteristics for descriptions.

To search for a specific monetary amount, use cmprice_value.

String.

For example,
free, usage, weekly, download, 2 uses, or subscription

Yes

ctype

Content item type

String.

For example, image

Yes

devcontentid

Developer content ID

String.

For example, rsmith22

Yes

devid

Developer ID

Numeric.

For example, 004

Yes

devname

Developer name

String.

For example, rsmith

Yes

dpprice

Price of initially submitted content

To search for a specific monetary amount, use dpprice_value.

String.

For example,
free, usage, weekly, download, 2 uses, or subscription

Yes

dpprice_enddate

The last day content with a Per Interval pricing model can be run

Value takes the form: yyyy-mm-ddThh:mm:ssZ

Date.

For example,
[2007-09-04T00:00:00Z TO
2007-09-04T23:59:59Z]

Yes

dpprice_freqocc

Frequency that content can be downloaded

Text.

For example, monthly

Yes

dpprice_model

Pricing model of content.

String.

Pricing Model takes the following values:

  • Free - No charge, unlimited uses and downloads
  • TrialUsage - Free for a limited number of uses
  • FirstDownload - Charge on first download only
  • ReurringDownload - Charge per download
  • Subscription - Charge each time subscription is renewed
  • Usage - Charge for some number of uses
  • LimitedTime - Charge for use within a specific set of dates
  • Period - Charge for use within some period of time
  • Bundle - Charge for download of bundled content

Yes

dpprice_noofdays

Number of days content can be downloaded

Numeric.

For example, 30

Yes

dpprice_nooftimes

Number of times content can be downloaded

Numeric.

For example, 25

Yes

dpprice_startdate

First day content with a Per Interval pricing model can be run

Value takes the form: yyyy-mm-ddThh:mm:ssZ

Date.

For example,
[2007-08-04T00:00:00Z TO
2007-08-04T23:59:59Z]

Yes

dpprice_value

Monetary value of submitted content

Numeric.

For example, 1.25

Yes

longdesc

Content item’s long description

String.

For example, nature scenes coastline

Yes

planid

List of plan IDs

Numeric.

For example, 1 1001 1000

No

preview

Whether content has a preview

Boolean value of true or false

Yes

rcid

Content class ID

Numeric.

For example, 3001

Yes

shortdesc

Content item’s short description

String.

For example, nature scenes

Yes

status

Content status

String.

For example, new

Yes

text

String contained in the following content fields: type, title, short description, long description, category, developer name, and status

String.

For example,
chart spreadsheet

No

timestamp

Last date content reindexed

Date.

For example,
[2007-07-12T00:00:00Z TO
2007-07-12T23:59:59Z]

Yes

title

Content title

String.

For example, Goldminer

Yes




Note - Exact string matches can be performed by adding _exact to these fields: ctype, devcontentid, devname, longdesc, shortdesc, status, and title. For information on performing exact searches, see Exact Search.


The following custom fields provided by Content Delivery Server are searchable and sortable:

TABLE 16 lists the edition properties you can search:


TABLE 16 Search Fields for Content Editions

Search Field Name

Description

Value

Searchable Field

edname

Title of the edition

String.

For example,
City Map - Large

No

edstatus

Status of the edition

String.

For example, new

No

lastmoddate

Most recent date edition was modified

Date.

For example,

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

No

loctype

Location type for streamed content edition

String.

This field takes the following values:

  • I - Internal content
  • E - Externally hosted content
  • C- Copyrighted content
  • S - Streamed content submitted with an SDP file
  • U - Streaming URL

No

matcheddevice

List of devices matched for this edition as determined by capability matching

String.

For example, Motorola T720 Nokia 7610

No

matcheddeviceid

List of device IDs matched for this edition as determined by capability matching

String.

For example, 1011 2001 3000

No

maxsize

Size of edition binaries as determined by capability matching

Numeric.

For example, 47923

No

riid

Edition resource identifier

Numeric.

For example, 6008

No

statusmsg

Status message defined by Catalog Manager for the edition

String.

For example, May require testing

No

subdate

Submission date of the edition

Date.

For example,

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

No

version

Version of the edition

Numeric.

For example, 2.4 1.2

No

weight

Weight of the edition

Numeric.

For example, 50.0 or 33.7

No


Advanced Searching

You can search for content items based almost any of their identifying properties, such as content title, status, content provider, short description, and price. You can also narrow the search significantly by searching for a specific set of properties, grouping search terms, and more.

You can perform the following types of searches:

Simple Word or Phrase Search

Search queries are case insensitive. To search for a single word or phrase, enter an alphanumeric text string. Set phrases in double quotes. For example,

"Blue Eyes"

retrieves all content containing the phrase “blue eyes.” Without the quotes, the search returns all content containing the terms “blue” and “eyes” or just “blue” or just “eyes” in the content information.

To search for similar words, place a tilde (~) at the end of the search string. For example,

ball~

retrieves all content containing like terms, such as balls, bell, or ballad.

To search for words that closely match the search word, apply a weight indicator after the tilde (~). For example,

ball~0.9

retrieves all content containing terms, such as balls but not bell. The weight indicator is a value between 0 and 1, where 1 is an exact match. If no weight is given, the default value used is 0.5.

Property Fields Search

You can narrow a search by specifying the particular fields of information. In the Search text field, enter field-name:value as shown:

ctype:ringtone

You can enter a phrase after the field name but only the string immediately after the colon is valid. For example,

title:Am I Blue

returns all content having a title containing “Am.” To match the full title, place the entire value in double quotes.



Note - Field names entered in the search query are case sensitive.


Multiple Field Search

You can search for more than one field at a time. For example,

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

returns all published content provided by the developer, jdoe, that contain the string “blu” in the title.

Range Search

You can enter a range, numerical or lowercase alphabetical for a field. For example,

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

lists all content editions submitted from 11:30 pm on April 3, 2006 to 11:30 pm on April 4, 2007 inclusive.



Note - Time periods consist of date and time and must be within brackets and of the form: yyyy-mm-ddThh:mm:ssZ. Time is based on a 24 hour clock.


To perform an exclusive search, use curly braces instead of brackets. For example,

devname:{benson TO lewis}

returns all content that have developer name fields where the values are alphabetically between Benson and Lewis but does not include either Benson or Lewis.

Wildcard Search

You can perform single character or multi-character wildcard searches. You must use lowercase characters in a wildcard search. Also, you cannot use wildcard symbols as the first character in the query and you cannot use wildcards in field names.

Use the question (?) symbol to perform a single character wildcard search. For example,

b?ll

returns the matches ball, bell, bill, boll, or bull.

Use the asterisk (*) symbol to perform a multiple character wildcard search. For example,

bel*

returns the matches bells, believe, below, and such.

Special Characters Search

You can use the following special characters in the search query:

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

To use the actual characters in the search, place a backslash (\) before the character. For example,

hot\+cold

searches for the string “hot+cold” that contains the plus sign.

Exact Search

You can search for a specific content item by adding _exact to certain fields. For example,

title_exact:Spruce

returns only content with the specific title Spruce, and not content containing the string spruce, such as Spruce Clock or SpruceTime.

Use _exact with one of the listed fields to search for exact matches of strings containing a special character at or near the end of the search strings. For example,

shortdesc_exact:mystery\?

returns only content items containing Mystery? in their short descriptions. If you do not include _exact, the search returns close matches, such as mystery magic, Mystery? Maze, and mystery?island.



Note - Search queries using _exact are case insensitive. Using the preceding example, short descriptions containing the string mystery? are also returned.


You can search for an exact sequence of characters by adding _exact to the following search fields:

Search Using Boolean Operators

TABLE 17 lists the Boolean operators that are valid in a search query:


TABLE 17 Search Operators

Operator

Description

+

Matches content that contains required search query items. Place the + before the required term. For example,

blue suede +shoes

returns matches containing “shoes” and might contain “blue” or “suede.”

blue "suede shoes"

returns content containing “suede shoes” and might contain “blue.”

-

Matches content that contains the search query items except for items designated to be omitted. Place the minus (-) before the term you want omitted from the search. For example,

blue -moon

returns matches containing "blue" but not "moon."

blu* -"suede shoes"

returns content containing the string “blu” but not the phrase “suede shoes.”

OR

Matches content contains at least one keyword or field value. For example,

devname:jdoe OR preview:true

returns content that have “jdoe” as the content developer or has a preview.

AND

Matches content that contains both search query items. For example,

devname:jdoe AND status:New

returns content that have “jdoe” as the content developer and has a status of New.

NOT

Matches content that contains both search query items. For example,

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

returns content editions that have a submitted date of 02/02/200 but not submitted by “jdoe.”


Grouping Search Items

You can perform subqueries by using Boolean operators. For example:

blue AND (eyes OR shoes)

returns all content containing the term “blue” and either the term “eyes” or the term “shoes.”

Grouping Terms in Fields

You can use the plus (+) sign to group words or phrases in a field search. For example:

title=(+Behind +"Blue Eyes")

returns all content with a title containing “blue eyes” and “behind.”

Relative Time Period Searches

To search for content submitted during a relative period of time, such as content submitted yesterday or two days ago, use the term NOW with the relative time and put the time period in the format of a range search.For example,

subdate:[NOW-1DAY TO NOW]

returns all content editions submitted between yesterday and today. You can use a “+” to look for content with a future expiration date, such as content that have a subscription pricing model. For example,

dpprice_enddate:[NOW TO NOW+3DAYS]

returns all content that have an availability date that ends three days from the current date.

You can also include N number of months as well as days. For example,

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

returns all content that have an availability date that ends between today and four months and three days from today.

Proximity Searches

To search for words in a phrase that are near to one another, apply a tilde (~) and a weight indicator after the phrase. For example,

"blue eyes"~5

retrieves all content containing the terms “blue” and “eyes” that are within five words of each other.

Relevancy Searches

To search for a word or a phrase that is more relevant to your search than the other words or phrases included in the search, apply a caret (^) and a weight indicator after the desired word or phrase. For example:

blue^7 eyes

makes “blue” the more important term to locate. To boost a phrase, apply the caret (^) and weight indicator after the double quotes. For example:

"blue eyes"^7 crying


procedure icon  Editing Submissions

You can make changes to the description, support files, pricing information, custom fields, or previews for any submitted content with a status of New or Denied. Changes to custom fields can be made for content editions with a status of New or Denied.

For specific information on when content and editions can be updated or edited, depending on their status, see Update Guidelines.

To edit content, follow these steps:

1. Log in to the Developer Portal.

2. Click the Content List tab to show the list of submitted content.

3. Click the title of the content that you want to edit.

The content must not have a status of Pending, Published, Unpublished, or Testing.

The View Content Properties page is shown.

4. Click Edit Description to edit the description or support files.

Edit the description or support files as needed and click OK to save your changes. You can change any of the following fields:

See Submitting New Content with the Wizard for a description of the fields.

5. Click OK.

The Content Properties page is displayed. Any changes you made are shown.


procedure icon  Editing the Content Price

To change the content price, follow these steps:

1. Log in to the Developer Portal.

2. Click the Content List tab to show the list of submitted content.

3. Click the title of the content that you want to edit.

Content must have a status of New or Denied.

4. Click Edit Price on the Content Properties page to edit the pricing information.

5. Select the pricing option as desired or create a custom price, if applicable.

See Submitting New Content with the Wizard for a description of the pricing options.

6. Click OK to save your changes.

SeeEditing Previews for instructions on editing preview sets for content or content editions.


procedure icon  Editing Previews

You can manage the preview sets associated with an item of content independent of the editions, or you can manage the preview set associated with a specific edition. When managed independently, any change to a preview set affects all editions that reference that preview set. When managed by edition, the following options are available:

If changes are made so that a preview set is no longer referenced by any edition, that preview set is automatically deleted by the system.



Note - To inspect preview files while managing preview sets, your browser must be set to allow popups for Content Delivery Server Developer Portal. Also, Content Delivery Server does not check whether the browser being used is capable of showing or playing the selected preview. The browser determines how unsupported file types are handled.


To edit a preview, follow these steps:

1. Log in to the Developer Portal.

2. Click the Content List tab to show the list of submitted content.

3. Click the title of the content that you want to edit.

The Content Properties page is shown. A section that contains the preview information is shown after the Catalog Description section.

4. Edit preview sets independently of editions by following these steps (to edit preview sets for a specific edition skip to Step 5):

a. Select the preview set that you want to edit from the Select a Preview Set list.

If the content has a status of New or Denied, all preview sets can be edited. If the content has a status of Published or Unpublished, a preview set can be edited if the set is associated with only new editions or edition updates with a status of New or Denied.

b. Click Edit Set.

The Edit Preview Set page is shown. The editions that use the preview set are identified below the name of the set. On this page, modify the preview set as described for creating a new preview set when submitting an edition in Submitting Content Editions With the Wizard. You can also change captions, reorder the files, and delete unwanted files. To view or hear a preview file, click Inspect for that file.

c. Make your changes to the preview set.

d. Click OK.

All editions that use the preview set are affected by the changes made. If the content had a status of Denied, the status for the content and all its editions is changed to New. If the content had a status of Published or Unpublished, the following changes occur:

5. To edit the preview set for a specific edition with the status of New or Denied, follow these steps:

a. In the Editions section of the Content Properties page, click the name of the edition that you want to edit.

The View Content Edition page is shown. After the General Information section is the Previews section.

b. Click Edit Edition Previews.

The Edit Edition Previews page is shown. The editions that use the preview set are identified below the name of the set. On this page you can modify the preview set using the same process used when submitting editions (see Submitting Content Editions With the Wizard). You can also change captions, reorder the files, and delete unwanted files. To view or hear a preview file, click Inspect for that file.

c. Make your changes to the preview set.

d. Click OK.

If this edition was using a preview set that other editions used, a new preview set is created for this edition. Other editions remain unchanged. If the content had a status of Denied, the status for the content and all its editions is changed to New. If the content had a status of Published or Unpublished and the edition had the status Denied, the status of the edition is changed to New. No other editions are changed.


procedure icon  Updating Content

If you change the content after you submit it, that is, modify the source, you must submit an update to Content Delivery Server. A content update differs from a new edition in that an update refers to an edition that has been revised to add, modify, or fix existing features, while a new edition refers to an instance of the content item that has been created for a different target device or device capabilities.

This section describes the guidelines for updating content and the process for updating locally stored and externally hosted content. For information on editions, see Editions.

Update Guidelines

TABLE 18 defines the statuses of content submitted to the Catalog Manager.


TABLE 18 Content Status Types in Catalog Manager

Status

Definition

New

Accepted by Catalog Manager.

Pending

Undergoing review.

Testing

Undergoing testing.

Published

Accepted and available to the Vending Manger.

Unpublished

Accepted but unavailable to the Vending Manger.

Denied

Declined

Deleted

Removed


You can update previously submitted content unless the content has a status of Deleted. If the content has a status of Deleted, resubmit the content as new content. Do not update deleted content. Guidelines for updating content are outlined in TABLE 19.

 


TABLE 19 Content Updating Guidelines

Status

Possible Action

New
Denied

You can submit editions to the content.

You can submit a content update to perform the following actions:

  • Change the edition metadata (for example: edition name and version number)
  • Change the content files (binaries)
  • Change the URL for external content

You can perform the following editing actions:

  • Change the price
  • Change resource metadata (for example, the Info URL, the short and long descriptions, or the small or large icons)
  • Change the values of custom fields

Pending
Testing
Deleted

None

Published
Unpublished

You can submit editions to the content.

You can submit a content update to perform the following actions:

  • Change the edition metadata (for example: edition name and version number)
  • Change the content files (binaries)
  • Change the URL for external content

You cannot perform the following editing actions:

  • Change the price
  • Change resource metadata (for example, the Info URL, the short and long descriptions, or the small or large icons
  • Change the values of custom fields

When updates are made to New or Denied content, the original content is removed from the database and replaced with the new content. Updates to content with Denied status are given a status of New in the Catalog Manager.

When an update is made to Published or Unpublished content, the update is added to the database and references the original content. The content’s status is shown in the submitting developer’s content list twice, once as status/Upgraded and again as New. For example, the initially submitted content, SpruceDraw, with the Edition ID of 1027 has the status of Published and an update for it (with the Edition ID 1029) is received by the Catalog Manager. FIGURE 1 shows the developer’s content list.

FIGURE 1 Editions Field Showing Updated Content


Editions field showing new edition and upgraded status of content

When updates are published by the Catalog Manager, notification is sent to the submitting developer and to the Vending Manager. On the Vending Manager, purchased content with updates available are noted in the subscriber’s content list.

As shown in FIGURE 1, when the update is received by the Catalog Manager, it is given a status of New. FIGURE 2 shows the change to the developer’s Content Properties page when the status is changed to Published.

FIGURE 2 Editions Field Showing Updated Status


Editions field showing new edition status as published



Note - Once original content is upgraded, it cannot be upgraded again.


To change the description or price information, edit the submission. See Editing Submissions.


procedure icon  Updating Locally Stored Content

To update content stored at Content Delivery Server, follow these steps:

1. Log in to the Developer Portal.

2. Click the Content List tab.

The list of submitted content is displayed.

3. Click the title of the content that you want to update.

The View Content Properties page is shown.

4. In the Editions section, click the name of the edition that you want to update.

The View Content Edition page is shown.

5. Click Update Content.

6. Enter the path and file name of the updated content file, or click Browse to locate the file.

The file name must have one of the file extensions indicated. If you are uploading an application, you must enter the location of both the application descriptor file and the JAR file.

7. Check or uncheck the option to use the original content as a preview.

You have the option of specifying a caption for the preview in the text field below the check box.

8. Click Next.

9. Enter content information:

10. Modify any custom fields applicable to the content as needed.

11. (Optional) Modify the preview file information as needed.

12. Specify the device capabilities required to run this edition.

Only subscribers who have devices that match the capabilities specified are given access to this edition.

For editions that require no specific capabilities, select No Capability Required.

For editions that run on only specific devices, select Choose by Supported Devices, and select one or more devices from the list provided. Hold the Control key to select multiple devices.

For editions that require a set of specific capabilities, select Choose by Minimum Required Capability. Specify one or more of the following capabilities:

13. Review the developer’s agreement.

This is necessary only if a link to the agreement is displayed at the end of the page. Submitting content through the Developer Portal indicates that you agree to abide by the terms and conditions stated.

14. Click Submit Content.

If the submission is successful, a confirmation page is shown. If the submission is not successful, an error message is displayed. Click Details for additional information about the error.

15. Click Done.

Updating Externally Hosted Content

If only the executable file for externally hosted content needs to be updated, you can update the file directly on your server. You do not need to submit an update to Content Delivery Server. When a subscriber purchases or downloads the external content, Content Delivery Server recognizes when the content stored at the external site has changed and accesses the latest version. The latest version is processed like an update to the content so it might need to be accepted by an administrator before it replaces the existing content.



Note - The operator can configure the system to automatically accept updates of external content.


To change the URL or any of the capabilities specified, follow the instructions for updating locally hosted content (Updating Locally Stored Content). For Step 6, enter the URL for the content, and a user name and password, if needed. The URL must point to a file with the MIME type indicated. If you are submitting a MIDlet, the URL must point to the JAD file. If you are submitting an iAppli application, the URL must point to the application descriptor file with the extension .jam.

Content submitted to the Content Aggregator Interface is handled as externally hosted content. You can update this content as described in this section, or you can submit the update to the Content Aggregator Interface. To submit the update to the interface, create an XML file as described in Creating the XML File for the Content Aggregator Interface with the following differences:

Packaging Updates

To submit updates using the advanced submission feature, package updates the same way that you package new editions (see Packaging Editions) with the following differences:

See CODE EXAMPLE 4 for a sample content submission file for updating content.