zoukankan      html  css  js  c++  java
  • 如何定义xml里元素

    使用XML多年了,但是一直没有关注过XML是如何定义的,今天看到了就补充一下XML的定义。

    一:什么是DTD

    Document Type Definition(文档类型定义),一句话总结DTD:是通过自己的语法来定义XML中有怎么样的结构、有哪些元素的定义文档的文件。

    二:如何将自定义DTD写入XML

    在XML中第二行中就是XML的定义,如下所示:

    mapper为根节点元素名称,PUBLIC后第一个字符串为dtd名称,后为dtd路径。

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "dtdtest" "dtdtest.dtd">

    三:如何将自己编写DTD嵌入eclipse,用于提示和校验

    eclipse中引入自己的DTD:window->preference->搜索XML->XML Catalog->add->(key为PUBLIC后第一个字符串为dtd名称,locatiob为dtd路径即可)

    四:DTD语法简介

    <?xml version="1.0" encoding="UTF-8" ?>

    <!-- 定义mapper子节点只能为 select 或者update 可以有零个或多个 -->
    <!ELEMENT mapper (select* | update*)>

    <!-- 定义mapper属性1为namespace为字符类型,非必须的 -->
    <!-- 定义mapper属性2为collection为字符类型,是必须的 -->
    <!-- 定义mapper属性3为item为字符类型,是必须的 -->
    <!-- 定义mapper属性4为type为枚举类型,是必须的(好像没作用)-->
    <!ATTLIST mapper
    namespace CDATA #IMPLIED
    collection CDATA #REQUIRED
    item CDATA #FIXED "item"
    type (type1 |type2 |type3) #REQUIRED
    >

    <!-- 以上结构看明白就行,后续dtd只是为了dtd文件的完整性 -->

    <!ATTLIST foreach
    collection CDATA #REQUIRED
    item CDATA #IMPLIED
    index CDATA #IMPLIED
    >

    <!ATTLIST choose
    collection CDATA #REQUIRED
    item CDATA #IMPLIED
    index CDATA #IMPLIED
    >

    <!ELEMENT select (foreach | choose)*>
    <!ATTLIST select
    id CDATA #REQUIRED
    parameterMap CDATA #IMPLIED
    resultSetType (FORWARD_ONLY) #IMPLIED
    >

    <!ELEMENT update (foreach | choose)*>
    <!ATTLIST update
    id CDATA #REQUIRED
    parameterMap CDATA #IMPLIED
    resultSetType (FORWARD_ONLY) #IMPLIED
    >

    五:注意事项

    每次修改dtd文件后需要将文件重新嵌入eclipse中,最好不同路径下复制一份,两份来回切换。否则dtd文件容易不生效

    项目GitHup地址:https://github.com/wuxiaolong0521/wuxiaolong0521/tree/master/xml/definition

  • 相关阅读:
    VMware虚拟机的三种连接方式
    Codeblocks16.01配置wxWidgets3.0.4
    DAO编程(VC6.0中的应用)
    VC++ 中用ado连接数据库
    C中文件的输入输出与C++的文件流
    Cpp中流继承关系
    a标签置灰不可点击
    手动操作数据库
    $.ajaxFileUpload is not a function
    【工具】手机号码、电话号码正则表达式
  • 原文地址:https://www.cnblogs.com/wuxiaolong4/p/11147477.html
Copyright © 2011-2022 走看看