openCMS的XML管理

来源:互联网 发布:2017比较污的网络词语 编辑:程序博客网 时间:2024/04/28 04:56

open CMS的一个很重要的特色就是利用XML来管理内容,xml使用的步骤如下:

一、创建一个XSD

            1、在你自己的项目的文件夹里再建立一个schemas文件夹;

            2、在这个文件夹内建立xxx.xsd文件,此xsd文件就是规定xml文件如何存储文件和属性。

            3、代码示例:

        <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
                  这行是所有xsd文件都要使用的;结束标签在最后一行
            <xsd:include schemaLocation="opencms://opencms-xmlcontent.xsd"/> 

                  这行是所有openCMS的 xsd文件都要加上的;自己结束了

            <xsd:element name="ArticleTypes" type="OpenCmsArticleTypes"/>
                  定义根元素“ArticleTypes” 它的类型名称是“OpenCmsArticleTypes” ,一定要以OpenCms开头“s”结尾
            <xsd:complexType name="OpenCmsArticleTypes">

                   定义“OpenCmsArticleTypes”这个类型
                  <xsd:sequence>
                      <xsd:element name="ArticleType" type="OpenCmsArticleType" minOccurs="0" maxOccurs="unbounded"/>

                  定义元素“ArticleType" ,并定义它的类型为"OpenCmsArticleType" 该元素的出现次数无限制
                  </xsd:sequence>
            </xsd:complexType>

            <xsd:complexType name="OpenCmsArticleType">

                 定义“OpenCmsArticleType”这个类型
                <xsd:sequence>
                    <xsd:element name="Title" type="OpenCmsString" />   

                    <xsd:element name="Keywords" type="OpenCmsString" maxOccurs="3"/>
                    <xsd:element name="Text" type="OpenCmsHtml" />

                     上面三行定义了三个属性("Title"、"Keywords"、"Text" )的各自类型“Keywords”最多出现三次。
                </xsd:sequence>
                <xsd:attribute name="language" type="OpenCmsLocale" use="required"/>

                     定义“OpenCmsArticleType” 的“language”属性为“OpenCmsLocale”类型,是xml的预定义类型。
             </xsd:complexType>

        </xsd:schema>

 

二、创建XML内容类型
          1、在class的文件夹的最下面一个文件夹(example)建立一个workplace.properties文本文件ISO-8859-1;

          2、文件内容为:

               fileicon.myarticletype = 我的文章类型
               title.newmyarticle = 创建一篇文章
               label.ArticleType.Title = 标题
               label.ArticleType.Keywords = 关键词
               label.ArticleType.Text = 正文 

三、把XSD作为一个资源类型加到本人建立的模块中

         找到D:/Tomcat 6.0/webapps/opencms/WEB-INF/config/opencms-modules.xml的文件找到<name>com.mysite.example</name>这个标签下面的<parameters/>这个标签,在这个标签下面加上下面的配置:

        <resourcetypes>
            <type class="org.opencms.file.types.CmsResourceTypeXmlContent" name="myarticle" id="7001">
                <param name="schema">/system/modules/com.mysite.example/schemas/Article.xsd</param>
            </type>
        </resourcetypes>

        <explorertypes>
            <explorertype name="myarticle" key="fileicon.myarticletype" icon="article.gif"  reference="xmlcontent">
                <newresource page="structurecontent"  uri="newresource_xmlcontent.jsp?newresourcetype=myarticle"
              order="7001"  autosetnavigation="false"  autosettitle="false"/>
                <accesscontrol>
                    <accessentry principal="GROUP.Administrators" permissions="+r+v+w+c"/>
                    <accessentry principal="GROUP.Projectmanagers" permissions="+r+v+w+c"/>
                    <accessentry principal="GROUP.Users" permissions="+r+v+w+c"/>

                    上面三行设定用户组权限
                </accesscontrol>


            </explorertype>
        </explorertypes>

 

四、重新发布tomcat

         做好上面的步骤以后一定要重新启动tomgcat才能生效。

五、新建Structured content类型文件

        点击>> 新建>>选择Structured content类型>>选择:在弹出的菜单中最后一个就是刚才自定义的类型,在这里是“我的文章类型”我的文章类型>>输入文件名“article1”(下面两个要勾选上)>>title:“这是我的第一个xml内容文档”

l六、编辑新建立的article1.html文档

          刚才建立了article1.html这个XML文件,但这个文件没有任何内容,右键点击这个文件,在上下文菜单中选择“编辑edit”则会显示一个带输入框的文本编辑页面,这个页面的输入框就是我们刚才定义的,然后就可以在这里输入您要输入的内容,比如是一则新闻,关键字最多三个,因为也是刚才定义的。

七、xml需绑定一个jsp页面。

          

 

         此jsp文档的内容为:

             <%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>

 

              <cms:include property="template" element="head"/>

               引入了模板中的“head”块

              <cms:contentload collector="singleFile" param="%(opencms.uri)" editable="true">

               获取xml内容 

                  <h1><cms:contentshow element="Title" /></h1>

 

                  <cms:contentloop element="Keywords">

                     遍历关键词

                          <i><cms:contentshow/></i>

                  </cms:contentloop>

 

                  <p> <cms:contentshow element="Text" /> </p>

 

               </cms:contentload>

 

               <cms:include property="template" element="foot" />

八、保存、发布项目

      点击article1.html显示编辑的新闻内容

 

 

经过上面的操作就完成了xml的使用。