XML入门笔记

XML文档结构(https://www.runoob.com/xml/xml-syntax.html

  1. 第一行必须是xml声明 :<?xml version="1.0" encoding="UTF-8"?> , 定义 XML 的版本(1.0)和所使用的编码(UTF-8 : 万国码, 可显示各种语言)。
  2. 有且只有一个根节点。
  3. xml标签的书写规则与HTML相同。
  4. 标签名使用英文小写,单词之间用“-”分隔:<shop-cart>购物车</shop-cart>
  5. 把字符 "<" 放在 XML 元素中,会发生错误,如:message>if salary < 1000 then</message>,解决办法1,实体引用。2,CDATA标签:CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束。
  6. xml多层嵌套中的子元素中,标签前后顺序要保持一致。

例子:

hr.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hr SYSTEM "hr.dtd">
<!-- 注释,人力资源管理系统 -->
<hr>
	<employee no="001">
		<name>李白</name>
		<age>21</age>
		<salery>5000</salery>
		<department>
			<dname>开发部</dname>
			<address>北京</address>
		</department>
	</employee>
	
	<employee no="002">
		<name>杜甫</name>
		<age>23</age>
		<salery>7000</salery>
		<department>
			<dname>市场部</dname>
			<address>广州</address>
		</department>
	</employee>
</hr>

          

xml语义约束:DTD和xml Schema

DTD 的目的是定义 XML 文档的结构:https://www.runoob.com/dtd/dtd-intro.html

1,使.xml和对应.dtd文件绑定:

<!DOCTYPE hr SYSTEM "hr.dtd">

     

hr.dtd

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT hr (employee+)>
<!ELEMENT employee (name,age,salery,department)>
<!ATTLIST  employee no CDATA "">
<!ELEMENT  name (#PCDATA)>
<!ELEMENT  age (#PCDATA)>
<!ELEMENT  salery (#PCDATA)>
<!ELEMENT  department (dname,address)>
<!ELEMENT  dname (#PCDATA)>
<!ELEMENT  address (#PCDATA)>

xml Schema

绑定:

<hr xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="hr.xsd">

      

Schema文件:hr.xsd

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
	<element name="hr">
		<!--complexType标签的含义是复杂节点,包含子节点是必须使用这个标签 -->
		<complexType>
			<sequence>
				<element name="employee" minOccurs="1" maxOccurs="9999">
					<complexType>
						<sequence>
							<element name="name" type="string"></element>
							<element name="age" >
								<simpleType>
									<restriction base="integer">
										<minInclusive value="18"></minInclusive>
										<maxInclusive value="60"></maxInclusive>
									</restriction>
								</simpleType>
							</element>
							<element name="salery" type="string"></element>
							<element name="department">
								<complexType>
									<sequence>
										<element name="dname" type="string"></element>
										<element name="address" type="string"></element>
									</sequence>
								</complexType>
							</element>
						</sequence>
						<attribute name="no" type="string" use="required"></attribute>
					</complexType>
				</element>
			</sequence>
		</complexType>
	</element>
</schema>

猜你喜欢

转载自blog.csdn.net/li__po/article/details/113099042