xml

数据格式–XML

第一部分:xml的介绍

1.什么是XML
    XMl是可扩展标记语言的英文简称,它的特点是可以由用户自定义。
2.xml的用途
    xml的作用主要分为两个部分:一是用作配置文件,二是用于传输数据。   
3.xml的语法
    1.xml文档声明
        <?xml version="1.0" encoding="utf8"?>
    注:1.文档声明中必须要以<?xml开头,?>结尾。
        2.文档声明必须从文档的0行0列位置开始。
        3.文档声明的必须属性为:version,其值一般为1.0;而encoding是可选属性,值一般是utf8。
    2.元素内容
        1.元素是由开始标签,元素体,结束标签一起组成。如:<name>wgy</name>.
        2.一个xml文档,要有一个根元素。
        3.元素体可以是元素,也可以是文本。
    3.属性内容
        1.属性是元素的一部分,它必须要出现在元素的开始标签中。
        2.属性的定义格式:属性名=属性值,其中的属性值要用引号将它包裹。
        3.一个元素中,属性名不能同名。

注:在xml文档中,如果出现大量的转义字符,可以使用

第二部分:XML的约束

常见的xml约束:DTD约束,Schema约束

一.DTD约束
    1.什么是DTD约束
        DTD约束就是,文档类型定义,它是用来约束xml文档的;它规定了xml文档中的元素名称,子元素的名称以及顺序,元素体的内容,元素的属性等等。
    2.DTD的实际应用
        一般在开发中,自己编写DTD约束比较少,一般是通过引入DTD约束文档来编写相应的xml文档。
    3.DTD文档的引入
        1.可以通过在xml文档中嵌入DTD约束,只对当前xml文档有效。
            <!DOCTYPE web-app [
                DTD语法
            ]>
        2.可以在外部引入DTD约束。
            2.1.可以使用<!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">引入位于同一目录下的DTD约束文档。
            2.2.可以使用<!DOCTYPE web-app PUBLIC "-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">引入位于网络上的dtd约束文档。
    4.DTD的语法
        4.1元素声明:
            <!ELEMENT 元素名 元素描述>
                元素名:自定义
                元素描述:
                    常见类型:? * + () |
                    常见类型:#PCDATA表示元素体只能是文本,不能是子标签。  
        4.2属性声明:
            <!ATTRIST 元素名
                属性名 属性类型 约束
                属性名 属性类型 约束
                ...
            >
        元素名:自定义
        属性类型:
            ID :ID类型的属性用来标识元素的唯一性
            CDATA:文本类型
        约束:
            #PEQUIRED:说明属性是必须的
            #IMPLIED:说明属性是可选的
    ---->DTD实例:
        <?xml version="1.0" encoding="UTF-8"?>
        <!ELEMENT web-app (servlet*,servlet-mapping* , welcome-file-list?) >
        <!--
            <!ELEMENT web-app (servlet*,servlet-mapping* , welcome-file-list?) >
            表示在web-app标签下面有三个子标签,而且要按照顺序出现
                1.servlet:*代表着数量是任意的。
                2.servlet-mapping:*代表着数量是任意的。
                3.welcome-file-list:?代表着数量是1或者0
         -->
        <!ELEMENT servlet (servlet-name,description?,(servlet-class|jsp-file))>
        <!--
            <!ELEMENT servlet (servlet-name,description?,(servlet-class|jsp-file))>
            表示在servlet标签下面有三个子标签,而且要按照顺序出现
                1.servlet-name:必须要出现并且只能出现一次
                2.description:?代表着数量是1或者0
                3.(servlet-class|jsp-file):servlet-class或者jsp-file二选一,只能出现0或1次
         -->
        <!ELEMENT servlet-mapping (servlet-name,url-pattern+) >
        <!--
            <!ELEMENT servlet-mapping (servlet-name,url-pattern+) >
            表示在servlet-mapping标签下面有两个子标签,而且要按照顺序出现
                1.servlet-name:必须要出现并且只能出现一次
                2.url-pattern+:+代表着至少要出现一次  
         -->
        <!ELEMENT servlet-name (#PCDATA)>
        <!--
            <!ELEMENT servlet-name (#PCDATA)>
                设置servlet-name元素体中的内容只能为文本类型。
         -->
        <!ELEMENT servlet-class (#PCDATA)>
        <!ELEMENT url-pattern (#PCDATA)>
        <!ELEMENT description (#PCDATA)>
        <!ELEMENT jsp-file (#PCDATA)>

        <!ELEMENT welcome-file-list (welcome-file+)>
        <!ELEMENT welcome-file (#PCDATA)>

        <!ATTLIST web-app version CDATA #IMPLIED>
        <!-- 
            <!ATTLIST web-app version CDATA #IMPLIED>
            为web-app元素设置属性,属性名为version,类型为文本,是可选的
        --> 
二.Schema约束
    1.什么是schema约束
        schema约束是新的xml文档约束
        schema要比DTD强大很多,是DTD的替代者。
        schema本身也是xml文档,但是schema文档扩展名为xsd,而不是xml
        schema功能更加强大,数据类型更加完善
        schema支持名称空间

第三部分:解析XMl

在编写好xml文档后,为了要获取xml的内容,需要将xml解析。

1.xml的解析方式:
    DOM解析,SAX解析,PULL解析。

2.DOM解析方式
    原理:xml dom和html dom类似,xml dom将整个xml文档加载到内存中,生成一个DOM树,并且获取一个Document对象,然后通过Document对象来对DOM进行操作。
3.Dom4j的核心类
    1.SaxReader对象
        a.read()加载xml文档
    2.Document对象
        a.getRootElement()获得根元素
    3.Element对象
        a.elements(..)获得指定名称的所有子元素,可以不指定名称
        b.element(..)获得指定名称的第一个字元素,可以不指定名称
        c.getName()获得当前元素的元素名
        d.attributeValue(..)获得指定属性名的属性值
        e.elementText(..)获得指定名称子元素的文本值
        f.getText()获得当前元素的文本内容
基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值