Sharebar?

3 Information Model

The workflow around using the content-item message involves three steps:

  1. The user’s browser is redirected to the TP.
  2. The TP provides an interface which allows the user to discover and select an item to associate with a launch link in the TC.
  3. The user’s browser is redirected back to the TC with details of the item(s) selected.

The initial redirection to the TP is achieved in the same manner as an LTI launch request: an HTML form is auto-submitted using JavaScript to the same endpoint in the TP using an HTTP POST.  The same parameters are passed as for a launch request except that the lti_message_type has a value of  ContentItemSelectionRequest; they are also signed with OAuth using the same consumer key and secret. [OAuth, 10]  Given the different nature of this message type, the TP may be opened within an iframe or pop-up window so that the current page in the TC remains available when the user is returned from the TP; however, this is not a requirement and other workflows using this message type may re-use the same page as the TC.

The interface for discovering and selecting content items is entirely a matter for the TP.  The request received from the TC should be verified in the same way as a launch request (for example, check the timestamp and nonce values and validate the signature).  The parameters passed should provide sufficient data to allow the TP to identify the context from which the user is being passed, who the user is, and their role.  Where appropriate this data can be used to provide an appropriate selection of items from which the user can select, or allow the user to create a new item.  In the latter case, a TP should be aware that there is no guarantee that a link to the item selected will actually be created in the TC when the user is returned; this is entirely under the control of the TC interface which may allow a cancel option, for example.

One of the parameters provided when a user is redirected to the TP will be a URL for returning them to the TC (see the content_item_return_url parameter).  A TP should always ensure that the user is returned to the TC, even if they do not select any items.  This will allow the TC to close any iframes or windows opened during the initial redirect and return the user to the original page from which they started the process.  Details of any selected items are passed back to the TC in a JSON array; this array may be empty if no item was selected.  A user should always be redirected back to the TC using an auto-submitted form as an HTTP POST request; this return message may, or may not, be signed (see below).

3.1   Example Request

The following HTML form is an example of a redirect for a user to a TP to initiate a content-item selection process (some parameter values have been replaced with “...” for simplicity).

<form action="http://www.tp.com/lti" method="post" encType="application/x-www-form-urlencoded">
  <input type="hidden" name="lti_message_type" value="ContentItemSelectionRequest" />
  <input type="hidden" name="lti_version" value="LTI-1p0" />
  <input type="hidden" name="user_id" value="29123" />
  <input type="hidden" name="roles" value="Instructor" />
  <input type="hidden" name="lis_person_name_full" value="John Logie Baird" />
  <input type="hidden" name="lis_person_name_family" value="Baird" />
  <input type="hidden" name="lis_person_name_given" value="John" />
  <input type="hidden" name="lis_person_contact_email_primary" value="jbaird@uni.edu" />
  <input type="hidden" name="context_id" value="S3294476" />
  <input type="hidden" name="context_type" value="CourseSection" />
  <input type="hidden" name="context_title" value="Telecommunications 101" />
  <input type="hidden" name="context_label" value="ST101" />
  <input type="hidden" name="lis_course_section_sourcedid" value="DD-ST101:C1" />
  <input type="hidden" name="tool_consumer_info_product_family_code" value="ims" />
  <input type="hidden" name="tool_consumer_info_version" value="1.2" />
  <input type="hidden" name="tool_consumer_instance_guid" value="imsglobal.org" />
  <input type="hidden" name="tool_consumer_instance_name" value="Learning Impact Leadership Institute" />
  <input type="hidden" name="launch_presentation_document_target" value="frame" />
  <input type="hidden" name="accept_media_types" value="*/*" />
  <input type="hidden" name="accept_presentation_document_targets" value="none,embed,frame,iframe,window,popup,overlay" />
  <input type="hidden" name="content_item_return_url" value="http://www.tc.com/item-return" />
  <input type="hidden" name="accept_unsigned" value="false" />
  <input type="hidden" name="accept_multiple" value="true" />
  <input type="hidden" name="auto_create" value="false" />
  <input type="hidden" name="data" value="Some opaque TC data" />
  <input type="hidden" name="oauth_version" value="1.0" />
  <input type="hidden" name="oauth_nonce" value="..." />
  <input type="hidden" name="oauth_timestamp" value="..." />
  <input type="hidden" name="oauth_consumer_key" value="..." />
  <input type="hidden" name="oauth_callback" value="about:blank" />
  <input type="hidden" name="oauth_signature_method" value="HMAC-SHA1" />
  <input type="hidden" name="oauth_signature" value="..." />
</form>

This form would be included in a page returned to the user’s browser and auto-submitted using JavaScript so that a POST request with the specified parameters is sent to the LTI endpoint for the TP (in the same way that a normal LTI launch request is handled).

3.2  Example Response

A user is returned by a TP to the TC in a similar manner to the request (see above). A form would be included in a page returned to the user’s browser and auto-submitted using JavaScript to the URL provided in the content_item_return_url parameter from the TC. For example, assume the JSON representation of the selected content item is as follows:

{
  "@context" : "http://purl.imsglobal.org/ctx/lti/v1/ContentItem", 
  "@graph" : [ 
    { "@type" : "FileItem",
      "url" : "https://www.imsglobal.org/sites/default/files/IMSconformancelogosm.png",
      "mediaType" : "image/png",
      "text" : "IMS logo for certified products", 
      "title" : "The logo used to identify IMS certified products",
      "placementAdvice" : {
        "displayWidth" : 147,
        "displayHeight" : 184,
        "presentationDocumentTarget" : "embed"
      }
    }
  ]
}

The TP can then use a form like the following to return this item to be embedded in the TC (some parameter values have been replaced with “...” for simplicity).

<form action="http://www.tc.com/item-return" method="post"
 encType="application/x-www-form-urlencoded">
  <input type="hidden" name="lti_message_type" value="ContentItemSelection" />
  <input type="hidden" name="lti_version" value="LTI-1p0" />
  <input type="hidden" name="content_items" value="{ &quot;@context&quot;: &quot;http://purl.imsglobal.org/ctx/lti/v1/ContentItem&quot;, &quot;@graph&quot;: [ { &quot;@type&quot;: &quot;FileItem&quot;, &quot;url&quot;: &quot;https://www.imsglobal.org/sites/default/files/IMSconformancelogosm.png&quot;, &quot;mediaType&quot;: &quot;image/png&quot;, &quot;text&quot;: &quot;IMS logo for certified products&quot;, &quot;title&quot;: &quot;The logo used to identify IMS certified products&quot;, &quot;placementAdvice&quot;: { &quot;displayWidth&quot;: 147, &quot;displayHeight&quot;: 184, &quot;presentationDocumentTarget&quot;: &quot;embed&quot; } } ] }" /> 
  <input type="hidden" name="data" value="Some opaque TC data" />
  <input type="hidden" name="oauth_version" value="1.0" />
  <input type="hidden" name="oauth_nonce" value="..." />
  <input type="hidden" name="oauth_timestamp" value="..." />
  <input type="hidden" name="oauth_consumer_key" value="..." />
  <input type="hidden" name="oauth_callback" value="about:blank" />
  <input type="hidden" name="oauth_signature_method" value="HMAC-SHA1" />
  <input type="hidden" name="oauth_signature" value="..." />
</form>

Note that the JSON value of the content_items parameter should be encoded to ensure that the HTML of the page is valid.  At a minimum any instances of the quotation character used to delimit the attribute value need to be encoded.  A double quote may be encoded as &#34; (or &quot;) and a single quote may be encoded as &#39;.  For further information refer to the specification for the version of HTML being used by the page in which the form is being embedded.

3.3  Request to Tool Provider

3.3.1  Form Fields

A TC redirects the user to the TP using an HTTP POST request from an auto-submitted form.  The form may include the following fields:

lti_message_type=ContentItemSelectionRequest                                                                                                   (Required)
This indicates that this request represents a content-item selection message.

lti_version=LTI-1p0                                                                                                                                                      (Required)
This indicates which version of the specification is being used for this particular message; for example, LTI-1p0 or LTI-2p0.

accept_media_types=application/vnd.ims.lti.v1.ltilink,image/*,text/html                                                      (Required)
A comma-separated list of MIME types which can be accepted on the return URL.  A MIME type of application/vnd.ims.lti.v1.ltilink is used to represent an LTI launch request to a TP.  This parameter should use the same format as the Accept header in HTTP requests [HTTP, 14].  For example, a value of “image/*; q=0.5, image/png” indicates that a PNG image is preferred, but any type of image will be accepted if one is not available.  To accept any media type except an LTI link, a header of “application/vnd.ims.lti.v1.ltilink; q=0, */*” could be used.

accept_presentation_document_targets=embed,frame,iframe,window,popup,overlay                              (Required)
A comma-separated list of ways in which the selected content item(s) can be requested to be opened (via the presentationDocumentTarget element for a returned content item).  The possible values for this parameter are:

  • embed – insert the item at the current insertion point (for example, using an img tag or an object tag);
  • frame – open the item in the same frame as the link;
  • iframe –  open the item within an iframe within the same page/frame as the link;
  • window – open the item in a new window (or tab);
  • popup – open the item in a popup window (using the dimensions provided, if any);
  • overlay – open the item over the top of the page where the link exists (for example, using a lightbox).
  • none – the item is not intended for display but for storing or processing (for example, an assignment submission may just be stored without a link to it being added to the course).

content_item_return_url=http://lmsng.school.edu/portal/123/page/988/item/261                                      (Required)
Fully qualified URL where the TP redirects the user back to the TC interface.  This URL can be used once the TP is finished or if the TP cannot start or has some technical difficulty.

accept_unsigned=false | true                                                                                                                                        (Optional)
This indicates whether the TC is willing to accept an unsigned return message, or not.  A signed message should always be required when the content item is being created automatically in the Tool Consumer without further interaction from the user.   This parameter is optional; when omitted  a value of false should be assumed (i.e. the return message should be signed).

accept_multiple=false | true                                                                                                                                         (Optional)
This indicates whether the user should be permitted to select more than one item.  This parameter is optional; when omitted  a value of false should be assumed (i.e. only a single item may be returned).

accept_copy_advice=false | true                                                                                                                                 (Optional)
This indicates whether the TC is able and willing to make a local copy of a content item.  The return message may include a expiresAt parameter to indicate that the URL provided will expire and so a copy of the content item should be stored locally before the expiry time passes.  Use a value of false (the default) to indicate that the TC has no capacity for storing local copies of content items.

auto_create=false | true                                                                                                                                                 (Optional)
This indicates whether any content items returned by the TP would be automatically persisted without any option for the user to cancel the operation.  This parameter is optional; when omitted  a value of false should be assumed (i.e. items returned may not be persisted at the TC end).

title=...                                                                                                                                                                                (Optional)
Default text to be used as the title or alt text for the content item returned by the TP.  This value should normally be short in length, for example, suitable for use as a heading.

text=...                                                                                                                                                                                 (Optional)
Default text to be used as the visible text for the content item returned by the TP.  If no text is returned by the TP, the TC may use the value of the title parameter instead (if any).  This value may be a long description of the content item.

data=...                                                                                                                                                                               (Optional)
An opaque value which should be returned by the TP in its response.

Additional Fields

The TC should also pass the other parameters about the tool consumer, the user, the context and the user’s roles as would be included in a launch request (see [LTI, 11, Basic Launch Data]).  The following parameters should not be passed:

  • resource_link_id
  • resource_link_title
  • resource_link_description
  • launch_presentation_return_url
  • lis_result_sourcedid

If any custom parameters have been specified for launches to the TP, they should also be included for this message type.  All relevant custom substitution parameter variables should also be supported; those relating to resource links or results would not be relevant, for example, since this message occurs before a resource link is created, if one is created at all.

3.4  Response to Tool Consumer

3.4.1  Form Fields

A TP should return the user to the TC as an HTTP POST request using an auto-submitted form.  It may include the following fields:

lti_message_type=ContentItemSelection                                                                                                                  (Required)
This indicates that this is a message containing an array of content items.

lti_version=LTI-1p0                                                                                                                                                      (Required)
This indicates which version of the specification is being used for this particular message.  It should use the same value as received in the request from the Tool Consumer.

content_items=...                                                                                                                                                              (Optional)
The value of this parameter should be a JSON array containing details of each of the items selected (see examples below).  If no items have been selected this parameter may contain an empty array or be omitted.  The accompanying HTML documentation defines the application/vnd.ims.lti.v1.contentitems+json media type used by this parameter.  For example, the content_items parameter may have a value of:

{
  "@context" : "http://purl.imsglobal.org/ctx/lti/v1/ContentItem",
  "@graph" : [
    { "@type" : "ContentItem",
      "@id" : ":item1",
      "url" : "http://www.imsglobal.org",
      "title" : "The IMS Global website",
      "mediaType" : "text/html"
    },
    { "@type" : "LtiLinkItem",
      "@id" : ":item2",
      "icon" : {
        "@id" : "http://tool.provider.com/icons/small.png",
        "width" : 50,
        "height" : 50
      },
      "thumbnail" : {
        "@id" : "http://tool.provider.com/images/thumb.jpg",
        "width" : 100,
        "height" : 150
      },
      "title" : "Open sIMSon application",
      "text" : "The &lt;em&gt;sIMSon&lt;/em&gt; application provides a collaborative space for developing semantic modelling skills.",
      "mediaType" : "application/vnd.ims.lti.v1.ltilink",
      "custom" : {
        "level" : "novice",
        "mode" : "interactive"
      },
      "placementAdvice" : {
        "presentationDocumentTarget" : "window",
        "windowTarget" : "anLTIApp"
      }
    },
    { "@type" : "FileItem",
      "@id" : ":item3",
      "url" : "http://tool.provider2.com/animation/sample.swf",
      "icon" : {
        "@id" : "http://tool.provider2.com/icon/sample.png",
        "width" : 45,
        "height" : 45
      },
      "text" : "Watch this animation.",
      "mediaType" : "application/x-shockwave-flash",
      "copyAdvice" : false,
      "placementAdvice" : {
        "displayWidth" : 800,
        "presentationDocumentTarget" : "iframe",
        "displayHeight" : 600
      }
    }
  ]
}

The structure of each element in the array could be different for each type of content item (see below) but should appear in the order in which they are to be processed by the TC.  If no content items were selected, then the parameter may have a value of:

{
  "@context" : "http://purl.imsglobal.org/ctx/lti/v1/ContentItem",
  "@graph" : [
  ]
}

or be omitted from the return parameters altogether. 

data=...                                                                                                                                                                               (Optional)
If a data parameter is passed with the original content-item message received, then its value must be returned in this parameter.  The value is opaque to the TP and should be returned unchanged.  If no parameter was included in the original request, then this parameter should be omitted.

lti_msg=...                                                                                                                                                                          (Optional)
If the TP is returning normally, and wants a message displayed to the user it can include it as a plain text[1] value in this parameter.

lti_log=...                                                                                                                                                                           (Optional)
This parameter allows the TP to give the TC a plain text message to log when it returns normally.

lti_errormsg=...                                                                                                                                                               (Optional)
In the case of an error, the TP may use this parameter to provide some detail in plain text as to the nature of the error for displaying to the user.  The TC should ensure that this message is displayed; if the TP has already provided an indication of the error to the user, then there would be no need to also use this parameter.

lti_errorlog=...                                                                                                                                                                 (Optional)
This parameter may contain a plain text error message to be logged by the TC.

The response message must be signed unless the initial request included an accept_unsigned parameter with a value of true.  Otherwise the TP may choose whether to sign the response message, or not.  Messages are signed using OAuth ([OAuth, 10])  in the same way as LTI launch request messages ([LTI, 12]).

3.4.2  Content-Item Elements

The permitted elements to describe the placement of a selected content item are as follows:

@id                                                                                                                                                                                     (Optional)
A unique identifier to use for the item.  The value of this element may be changed in different messages even if the entry refers to the same actual item or resource.  The content item is merely the metadata for an item and not the item itself.

mediaType                                                                                                                                                                       (Required)
This element describes the type of content item.  It should have a value of the MIME type for the content item.

url                                                                                                                                                                                       (Optional)
A fully qualified URL to use for the item.  When not specified for a content item of type application/vnd.ims.lti.v1.ltilink the default launch URL used for the same TP should be assumed.

copyAdvice=false | true                                                                                                                                                 (Optional)
This parameter is an indicator to the TC as to whether it should take a copy of the content item and use its local copy for users to access.  If true then the TP may also indicate a time period within which the copy must be taken using the expiresAt parameter.  The default value is false.

expiresAt                                                                                                                                                                           (Optional)
The presence of this parameter indicates that the content URL is only available for a limited time and so a copy of its contents should be stored locally if access is required for a longer period.  The parameter value should be a date/time in ISO 8601 format (e.g. 2014-03-05T12:34:56Z).  This parameter is not applicable to content items of type application/vnd.ims.lti.v1.ltilink.

presentationDocumentTarget                                                                                                                                      (Optional)
This parameter is used to determine where the content item being added should be opened.  It should be one of the values included in the accept_presentation_document_targets request parameter (see above); if the parameter was not included in the request then this parameter should be omitted from the response.

windowTarget                                                                                                                                                                  (Optional)
The windowTarget parameter to be used for any hyperlink used to open the content item may be specified using this parameter.  Note that this parameter is distinct from the presentationDocumentTarget element (see above) which is used to determine how the content item is opened.  This parameter is most useful when a presentationDocumentTarget of window is specified.

title                                                                                                                                                                                      (Optional)
The text to use as the title or heading for the content item.

text                                                                                                                                                                                      (Optional)
The text to display to represent the content item.  A TP should use any text provided by the TC in the request as the initial default, but this may be altered as part of the selection process.  When not provided, a TC may use the value of the title parameter instead.

icon                                                                                                                                                                                     (Optional)
An object containing an @id element providing a fully qualified URL for an icon image to be placed with the content item.  A width and/or height element may also be provided.  When specified the width and height values should be a positive integer representing the number of pixels.  An icon size of 50x50 is recommended.  A tool consumer may not support the display of icons; but where it does, it may choose to use a local copy of the icon rather than linking to the URL provided (which would also allow it to resize the image to suits its needs).

thumbnail                                                                                                                                                                          (Optional)
An object containing an @id element providing a fully qualified URL for a thumbnail image to be made a hyperlink.  This allows the hyperlink to be opened within the TC from text or an image, or from both.  A width and/or height element may also be included.  When specified the width and height values should be a positive integer representing the number of pixels.

displayWidth                                                                                                                                                                    (Optional)
A valid value for the width attribute of the HTML element which will be created by the TC to refer to the content item.  This may also be used for sizing a popup window when this document target is requested.  Typically this is a positive integer value representing the number of pixels.

displayHeight                                                                                                                                                                   (Optional)
A valid value for the height attribute of the HTML element which will be created by the TC to refer to the content item.  This may also be used for sizing a popup window when this document target is requested.  Typically this is a positive integer value representing the number of pixels.

custom                                                                                                                                                                                (Optional)
A set of custom parameters to be included in the LTI launch request (as name and value pairs) from the link being created.   This parameter only applies to content items of type application/vnd.ims.lti.v1.ltilink.

For further details see [CIa, 14] and [CIb, 14].

3.4.3  Example Responses

Some examples of different content-item types follow.  Whilst there is a certain level of trust which can be assumed when a response is signed, it is always recommended that any parameter value which is being added to a content page in the TC is checked for any potentially harmful content (such as JavaScript).

LTI Launch Link

The following example should add an image and the text “LTI launch” at the current insertion point in the TC, with both being set as a hyperlink to generate a launch request to the TP with two custom parameters being passed:

{
  "@type" : "LtiLinkItem",
  "mediaType" : "application/vnd.ims.lti.v1.ltilink",
  "icon" : {
    "@id" : "https://www.server.com/path/animage.png",
    "width" : 50,
    "height" : 50
  },
  "title" : "Week 1 reading",
  "text" : "Read this section prior to your tutorial.",
  "custom" : {
    "chapter" : "12",
    "section" : "3"
  }
}

Hyperlink with Thumbnail

The following example should add an image and the text “IMS catalog of certified products” at the current insertion point in the TC, with both being set as a hyperlink to open the URL provided in a new window:

{
  "@type" : "ContentItem",
  "url" : "http://imscatalog.org/",
  "mediaType" : "text/html",
  "thumbnail" : {
    "@id" : "http://developers.imsglobal.org/images/imscertifiedsm.png",
    "width" : 147,
    "height" : 184
  },
  "title" : "IMS catalog of certified products",
  "placementAdvice" : {
    "presentationDocumentTarget" : "window",
    "windowTarget" : "_blank"
  }
}

The TC would insert HTML like the following on receipt of the above content item; the precise layout and format is not prescribed here but should display the image and the text and make both hyperlinked to the URL provided:

<a href=" http://imscatalog.org/" target="_blank"
 title="Open the IMS catalog of certified products in a new window">
  <img src="http://developers.imsglobal.org/images/imscertifiedsm.png"
   alt="IMS catalog of certified products"
   width="147" height="184" />&nbsp;IMS catalog of certified products
</a>

Embedded Image

The following example should insert an image in the TC at the current insertion point:

{
  "@type" : "ContentItem",
  "url" : "http://developers.imsglobal.org/images/imscertifiedsm.png",
  "mediaType" : "image/png",
  "title" : "IMS logo for certified products",
  "placementAdvice" : {
    "displayWidth" : 147,
    "displayHeight" : 184,
    "presentationDocumentTarget" : "embed",
    "windowTarget" : "_blank"
  }
}

The HTML used to display the image would be as follows:

  <img src="http://developers.imsglobal.org/images/imscertifiedsm.png"
   alt="IMS logo for certified products"
   width="147" height="184" />

Embedded HTML

The following example shows how an HTML fragment may be inserted into the TC at the current insertion point:

{
  "@type" : "ContentItem",
  "mediaType" : "text/html",
  "text" : "<p>IMS has a <a href=\" http://imscatalog.org/\">catalog of certified products</a> available on their website</p>",
  "placementAdvice" : {
    "presentationDocumentTarget" : "embed"
  }
}

Hyperlink to Local Copy of a File

The following example should insert a link to a local copy of a XML file in the TC:

{
  "@type" : "FileItem",
  "url" : "http://www.imsglobal.org/xsd/qti/qtiv2p1/imsqti_v2p1.xsd",
  "copyAdvice" : "true",
  "expiresAt" : "2014-03-05T00:00:00Z",
  "mediaType" : "application/xml",
  "title" : "QTI v2.1 Specification Information Model",
  "placementAdvice" : {
    "windowTarget" : "_blank"
  }
}

The copyAdvice element indicates that the TC should make a local copy of this item.  The expiresAt element indicates that the content URL is only available for a limited period and so the copy should be taken before this time.  It is expected that normally a copy will be taken when the link is created.  A link to the local copy of the file would be inserted in the TC:

<a href="http://www.tc.com/local/file.xml" target="_blank"> QTI v2.1 Specification Information Model</a>

Example including Elements from Other Contexts (e.g. Metadata)

Additional elements can be included in the JSON response by referencing the context(s) from which they are drawn.  The following example includes an element from LRMI.

{
  "@context" : [
    "http://purl.imsglobal.org/ctx/lti/v1/ContentItem",
    {
      "educationalUse" : "http://schema.org/educationalUse"
    }
  ],
  "@graph" : [
    { "@type" : "LtiLinkItem",
      "text" : "The &lt;em&gt;sIMSon&lt;/em&gt; application provides a collaborative space for developing semantic modelling skills.",
      "mediaType" : "application/vnd.ims.lti.v1.ltilink",
      "title" : "Open sIMSon application",
      "placementAdvice" : {
        "windowTarget" : "anLTIApp",
        "educationalUse" : "group work"
      }
    }
  ]
}

LTI Launch Link with Outcomes Support

It is possible to return an LTI launch link with a request to have it be associated with a line item in the gradebook by including a description of the line item within the LtiLinkItem element.  It uses the same technique as the previous example to re-use the LineItem type from the Outcomes Management specification [LTI, 14 OM].  When persisting this content item, the tool consumer should also create a column in the gradebook to achieve the same end result as when an LTI 1 tool which supports the Outcomes service is manually added.

{
  "@context" : [
    "http://purl.imsglobal.org/ctx/lti/v1/ContentItem",
    {
      "lineItem" : "http://purl.imsglobal.org/ctx/lis/v2/LineItem",
      "res" : "http://purl.imsglobal.org/ctx/lis/v2p1/Result#"    
    }
  ],
  "@graph" : [
    { "@type" : "LtiLinkItem",
      "mediaType" : "application/vnd.ims.lti.v1.ltilink",
      "title" : "Chapter 12 quiz",
      "lineItem" : {
        "@type" : "LineItem",
        "label" : "Chapter 12 quiz",
        "reportingMethod" : "res:totalScore",
        "assignedActivity" : {
          "@id" : "http://toolprovider.example.com/assessment/66400",
          "activityId" : "a-9334df-33"
        },
        "scoreConstraints" : {
          "@type" : "NumericLimits",
          "normalMaximum" : 100,
          "extraCreditMaximum" : 10,
          "totalMaximum" : 110
        }
      }
    }
  ]
}

3.5  Content-Item Capabilities

A TC can declare its support for the Content-Item message and its related parameters by including their capability names in the capability_offered section of its profile.  The mapping between a message parameter and a capability name is given in the following table.

Table 3.1 - Content-Item capability name mapping
Parameter Name Capability Name
lti_message_type ContentItemSelectionRequest
accept_media_types ContentItem.acceptTypes
accept_presentation_document_targets ContentItem.acceptTargets
content_item_return_url ContentItem.returnUrl
accept_unsigned ContentItem.acceptUnsigned
accept_multiple ContentItem.acceptMultiple
auto_create ContentItem.autocreate
data ContentItem.data

[1]   Plain text means that the TC will treat the parameter value as text/plain and not text/html.   If the TP includes characters such as less-than or greater-than in plain text fields, those characters are to be escaped and displayed.  In particular, the TP should not embed HTML tags in plain text fields with the expectation that the HTML will be handed directly to the browser.  For example, if a plain text field contains the string "Mode: <strong> security", the TC should escape the data so the user sees the less-than, greater-than, and text between them literally rather than switching the word "security" to be in bold font.

 

Technical Activity: