• XML配置文件


    XML介绍

    XML(可扩展标记语言)文件本身不能对自己“做出”任何操作。它们是存储数据的一种简单方式,而存储的数据可以被其它软件轻松读取。很多程序都会使用可扩展标记语言(XML)来存储数据。XML可用来存储数据、携带数据和交换数据,不是为了显示数据而设计的。

    配置文件在程序中的应用还是很常见的,如我们需要启动一个Socket 的客户端去连接远程的Server,这时需要设置服务器的Ip和Port。当我们本次设置完成后,下次再使用的时候希望程序“记录”这个Ip和Port,我们直接连接即可,而不是要求用户再输入一次。面对这种需要“记录”的功能,我们可以使用配置文件。

    对于数量不多的配置信息,我们可以使用QSettings进行记录,而对于一些复杂而且数量较多的配置信息,我们则可以使用配置文件。如Xml配置文件、Json配置文件等。

    XML属性定义  

    语法
    < !ATTLIST element-name att_name type desc >
    属性类型
    ID:写在元素中则元素必须具备ID这个属性
    ( 男 | 女 ):属性只能写男或者女,写别的报错
    CDATA:文本属性
    IDREF:引用别人ID标签的值
    reference(少用)
    属性描述
    #REQUIRED:表示必填
    #IMPLIED:表示非必填
    '默认值':只有type为男或女类型时,desc才可以使用默认值的方式

    XML的元素定义 

    DTD定义

    DTD简介

    DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块

    DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用

    DTD的标签:< !DOCTYPE root[ ] >

    DTD的规范示例

    1. <!DOCTYPE NEWSPAPER [
    2. <!ELEMENT NEWSPAPER (ARTICLE+)>
    3. <!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)>
    4. <!ELEMENT HEADLINE (#PCDATA)>
    5. <!ELEMENT BYLINE (#PCDATA)>
    6. <!ELEMENT LEAD (#PCDATA)>
    7. <!ELEMENT BODY (#PCDATA)>
    8. <!ELEMENT NOTES (#PCDATA)>
    9. <!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED>
    10. <!ATTLIST ARTICLE EDITOR CDATA #IMPLIED>
    11. <!ATTLIST ARTICLE DATE CDATA #IMPLIED>
    12. <!ATTLIST ARTICLE EDITION CDATA #IMPLIED>
    13. ]>

    元素的分类

    1. < !DOCTYPE element-name EMPTY>//空元素

    2. < !DOCTYPE element-name (#PCDATA)>//文本元素

    3. < !DOCTYPE element-name (e1,e2)>//混合元素

    空元素指没有标签体的元素(像单标签),如</a>;混合元素指一个元素中有多个不同的元素,如<head> <h1> <sex> </sex> </h1></head>;文本元素则就是可以传入文本类型的标签,如中文、字母、数字等 

    元素的限制 

    • 与:用 .  表示
    • 非:用 | 表示

    次数:

    • 0或1:用 ?表示
    • 0或N:用 * 表示
    • 1或N:用 + 表示

    元素定义的示例

    👇定义person对象中的元素及元素规范

     

     

  • 相关阅读:
    多线程案例(线程池篇)
    Scala语言基础
    牛客多校9 B(概率dp+差分)G(回文自动机+双哈希)
    nodejs express uniapp 图书借阅管理系统源码
    太空射击 第07课: 添加图形
    C++ primer plus第十五章编程练习答案
    Vitis导入自制IP导致无法构建Platform
    高防服务器如何对异常流量进行识别
    c语言练习70:反转两次的数字
    JS 模块化 - 03 AMD 规范与 Require JS
  • 原文地址:https://blog.csdn.net/WZJ278/article/details/125568785