MIME 树详细信息

逻辑树元素

MIME 消息作为具有以下元素的逻辑树在代理中显示:
  • 树的根是名为 MIME 的节点。
  • 不管是否符合 MIME 标准,所有格式正确的头都存储在逻辑树中。头以 name=value 的形式出现在逻辑树中,如下所示:
    Content-Type=text/xml
  • 多段式 MIME 消息通过根节点名称为 Parts 的子树表示。
  • 与多段式 MIME 消息关联的任意前同步信号或结尾数据通过以下仅值元素表示,这些仅值元素以 Parts 的第一个子代和最后一个子代的形式出现。
  • 在单段式 MIME 的特殊情况中,内容由根名称为 Data 的子树表示。
  • 多段式 MIME 消息的每个部分都由名为 Part 的元素表示,每个 MIME 头都有一个子代元素和一个名为 Data 的最后一个子代。
  • Data 元素表示 MIME 部分的内容。这使得使用 ESQL 测试主体内容是否存在变得更容易,这是因为 Data 元素始终是其父代的最后一个子代。

写 MIME 消息

写消息时,MIME 解析器使用逻辑消息树创建消息位流。MIME 域不执行 MIME 规范要求的所有约束,因此它可能生成不符合 MIME 规范的 MIME 消息。MIME 解析器利用的约束为:
  • 树必须有名为 MIME 的根、委托人 Parts(Part)和 Data 元素,如逻辑树元素描述的那样。
  • 树的顶级必须存在一个 Content-Type 头,或通过 ContentType 属性可用。介质子类型不会被验证。
  • 如果介质类型是 multipart,则必须是有效的边界参数。
  • 所有委托人 MIME 部分可能有一个 Content-Type 头。如果该头的值以 multipart 开始,则它必须包含有效的边界参数。该边界参数的值不得与定义中的其他边界参数值相同。
  • MIME Content-Type 值“message”不受支持,会在运行时导致错误。
  • 树中的所有名称-值元素编写成 name: value 后跟 ASCII 序列 <CR><LF>
如果树中有其他元素,则解析器的行为与 HTTP 头解析器的行为相同:
  • 具有 NULL 值的仅名称元素或 NameValue 元素生成 Name: NULL
  • 任何名称-值元素的子代被忽略。
如果存在子树,消息流必须对其进行序列化。可以使用 ESQL 命令 ASBITSTREAM 完成这一操作。
相关概念
MIME 解析器和域
MIME 消息
逻辑树结构
消息建模概念
相关任务
使用消息体内容
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac30090_