• 第四十五章 开发自定义标签 - 规则和操作


    第四十五章 开发自定义标签 - 规则和操作

    CSP允许你开发自定义的HTML标签用于CSP文件。CSP标记语言本身是使用自定义标记机制实现的。自定义标签提供了一种方式:

    • 使用熟悉的语法为HTML作者提供附加功能
    • web应用程序开发可重用的组件

    规则和操作

    CSP编译器将带标记的HTML文档转换成Caché类(参见“CSP编译器”)。CSP编译器的一些功能来自于它能够

    1. 识别CSP文档中嵌入的#()#表达式,以及
    2. 识别HTML(或XML)文档中的某些标签或标签组合,并用开发人员提供的动作替换它们。这被称为标签匹配,在本章中有所描述。

    如果熟悉XMLXSL技术,会认识到CSPXSL的一种变体,添加了额外的特性来为应用程序生成HTML

    以下CSP页面示例包含一个自定义标记,该标记在HTML页面中显示公司名称:

    <html>
    <body>
    <my:COMPANY>
    </body>
    </html>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    处理该页面时,望CSP编译器用合适的HTML文本替换标记,例如:

    <html>
    <body>
    <b>Octoglomerate</b>
    </body>
    </html>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    CSP编译器对标记采取的操作是在带有标记的规则文件中定义的。规则文件是带有.csr (Caché Server Rule)文件扩展名的XML文档,它定义了识别标签的规则以及找到这些标签时要执行的操作。它还可以包括附加信息,例如规则的描述。

    标记的规则文件可能如下所示,并可能被命名为company.csr:

    <csr:rule name="myCOMPANY" match="my:COMPANY" empty>
    <csr:action>
    <b>Octoglomerate</b>
    </csr:action>
    </csr:rule>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这个规则文件规定:

    使用标记,该文件定义了一个名为myCOMPANY的规则。
    属性empty指定标记没有结束标记。

    规则名具有与Caché类相同的命名限制。
    规则只在定义它的Caché名称空间中活动,以%开头的规则除外,这些规则定义在%SYS名称空间中,并且对所有其他名称空间可见。

    标记指定要采取的操作。
    标签的内容必须是HTML和以下任何一种:

    • #()# 表达式
    • ##()## 表达式