<atom:entry> 元素
Atom 配置文件中的 <atom:feed> 元素包含单个原型 <atom:entry> 元素。 CICS® 通过将由 CICS 资源(该资源在<cics:resource>元素中描述)提供的数据填充到此元素的子元素中,生成Atom条目文档,并根据客户端请求的条目数量重复此过程。
包含于:
子元素
<atom:entry> 元素的子元素遵循 RFC 4287 中定义的 Atom 格式规范,但 CICS 不支持可选的 <atom:source> 元素。 其中有些子元素是 Atom 条目所必需的,有些则是可选的。
- 如果您的 CICS 资源或服务例程始终为这些子元素之一提供数据,通常可以在配置文件的<atom:entry>元素中省略该子元素。 例外情况是<atom:title>元素, CICS 要求必须包含该元素。不过,若您的Atom条目均已包含标题且不存在合适的默认值,则可使用空元素。
- 如果 Atom 条目保存在某个资源中,而这些资源的记录缺少用于保存部分或全部可能元数据项的字段,那么您可以通过在 Atom 配置文件中指定来提供这些元数据项。 当您在<atom:entry>元素中提供元数据时, CICS 会在 CICS 资源或服务例程未提供对应数据项时使用该元数据。
- 如果不希望为这些项提供缺省值,那么可以省略任何可选的元数据项。
<atom:entry> 元素的某些子元素对应于 <cics:fieldnames> 元素的属性。 如果某个子元素在<cics:fieldnames>元素中存在对应属性, CICS 可从资源中提供该数据项;若存在服务例程,则由该例程提供。 如果某个子元素在<cics:fieldnames>元素中没有对应的属性,则只能在Atom配置文件中进行指定。
RFC 4287 允许将纯文本、HTML 或 XHTML 内容用于定义为"文本构造"的子元素,例如 <atom:title> 元素。 CICS 仅支持这些元素的纯文本内容,因此您不能使用“type”属性来指定备用内容类型。 您必须提供不含子元素的纯文本内容。 CICS 允许在<atom:content>元素中使用HTML、XHTML及其他文本媒体类型(如XML)作为Atom条目的内容,这些内容需在为Atom条目提供数据的 CICS 资源中进行指定。
<atom:entry> 元素的子元素如下:
- <app:edited>
- 上次编辑 Atom 条目的时间。 该元素仅适用于集合中包含的 Atom 条目,在这种情况中,该元素是必需的(作为一个“应当执行”的需求)。 您无法在配置文件的原型Atom条目中指定<app:edited>元素。 该元素对应于<cics:fieldnames>元素的edited属性。 如果 CICS 资源或服务例程未提供该数据,那么 CICS 会提供当前日期和时间作为缺省值。 尽管 CICS 支持使用 <app:edited> 元素,但出于性能考虑, CICS 在将 Atom 条目作为列表返回给客户端时,不会自动根据该元素对集合中的条目进行排序。 有关对集合中的 Atom 条目进行排序的更多信息,请参阅 Atom 条目序列。
- <atom:author>
- Atom 元素的主要作者(可能是个人或组织)的个人详细信息。 配置文件中可以包含多个<atom:author>元素。 该数据由以下子元素提供:
- <atom:name>
- 人员名称。 若指定<atom:author>元素,则必须包含此子元素, CICS 会检查您是否已包含该元素。
- <atom:uri>
- 与人员关联的 URL,例如博客站点或公司的 Web 站点。 该子元素是可选的。 CICS 检查您是否在<atom:author>元素中指定了多个<atom:uri>元素。 CICS 不会尝试验证 URL 是否有效,因此您必须确保 URL 正确无误。
- <atom:email>
- 人员的电子邮件地址。 该子元素是可选的。 CICS 检查在<atom:author>元素中是否未指定多个<atom:email>元素。
- <atom:category term=" ">
- 对 Atom 条目进行分类的类别的名称。 该元素是可选的。 CICS 仅支持该元素的单个实例。 term 属性指定类别的名称。 该元素对应于<cics:fieldnames>元素的category属性,因此若您的 CICS 资源始终能提供合适的数据,则可省略该元素。
- <atom:content type=" " cics:resource=" " cics:type=" "/>
- Atom 条目的内容。 该元素是必需的。
配置文件中指定的<atom:content>元素不包含任何数据,因为当 CICS 发布Feed文档时,会从资源中提供数据。 您必须确保您的资源为每个 Atom 条目提供内容。 CICS 不支持提供不含数据的 Atom 条目,例如,使用“src”属性引用远程内容的 Atom 条目。
- 类型 = ""
- type 属性指定 CICS 期望用于 Atom 条目的内容类型,这可以是“text”、“html”、“xhtml”或 IANA 介质类型。 如果该属性不存在,CICS 会使用缺省的“application/xml”介质类型。 在 RFC 4287 中,使用介质类型“text”替代 IANA 介质类型“text/plain”来表示纯文本,使用“html”替代“text/html”,使用“xhtml”替代“application/xhtml+xml”。 如果内容采用任何其他格式,请指定在因特网上通常用于这种格式的 IANA 介质类型。 在 http://www.iana.org/assignments/media-types/media-types.xhtml上提供了介质类型的列表。 请注意,CICS 不支持非文本介质类型。
如果 CICS 直接从资源提供 Atom 条目,介质类型或缺省类型必须适合于该资源中的数据,因为在发布 Atom 文档时,CICS 会用该介质类型标注内容。 如果您使用服务例程为 Atom 条目提供内容,那么会将该介质类型或缺省类型提供给服务例程。 服务例程可以覆盖该类型并指定备用介质类型,或允许 CICS 用 Atom 配置文件中的介质类型标注内容。
- “cics:resource=”和“cics:type=" "”
- 属性 cics:resource 和 cics:type 声明为 Atom 订阅源提供数据的 CICS 资源的名称和类型。 这些属性的值必须与<cics:resource>元素中声明的名称和类型属性的值相匹配。 有关这些属性的值的描述,请参阅 <cics:resource> element。
<atom:content> 元素对应于 <cics:fieldnames> 元素的 content 和 content_type 属性。
- <atom:contributor>
- Atom 条目的辅助作者的个人详细信息。 该元素是可选的。 数据通过<atom:name>、<atom:uri>和<atom:email>子元素提供,与<atom:feed>元素中的数据提供方式相同。 您无法为单个资源中的<atom:contributor>元素指定数据,因此<cics:fieldnames>元素没有对应的属性,您提供的数据将适用于所有Atom条目。 由于该数据适用于所有Atom条目,您可能更倾向于在<atom:feed>元素下指定贡献者。
- <atom:id>
- Atom 条目的唯一标识。 Atom格式规范要求每个Atom条目必须包含一个<atom:id>元素。 Atom 条目的 Atom 标识 说明了使用 Atom 标识的需求。
CICS 可以生成标记 URI,将其用作 Atom 条目的唯一 Atom 标识。 标签URI包含以下内容:- 在Atom配置文件的<cics:authority>元素中指定的属性;- 在<cics:resource>元素中指定的资源类型和资源名称;- 以及单个Atom条目的选择器值。 如果此格式符合您的需求,请在原型Atom条目中省略<atom:id>元素。
您可不使用由 CICS 生成的标签URI格式,而是在原型Atom条目中使用<atom:id>元素,以替代格式指定原型Atom标识符。 CICS 将附加选择器值或合适的唯一标识来生成唯一 Atom 标识。 如果您使用备用 Atom 标识格式,请确保 Atom 标识是唯一的且符合 RFC 4287 中 Atom 格式规范的要求。
- <atom:链接>
- 用于标识 Atom 条目并使 Web 客户机能检索该条目的标准 URL。 来自 CICS的 Atom 订阅源的 URL 说明如何构造此 URL。
对于 CICS ,必须在 <atom:entry> 元素的子元素中包含单个 <atom:link rel="self"> 元素。 对于集合中的 Atom 条目,Atom 格式规范要求使用“edit”链接关系而非“self”,CICS 在发送集合中的 Atom 条目时会自动提供该链接关系。 无论Atom条目位于Atom源还是集合中,都必须在Atom配置文件中指定<atom:link rel="self">。
在您的Atom配置文件中,请通过<atom:link rel="self">元素指定 URL 作为标准路径,该路径可扩展应用于任何Atom条目文档。 该路径的开始部分必须与您在 URIMAP 资源定义中为 Atom 订阅源或集合声明的部分路径匹配。 标准路径的其余部分必须与您在Atom源的<atom:link rel="self">元素中指定的完整路径不同。 例如,如果指定了/myatomfeed/*在URIMAP资源定义中作为路径组件,并在Atom配置文件中作为整个Atom源的链接使用<atom:link rel="self" href=" /myatomfeed/feed.atom ">时,可将<atom:link rel="self" href="/myatomfeed/entries/">指定为Atom条目的标准路径。 CICS Web 支持的 URL 中列出的 URL 长度限制也适用于 Atom 订阅源的 URL。
当 CICS 将 Atom 条目文档返回到客户机时, CICS 会将 Atom 条目的选择器值附加到此路径以创建完整链接。Atom 条目的选择器值 说明选择器值是什么。 在Atom配置文件中,您使用<cics:selector>元素来指定选择器值附加到路径的方式。 当您选择默认的"segment"样式或省略该元素时, CICS 会生成如下链接:<atom:link rel="self" href=" /myatomfeed/entries/23 ">。而替代的"query"样式则生成与 CA8K SupportPac 开发的应用程序兼容的格式。 若需指定选择器值为十六进制格式,也可使用<cics:selector>元素。
在 Atom 配置文件中,您可以省略 URL 的方案和主机部分,而仅指定路径部分。 CICS 在向客户机返回 Atom 订阅源或 Atom 条目文档时,会对 URL 添加方案和主机部分,以符合 Atom 格式规范。
- <atom:published>
- 首次创建或发布 Atom 条目的时间。 该元素是可选的。 此元素对应于<cics:fieldnames>元素的published属性。 如果 CICS 资源不提供该数据,那么 CICS 将提供当前的日期和时间作为缺省值。 您可以在Atom配置文件中为<atom:published>元素指定替代默认时间戳,格式为XML格式的 dateTime ,具体规范详见RFC 3339。
- <atom:rights>
- 包含已声明的知识产权(例如,版权)的文本字符串。 对于该元素,CICS 只支持纯文本。 此元素为可选项,若未提供,则适用Atom源的<atom:rights>元素。 <cics:fieldnames> 元素没有对应的属性,因此您提供的数据适用于所有 Atom 条目。
- <atom:summary>
- Atom 条目内容的简短描述。 CICS 只支持纯文本的摘要。 此元素对应于<cics:fieldnames>元素的summary属性。 如果 Atom 条目的内容不是文本、HTML、XHTML 或 XML,那么该元素是必需的,因此如果您计划提供这些类别以外的任何内容,并且 CICS 资源并不始终提供摘要,应当使用该元素提供缺省摘要。 如果 CICS 资源不提供摘要,并且您希望针对所有 Atom 条目显示相同的摘要,那么也可以使用该元素。 否则,您可以省略该元素。 CICS 检查您是否为Atom条目指定了多个<atom:summary>元素。
- <atom:title>
- Atom 条目的标题。 CICS 只支持纯文本的标题。 此元素对应于<cics:fieldnames>元素的title属性。 即使您的 CICS 资源始终为Atom条目提供标题,也必须在原型Atom条目中包含<atom:title>元素,以符合RFC 4287规范。 使用可应用于任何 Atom 条目的合适的缺省标题,或者,如果 Atom 条目都具有一个标题并且没有适合的缺省标题时,您可以使用空元素。 CICS 检查您是否未指定多个<atom:title>元素。
- <atom:updated>
- 上次对 Atom 条目进行重大更新的时间。 该元素是 Atom 规范所必需的,但不能在 Atom 配置文件的原型 Atom 条目中指定该元素。 该元素对应于<cics:fieldnames>元素的更新属性。 如果 CICS 资源不提供该数据,那么 CICS 将提供当前的日期和时间作为缺省值。
示例
<atom:entry>
<atom:title>An entry from my feed</atom:title>
<atom:summary>DEFAULT --- This is the default summary</atom:summary>
<atom:link rel="self" href="/web20/sample_atom_feed/entry" />
<atom:author>
<atom:name>Joe Bloggs</atom:name>
<atom:uri>http://myzos.example.com/JBloggs/</atom:uri>
<atom:email>JBloggs@uk.ibm.com</atom:email>
</atom:author>
<atom:contributor>
<atom:name>John Doe</atom:name>
</atom:contributor>
<atom:category term="Comments" />
<atom:published>2008-12-02T15:41:00</atom:published>
<atom:content type="text" cics:resource="WB20TSQ" cics:type="tsqueue" />
</atom:entry>