XML详解

XML详解

1 什么是XML

Xml: Extensible(可扩展) Markup(标记) Language(语言),是一种用于标记电子文件使其具有结构性的标记语言。

作用:

  • 保存数据,单机应用使用数据库不方便,所有可以使用xml文件来保存。
  • 网络传输,原始传输的时候使用的是数据包,但是数据包解析困难,而且不能支持量大的数据,所以也可以使用xml文件来传递。
  • 配置文件,之前会使用properties文件,但是他的结构不够清晰,所以可以使用xml文件来配置。

特点:

  • 平台无关性,windows, linux…都支持xml,是独立的语言
  • 基本所有的语言都是支持xml
  • xml的内容是可以自定义的

2 第一个XML文件

2.1 XML文件语法规范

  • xml文件中必须有根节点
  • xml元素标签有开必有合
  • xml元素对大小写敏感
  • xml元素标签必须正确嵌套
  • xml元素的属性必须加引号(单引号和双引号都可)

2.2 创建XML

这里使用IDEA创建,在包下或者文件夹点击右键新建一个file,名字以.xml结尾

在这里插入图片描述

创建好以后,设置xml文件的头标记

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

设置好以后,这个xml文件就可以使用了

2.3 定义一个xml

<?xml version="1.0" encoding="UTF-8" ?>
<!--
       定义一个xml文件,模仿spring配置文件
-->

<!--根节点-->
<beans>
    <!--定义bean,设置id和class-->
    <bean id="lili" class="com.moon.pojo.Woman">
        <!--定义属性-->
        <property name="name">
            <!--定义list-->
            <list>
                <!--设置value-->
                <value>1</value>
                <value>2</value>
                <value>3</value>
            </list>
        </property>
    </bean>
</beans>

3 CDATA区域

在xml中书写一些特熟符号,可能会被识别为标签的信息,比如像输入小于号<,在java中我们可以通过\来转译,在xml中我们就需要使用CDATA区来书写这些符号

CDATA区域书写定义:<![CDATA[书写区]]>

<bean> <![CDATA[7<6<3>111]]> </bean>

4 DTD文件

DTD:Document Type Definition,定义一个xml文件中写的内容

简单的dtd内容

<!--跟节点下可以有多个bean-->
<!ELEMENT beans (bean*)>
<!--定义一个bean,bean下可以写property-->
<!ELEMENT bean (property*)>
<!--property下可以有多个value和ref-->
<!ELEMENT property (value* ref*)>
<!--定义value-->
<!ELEMENT value ()>
<!--定义ref-->
<!ELEMENT ref ()>

dtd的引用

<?xml version="1.0" encoding="UTF-8" ?>
<!--
       定义一个xml文件,模仿spring配置文件
-->
<!--根节点-->
<!DOCTYPE beans SYSTEM "demo.dtd">
<beans>
    <bean>
        <property>
            <ref></ref>
            <value></value>
        </property>
    </bean>
</beans>

5 XSD文件

XSD:XML Schemas Definition,定义结构,是DTD的替代品

模仿一个简单的spring配置

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.moon.org/simpleSpring/Schema/beans"
           xmlns:tns="http://www.moon.org/simpleSpring/Schema/beans">

    <!--设置bean的属性-->
    <xs:attributeGroup name="beanAttr">
        <!--id-->
        <xs:attribute name="id" type="xs:string"/>
        <!--class-->
        <xs:attribute name="class" type="xs:string"/>
        <!--作用域属性-->
        <xs:attribute name="scope" default="singleton">
            <xs:simpleType>
                <!--String类型-->
                <xs:restriction base="xs:string">
                    <!--枚举类型-->
                    <xs:enumeration value="singleton"/>
                    <xs:enumeration value="prototype"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!--懒加载属性-->
        <xs:attribute name="lazy-init" default="default">
            <xs:simpleType>
                <!--布尔类型-->
                <xs:restriction base="xs:boolean">
                    <!--枚举类型-->
                    <xs:enumeration value="default"/>
                    <xs:enumeration value="false"/>
                    <xs:enumeration value="true"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <!--初始化方法-->
        <xs:attribute name="init-method" type="xs:string"/>
        <!--销毁方法-->
        <xs:attribute name="destroy-method" type="xs:string"/>
    </xs:attributeGroup>
    <!--设置property属性-->
    <xs:attributeGroup name="propertyAttr">
        <!--name属性-->
        <xs:attribute name="name" type="xs:string" use="required"/>
        <!--value属性-->
        <xs:attribute name="value" type="xs:string"/>
        <xs:attribute name="ref" type="xs:element"/>
    </xs:attributeGroup>
    <!--设置集合通用属性-->
    <xs:attributeGroup name="collectionAttr">
        <xs:attribute name="value-type" type="xs:string"/>
    </xs:attributeGroup>
    <!--设置entry属性-->
    <xs:attributeGroup name="entryAttr">
        <xs:attribute name="key" type="xs:string" use="required"/>
        <xs:attribute name="value" type="xs:string"/>
        <xs:attribute name="value-ref" type="xs:string"/>
    </xs:attributeGroup>

    <!--设置bean节点-->
    <xs:element id="bean" name="bean">

        <xs:complexType>
            <xs:sequence>
                <xs:element ref="tns:property" maxOccurs="unbounded" minOccurs="0"/>
            </xs:sequence>
            <xs:attributeGroup ref="tns:beanAttr"/>

        </xs:complexType>

    </xs:element>
    <!--设置property节点-->
    <xs:element id="property" name="property">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="tns:value" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="tns:ref" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="tns:list" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="tns:set" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="tns:map" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attributeGroup ref="tns:propertyAttr"/>
        </xs:complexType>
    </xs:element>

    <!--设置value节点-->
    <xs:element name="value" id="value" type="xs:string"/>
    <!--设置引用节点-->
    <xs:element name="ref" id="ref" type="xs:element"/>

    <!--设置list节点-->
    <xs:element name="list" id="list">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="tns:value" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="tns:ref" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attributeGroup ref="tns:collectionAttr"/>
        </xs:complexType>
    </xs:element>
    <!--设置set节点-->
    <xs:element name="set" id="set">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="tns:value" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="tns:ref" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attributeGroup ref="tns:collectionAttr"/>
        </xs:complexType>
    </xs:element>
    <!--设置map节点-->
    <xs:element name="map" id="map">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="tns:entry" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attributeGroup ref="tns:collectionAttr"/>
        </xs:complexType>
    </xs:element>
    <!--设置entry节点-->
    <xs:element name="entry" id="entry">
        <xs:complexType>
            <xs:attributeGroup ref="tns:entryAttr"/>
        </xs:complexType>
    </xs:element>

    <!--设置命名空间根节点-->
    <xs:element name="beans">
        <xs:complexType mixed="true">
            <xs:sequence maxOccurs="unbounded">
                <xs:element ref="tns:bean">
                    <xs:complexType>
                        <xs:sequence maxOccurs="unbounded">
                            <xs:element ref="tns:property">
                                <xs:complexType>
                                    <xs:sequence/>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>

            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

xml文件实现的结构

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.moon.org/simpleSpring/Schema/beans">
    <!--声明一个bean-->
    <bean id="" class="" scope="singleton" lazy-init="true" init-method="" destroy-method="">
        <!--注入value-->
        <property name="" value=""/>
        <!--注入ref-->
        <property name="" ref=""/>
        <!--注入list-->
        <property name="">
            <list value-type="">
                <value></value>
            </list>
        </property>
        <!--注入set-->
        <property name="">
            <set value-type="">
                <ref></ref>
            </set>
        </property>
        <!--注入map-->
        <property name="">
            <map value-type="">
                <entry key="" value=""/>
                <entry key="" value-ref=""/>
            </map>
        </property>
    </bean>
</beans>
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Eplan XML文件是电气设计软件Eplan中使用的一种文件格式。Eplan是一款专业的电气设计软件,用于创建和管理各种电气项目。它提供了一个直观的用户界面,帮助工程师快速创建电气图纸,并自动生成相关的电气文档和报告。 Eplan XML文件是Eplan软件中用来存储电气设计信息的一种文件格式。它包含了电气图纸的各种元素,如线路图、电气元件、连接点等等。通过使用XML(可扩展标记语言)格式,Eplan XML文件可以跨平台、跨软件使用,并且保留了原始数据的结构和层次关系。 Eplan XML文件具有以下几个特点和用途: 1. 兼容性:Eplan XML文件可以与其他软件、系统和设备进行数据交换,如自动化PLC系统、机器控制系统和其他CAD软件。 2. 网络共享:Eplan XML文件可以通过局域网或云服务共享给项目组成员进行协作工作,方便实时更新和讨论。 3. 版本管理:Eplan XML文件可以记录电气设计的不同版本,便于追溯和比较不同阶段的设计差异。 4. 数据备份:通过保存Eplan XML文件,可以避免数据丢失,确保设计数据的安全性和可靠性。 5. 定制化:Eplan XML文件可以根据项目需求进行自定义配置,并可以添加附加的属性和信息,如文档编号、修改记录等。 总之,Eplan XML文件是Eplan软件中用于存储电气设计信息的文件格式,具有兼容性、网络共享、版本管理、数据备份和定制化等特点,为电气设计人员提供了更灵活和高效的设计工作方式。 ### 回答2: EPLAN XML文件是一种用于电气工程设计软件EPLAN中的数据交换格式。EPLAN是一款专业的电气设计软件,广泛应用于自动化、控制、仪器仪表等领域,其强大的功能和灵活的操作使得电气工程师能够高效、精确地进行电气系统的设计与开发。 EPLAN XML文件是EPLAN软件中用来存储设计数据的一种文件格式。它以XML(可扩展标记语言)的形式表示,可以存储电气图纸、设备布局、接线图、设备参数等各种设计数据。通过将设计数据保存为XML文件,可以方便地进行文件的传输、共享和版本控制,同时也便于与其他软件进行数据交换和集成。 EPLAN XML文件包含了各种对象的属性信息,如设备型号、连接关系、端子引脚、导线长度等,同时还保存了设计文档的结构、层次和关系。这样,一旦创建了EPLAN XML文件,就可以在软件中进行灵活的数据分析、查询和设计优化,提高设计效率和质量。 另外,EPLAN XML文件还可以在与其他软件进行数据交换时发挥重要作用。例如,可以将EPLAN XML文件与PLC编程软件进行集成,实现自动化系统的设计与调试;还可以将EPLAN XML文件与企业资源规划(ERP)系统关联起来,实现电气设计与生产管理的无缝对接。 综上所述,EPLAN XML文件是一种用于存储和交换电气设计数据的文件格式,它在EPLAN软件中发挥重要作用,可以提高电气工程师的设计效率和工作质量,也方便了与其他软件的数据交互和集成。 ### 回答3: ePlan XML文件是一种电子计划文件,它使用XML(可扩展标记语言)格式存储项目计划信息。它包含了项目的各种计划细节,如任务列表、起止时间、资源分配、里程碑等。ePlan XML文件通常由项目管理软件生成,可以用于跟踪和管理项目进展。 ePlan XML文件具有以下特点: 1. 结构化:ePlan XML文件以层次结构存储项目计划信息,方便用户按照任务和子任务的关系进行查看和管理。 2. 可扩展性:XML是一种通用的标记语言,ePlan XML文件可以添加自定义的标签和属性,以适应不同项目的特殊要求。 3. 跨平台兼容性:ePlan XML文件可以在不同的计划管理软件之间进行导入和导出,实现平台间的数据交换和共享。 4. 数据交互性:ePlan XML文件可以与其他系统进行数据交互,例如与资源管理系统、财务系统等进行对接,实现项目信息的共享和集成管理。 5. 可读性:由于采用了XML格式,ePlan XML文件可以通过文本编辑器进行查看和编辑,方便用户理解和修改项目计划信息。 总而言之,ePlan XML文件是一种用于存储和传输项目计划信息的标准格式,它提供了一种统一的数据交换方式,方便项目管理人员进行项目计划的创建、修改和共享。它对于项目管理和协调具有重要的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值