OpenCms自定义结构化类型的高级设置

news/2024/9/18 0:44:41

  接着上一篇OpenCms自定义结构化类型的创建,我们来进一步完善自定义的“TestNews”类型,主要是完成对自定义字段的数据验证、数据映射和默认值设置,完善后的XSD代码如下:


< xsd:schema  xmlns:xsd ="http://www.w3.org/2001/XMLSchema"  elementFormDefault ="qualified" >

    
< xsd:include  schemaLocation ="opencms://opencms-xmlcontent.xsd" />
        
    
< xsd:element  name ="TestNewss"  type ="OpenCmsTestNewss" />
    
    
< xsd:complexType  name ="OpenCmsTestNewss" >
        
< xsd:sequence >
            
< xsd:element  name ="TestNews"  type ="OpenCmsTestNews"  minOccurs ="0"  maxOccurs ="unbounded" />
        
xsd:sequence>
    
xsd:complexType>

    
<xsd:complexType name="OpenCmsTestNews">
        
<xsd:sequence>
            
<xsd:element name="Title" type="OpenCmsString" />
            
<xsd:element name="Date" type="OpenCmsDateTime" />            
            
<xsd:element name="Text" type="OpenCmsHtml" />
        
xsd:sequence>
        
<xsd:attribute name="language" type="OpenCmsLocale" use="required"/>
    
xsd:complexType>

    
<xsd:annotation>
        
<xsd:appinfo>
            
<resourcebundle name="org.opencms.testnews.workplace"/>
            
<preview uri="${previewtempfile}" />
            

            
<validationrules>
                
<rule element="Title" regex="^.*[S]+.*$"  message="${key.editor.errormessage.TestNews.mustnotempty}"/>
            

            
validationrules>
            

            
<mappings>
                
<mapping element="Title" mapto="property:Title" />
            
mappings>
            

            

            
<defaults>
                
<default element="Date" value="${currenttime}"/>
            
defaults>
            

        
xsd:appinfo>

    
xsd:annotation>  
xsd:schema>

  数据验证由正则表达式完成,如上述代码中的regex="^.*[S]+.*$" ,提示信息由“message="${key.editor.errormessage.TestNews.mustnotempty}”设置,需要在worlkplace.properties中增加 “editor.errormessage.TestNews.mustnotempty=标题不允许为空!”,这样在编辑TestNews类型新闻时,如果为空,编辑器即会提示错误信息,如下图:

   映射字段Title信息至属性“Title,也就是在工作区中右侧资源列表中的标题字段显示的就是TextNews中标题信息的内容。

   设置字段Date默认值中,value="${currenttime}为系统定义的宏,取得是系统的当前时间。
  (谢谢关注OpenCms——中文资源第一博客http://blog.csdn.net/qianxuncms/,欢迎与作者直接交流,共同进步。MSN:qianxuncms@hotmail.com,QQ:9165456)





http://www.niftyadmin.cn/n/3653599.html

相关文章

IOS SQLite3 存储和读取图片

存储图片 // Save Small Image Data by given main url - (void) SaveImagesToSql: (NSData*) imgData :(NSString*) mainUrl{NSLog( "\n*****Save image to SQLite*****\n" );const char* sqliteQuery "INSERT INTO IMAGES (URL, IMAGE) VALUES (?, ?)&quo…

OpenCms7.0 RC 2_千寻汉化包v2.2 发布

OpenCms7.0 RC 2_千寻汉化包2.2——2007年6月7日OpenCms中文资源第一博客&#xff08;http://blog.csdn.net/qianxuncms/&#xff09;国内首发。OpenCms 7 RC2 的主要特点&#xff1a;1、为OpenCms6.x版本增加了至OpenCms7 RC 2了升级包&#xff0c;但此升级包只适用于安装数据…

无需苹果审核的App发布——企业版IDP的申请及“In House”发布

企业版IDP的申请及“In House”发布 企业版IDP&#xff0c;即iOS Development Enterprise Program。注意是$299&#xff0f;Year那种&#xff0c;并不是$99/Year的那种。 这种方式的IDP其最大的好处在于&#xff1a;可以发布“In House”应用。 这种应用使用一种叫做“In House…

OpenCms7.0.0千寻汉化包v3.0 国内首发

OpenCms7.0.0千寻汉化包3.0——2007年7月5日OpenCms中文资源第一博客&#xff08;http://blog.csdn.net/qianxuncms/&#xff09;国内首发。 OpenCms 7 的主要特点&#xff1a;1、为基于MsSQL和Oracle安装的OpenCms6各版本提供至OpenCms7.0的升级向导&#xff1b; 2、增加了对P…

OpenCms7之升级变化(2007-11-02更新)

OpenCms7发布已经有一段时间了&#xff0c;给我们带来新功能的同时&#xff0c;有些地方也发生了一些变化&#xff0c;如果不注意的话&#xff0c;在以前版本中正常的代码会在OpenCms7中出错&#xff0c;总结如下&#xff1a;代码变化&#xff1a;1、7.0之前的“${}”的写法要在…

Objective-C实现copy的原理

首先&#xff0c;从copy开始说&#xff0c;简而言之&#xff0c;copy的目的就是生成一个新的实例&#xff0c;然后把其成员都按原实例赋值。对于非指针型的成员&#xff0c;比如BOOL, int, float&#xff0c;这样的赋值可以直接进行。但是对于指针型的数据&#xff0c;比如Objc…

OpenCms7.0.2千寻汉化包发布

OpenCms7.0.2千寻汉化包——2007年11月1日OpenCms中文资源第一博客&#xff08;http://blog.csdn.net/qianxuncms/&#xff09;国内首发。 从这个版本开始&#xff0c;OpenCms千寻汉化模块的版本号与OpenCms的版本号保持一致&#xff0c;所以OpenCms7.0.2的汉化模块名称为&…

同步(Synchronous)异步(Asynchronous) 阻塞(Blocking)和非阻塞(Non-blocking)的概念

一、同步&#xff5e;异步&#xff5e;阻塞&#xff5e;非阻塞 同步&#xff08;Synchronous&#xff09;和异步&#xff08;Asynchronous&#xff09;的概念本来来自通信领域&#xff1a;首先是通信的同步&#xff0c;主要是指客户端在发送请求后&#xff0c;必须得在服务端有…