20220529_XML文件规范_DTD和Schema文档约束格式

本文探讨了XML文件的规范,包括使用DTD(Document Type Definition)和Schema进行文档约束。首先介绍了XML的基本写法,然后详细阐述了如何通过DTD定义元素和属性的约束,以及使用DTD约束后的XML文件格式。接着,文章转向了Schema约束,说明了如何利用Schema来规定更复杂的数据类型,并展示了应用Schema约束后的XML文件示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初始XML写法

<?xml version="1.0" encoding="UTF-8" ?>
<!-- comment is this format, and it will be displayed by green -->
<College>
    <Teacher>
        <name> 罗翔 </name>
        <gender> Female </gender>
        <major> law </major>
        <info>
            <age> &gt;40 &lt;50  </age>
            <career> &amp;18 &apos;K &quot;F </career>
            <addr>bilibili</addr>
        </info>
    </Teacher>
    <![CDATA[
        1<2 3>2 name=`T` & "Peter"
    ]]>
</College>

dtd约束文档

<!ELEMENT Bookshelf (Book+)>
<!ELEMENT Book (Name Author Price)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Author (#PCDATA)>
<!ELEMENT Price (#PCDATA)>

dtd约束后的xml文件写法

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Bookshelf SYSTEM "regular.dtd">
<!-- 我是一个DTD约束的XML文件 -->
<Bookshelf>
    <Book>
        <Name>Robinson</Name>
        <Author>Crusoe</Author>
        <Price>99.9</Price>
    </Book>
    <Book>
        <Name>The Whale</Name>
        <Author>Moby Dick</Author>
        <Price>99.8</Price>
    </Book>
</Bookshelf>

可以规定数据类型的schema约束格式

<?xml version="1.0" encoding="UTF-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.notexist.com"
        elementFormDefault="qualified">
    <!-- targetNamespace 申明约束文档的地址,又叫命名空间 -->
    <element name="Bookshelf">
        <complexType>
            <sequence maxOccurs="unbounded">
                <element name="Book">
                    <complexType>
                        <sequence>
                            <element name="name" type="string"/>
                            <element name="author" type="string"/>
                            <element name="price" type="double"/>
                        </sequence>
                    </complexType>
                </element>
            </sequence>
        </complexType>
    </element>
</schema>

约束后的xml写法

<?xml version="1.0" encoding="UTF-8" ?>
<Bookshelf xmlns="http://www.notexist.com">
    <Book>
        <name>Surveiller et Punir</name>
        <author>Foucault</author>
        <price>108.0</price>
    </Book>
</Bookshelf>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值