>  기사  >  백엔드 개발  >  XML - XML ​​소개 및 기본 구문

XML - XML ​​소개 및 기본 구문

黄舟
黄舟원래의
2017-02-24 14:53:431293검색

1.XML의 역사

gml(1969)->sgml(1985)->html(1993)- >

1985 sgml(표준 일반화 마크업 언어)
  • 1993 html(하이퍼텍스트 마크업 언어, www 네트워크)
  • html 언어 자체에 결함이 있습니다
  • (1) 태그는 맞춤설정할 수 없습니다.

    (2) HTML 자체에는 의미가 부족합니다

    (3) HTML은 실제로 국제화되지 않았습니다
중간 전환 언어인 xhtml이 있습니다:
html ->xhtml -> 왜 XML



1. 요구사항 1
두 프로그램 간의 데이터 통신이 필요한가요?

2. 요구 사항 2

서버 프로그램이 시작되면 수신해야 할 포트 번호와 데이터베이스에 연결하기 위한 사용자 이름 및 비밀번호를 읽어 볼까요?

XML 언어에서는 사용자가 태그를 맞춤 설정할 수 있습니다. 태그는 데이터 조각을 설명하는 데 사용됩니다. 태그는 시작 태그와 종료 태그로 나눌 수 있으며, 시작 태그와 종료 태그 사이에 다른 태그를 사용하여 데이터 관계를 설명할 수 있습니다. .
  • 3. XML의 일반적인 응용

  • 1. XML의 출현으로 프로그램 간 데이터 전송 문제가 해결되었습니다.
예를 들어 QQ 사용 간의 데이터 전송은 다음과 같습니다. 가독성과 유지 관리성이 좋은 XML 형식

2. XML을 구성 파일로 사용할 수 있습니다.XML 파일은 Tomcat 서버, 웹의 ​​server.xml과 같은 구성 파일로 사용할 수 있습니다. .xml. 또 다른 예는 우리 구조체의 structs-config.xml 파일, hibernate의 hibernate.cfg.xml 등입니다.

3.XML을 작은 데이터베이스로 사용할 수 있습니다.
XML 파일을 작은 데이터베이스로 사용할 수 있는데, 이는 종종 수동 구성이 필요한 일부 데이터를 사용할 수도 있습니다. 데이터베이스에서 읽기 적합하지 않은 경우(데이터베이스 유지 관리 작업이 증가하므로) XML을 직접 사용하여 작은 데이터베이스를 만드는 것을 고려할 수 있습니다. 이런 방식으로 파일을 직접 읽는 것이 데이터베이스를 읽는 것보다 확실히 빠릅니다. 예를 들어 XML 파일은 msn에 사용자 채팅 기록을 저장하는 데 사용됩니다.

시작 사례: XML을 사용하여 수업 정보를 기록합니다.

<?xml version="1.0" encoding="gb2312"?><class>
    <stu id="001">
        <name>杨过</name> 
        <sex>男</sex>
        <age>20</age>
    </stu>  
    <stu id="002">
        <name>小龙女</name>    
        <sex>女</sex>
        <age>21</age>
    </stu></class>

브라우저로 열 수 있습니다:

그럼 XML을 html처럼 웹페이지에 표시할 수 있을까요? CSS로 수정할 수도 있지만 사용하지 않고 XML을 사용하여 데이터를 저장하면 됩니다.


이 예에서 첫 번째 줄의 인코딩을 utf-8로 변경한 후 브라우저로 열면 오류가 보고되는 이유는 무엇입니까?


xml 파일의 기본 인코딩은 미국표준협회(National Standards Institute)에서 개발한 인코딩인 ANSI이기 때문에 중국에서는 GB2312입니다. 그래서 GB2312를 사용합니다. 인코딩에는 오류가 없지만 UTF-8을 사용하면 오류가 보고됩니다.

해결책은 XML 파일을 UTF-8 인코딩 모드로 변경하는 것입니다.

4.XML 구문

XML 파일은 다음과 같은 부분으로 나누어집니다. XML - XML ​​소개 및 기본 구문1. 문서 선언

2. >3. 속성

4. 주석

5. CDATA 영역, 특수문자

6. 처리 명령어(처리 명령어)

4.1.XML 구문-문서 선언

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>

XML 선언은 XML 문서의 첫 번째 줄에 위치합니다.
XML 선언은 다음 부분으로 구성됩니다.

version – 문서는 XML1을 준수합니다. 0 사양, 1.0을 학습합니다

인코딩 – "GB2312" 또는 "UTF-8"과 같은 문서 문자 인코딩

독립형 – 문서 정의가 독립적으로 사용되는지 여부
Standalone="no"가 기본값입니다. yes는 독립적으로 사용된다는 의미이고, no는 독립적으로 사용되지 않는다는 의미입니다.



4.2 XML 구문 - 요소(또는 태그, 노드)

( 1) 각 XML 문서에는 단 하나의 루트 요소가 있어야 합니다.


루트 요소는 XML 문서의 다른 모든 요소를 ​​완전히 포함하는 요소입니다. document


루트 요소의 시작 태그는 다른 모든 요소의 시작 태그 앞에 배치되어야 합니다.

루트의 닫는 태그입니다. 요소는 다른 모든 요소의 시작 태그 앞에 위치해야 합니다.

(2) XML 요소는 XML 파일에 나타나는 태그를 나타냅니다. 태그에는 다음과 같은 쓰기 스타일이 있습니다. 예를 들어

  • 에는 태그 본문이 포함됩니다.

  • <a>www.sohu.com</a>

  • 에는 태그 본문이 포함되어 있지 않습니다.
  • <a></a>,简写为:<a/>
(3) 여러 하위 태그가 하나의 태그에 중첩될 수도 있습니다. 그러나 모든 태그는 합리적으로 중첩되어야 하며 교차 중첩은 절대 허용되지 않습니다. 예를 들어

<a>welcome to <b> www.sohu.com </a></b>

는 오류가 발생합니다.

(4)对于XML标签中出现的所有空格和换行,XML解析程序都会当做标签内容进行处理。例如下面两段内容的意义是不一样的。

<stu>xiaoming</stu>

和如下:

<stu>
    xiaoming</stu>

(5)由于在XML中,空格和换行都作为原始内容被处理,所以,在编写XML文件时,要特别注意。

(6)命名规范:一个XML元素可以包含字母、数字以及其它一些可见字符,但必须遵守以下规范:

  • 区分大小写,例如,元素P和元素p是两个不同的元素

  • 不能以数字或下划线”_”开头

  • 元素内不能包含空格

  • 名称中间不能包含冒号(:)

  • 可以使用中文,但一般不这么用

4.3.XML语法-属性

<student id="100">
    <name>Tom</name></student>

(1)属性值用双引号(”)或单引号(’)分隔,如果属性值中有单引号,则用双引号分隔;如果有双引号,则用单引号分隔。那么如果属性值中既有单引号还有双引号怎么办?这种要使用实体(转义字符,类似于html中的空格符),XML有5个预定义的实体字符,如下:

XML - XML ​​소개 및 기본 구문

(2)一个元素可以有多个属性,它的基本格式为:

<元素名 属性名1="属性值1" 属性名2="属性值2">

(3)特定的属性名称在同一个元素标记中只能出现一次
 (4)属性值不能包括,&,如果一定要包含,也要使用实体

4.4.XML语法-注释

XML的注释类似于HTML中的注释:

<!--这是一个注释-->

(1)注释内容不要出现--
 (2)不要把注释放在标记中间;
 (3)注释不能嵌套
 (4)可以在除标记以外的任何地方放注释

4.5.XML语法-CDATA节

假如有这么一个需求,需要通过XML文件传递一幅图片,怎么做呢?其实我们看到的电脑上的所有文件,本质上都是字符串,不过它们都是特殊的二进制字符串。我们可以通过XML文件将一幅图片的二进制字符串传递过去,然后再解析成一幅图片。那么这个字符串就会包含大量的,&或者“等一些特殊的不合法的字符。这时候解析引擎是会报错的。

所以,有些内容可能不想让解析引擎解析执行,而是当做原始内容处理,用于把整段文本解释为纯字符数据而不是标记。这就要用到CDATA节。

语法如下:

<![CDATA[
    ......
]]>

CDATA节中可以输入任意字符(除]]>外),但是不能嵌套!

如下例,这种情况它不会报错,而如果不包含在CDATA节中,就会报错:

<stu id="001">
    <name>杨过</name> 
    <sex>男</sex>
    <age>20</age>
    <intro><![CDATA[ad<<&$^#*k]]></intro></stu>

4.6.XML语法-处理指令

处理指令,简称PI(processing instruction)。处理指令用来指示解析引擎如何解析XML文件,看下面一个例子:

比如我们也可以使用css样式表来修饰XML文件,编写my.css如下:

name{    
font-size:80px;    
font-weight:bold;    
color:red;
}
sex{    
font-size:60px;    
font-weight:bold;    
color:blue;
}
sex{    
font-size:40px;    
font-weight:bold;    
color:green;
}

我们在xml文件中使用处理指令引入这个css文件,如下:

<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet href="my.css" type="text/css"?><class>
    <stu id="001">
        <name>杨过</name> 
        <sex>男</sex>
        <age>20</age>
    </stu>  
    <stu id="002">
        <name>小龙女</name>    
        <sex>女</sex>
        <age>21</age>
    </stu></class>

这时候我们再用浏览器打开这个xml文件,会发现浏览器解析出一个带样式的视图,而不再是单纯的目录树了:

XML - XML ​​소개 및 기본 구문

但是XML的处理指令不要求掌握,因为用到的很少。

5.格式正规的XML文档-小结

语法规范

1.XML声明语句
2.必须有一个根元素
3.标记大小写敏感
4.属性值用引号
5.标记成对
6.空标记关闭
7.元素正确嵌套

1.XML历史

gml(1969)->sgml(1985)->html(1993)->xml(1998)

  • 1969 gml(通用标记语言),主要目的是要在不同的机器之间进行通信的数据规范

  • 1985 sgml(标准通用标记语言)

  • 1993 html(超文本标记语言,www网)

html语言本身是有一些缺陷的
 (1)不能自定义标签
 (2)html本身缺少含义
 (3)html没有真正的国际化

有一个中间过渡语言,xhtml:
 html->xhtml->xml

  • 1998 xml extensiable markup language 可扩展标记语言

2. XML이 필요한 이유

1. 요구사항 1
두 프로그램 간의 데이터 통신은?
2. 요구 사항 2
서버 프로그램이 시작되면 수신해야 할 포트 번호와 데이터베이스에 연결하기 위한 사용자 이름 및 비밀번호를 읽어 볼까요?

XML 언어에서는 사용자가 태그를 맞춤 설정할 수 있습니다. 태그는 데이터 조각을 설명하는 데 사용됩니다. 태그는 시작 태그와 종료 태그로 나눌 수 있으며, 시작 태그와 종료 태그 사이에 다른 태그를 사용하여 데이터 관계를 설명할 수 있습니다. .

3. XML의 일반적인 응용

1. XML의 출현으로 프로그램 간 데이터 전송 문제가 해결되었습니다.
예를 들어 QQ 사용 간의 데이터 전송은 다음과 같습니다. 가독성과 유지 관리성이 좋은 XML 형식

2. XML을 구성 파일로 사용할 수 있습니다.
XML 파일은 Tomcat 서버, 웹의 ​​server.xml과 같은 구성 파일로 사용할 수 있습니다. .xml. 또 다른 예는 우리 구조체의 structs-config.xml 파일, hibernate의 hibernate.cfg.xml 등입니다.

3.XML을 작은 데이터베이스로 사용할 수 있습니다.
XML 파일을 작은 데이터베이스로 사용할 수 있는데, 이는 종종 수동 구성이 필요한 일부 데이터를 사용할 수도 있습니다. 데이터베이스에서 읽기 적합하지 않은 경우(데이터베이스 유지 관리 작업이 증가하므로) XML을 직접 사용하여 작은 데이터베이스를 만드는 것을 고려할 수 있습니다. 이런 방식으로 파일을 직접 읽는 것이 데이터베이스를 읽는 것보다 확실히 빠릅니다. 예를 들어 XML 파일은 msn에 사용자 채팅 기록을 저장하는 데 사용됩니다.

시작 사례: XML을 사용하여 수업 정보를 기록합니다.

<?xml version="1.0" encoding="gb2312"?><class>
    <stu id="001">
        <name>杨过</name> 
        <sex>男</sex>
        <age>20</age>
    </stu>  
    <stu id="002">
        <name>小龙女</name>    
        <sex>女</sex>
        <age>21</age>
    </stu></class>

브라우저로 열 수 있습니다:

XML - XML ​​소개 및 기본 구문

그럼 XML을 html처럼 웹페이지에 표시할 수 있을까요? CSS로 수정할 수도 있지만 사용하지 않고 XML을 사용하여 데이터를 저장하면 됩니다.

이 예에서 첫 번째 줄의 인코딩을 utf-8로 변경한 후 브라우저로 열면 오류가 보고되는 이유는 무엇입니까?

xml 파일의 기본 인코딩은 미국표준협회(National Standards Institute)에서 개발한 인코딩인 ANSI이기 때문에 중국에서는 GB2312입니다. 그래서 GB2312를 사용합니다. 인코딩에는 오류가 없지만 UTF-8을 사용하면 오류가 보고됩니다.

해결책은 XML 파일을 UTF-8 인코딩 모드로 변경하는 것입니다.

4.XML 구문

XML 파일은 다음과 같은 부분으로 나누어집니다.
1. 문서 선언
2. >3. 속성
4. 주석
5. CDATA 영역, 특수문자
6. 처리 명령어(처리 명령어)

4.1.XML 구문-문서 선언
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>

XML 선언은 XML 문서의 첫 번째 줄에 위치합니다.

XML 선언은 다음 부분으로 구성됩니다.

version – 문서는 XML1을 준수합니다. 0 사양, 1.0을 학습합니다

인코딩 – "GB2312" 또는 "UTF-8"과 같은 문서 문자 인코딩
독립형 – 문서 정의가 독립적으로 사용되는지 여부
Standalone="no"가 기본값입니다. yes는 독립적으로 사용된다는 의미이고, no는 독립적으로 사용되지 않는다는 의미입니다.

4.2 XML 구문 - 요소(또는 태그, 노드)

( 1) 각 XML 문서에는 단 하나의

루트 요소가 있어야 합니다.

  • 루트 요소는 XML 문서의 다른 모든 요소를 ​​완전히 포함하는 요소입니다. document

  • 루트 요소의 시작 태그는 다른 모든 요소의 시작 태그 앞에 배치되어야 합니다.

  • 루트의 닫는 태그입니다. 요소는 다른 모든 요소의 시작 태그 앞에 위치해야 합니다.

(2) XML 요소는 XML 파일에 나타나는 태그를 나타냅니다. 태그에는 다음과 같은 쓰기 스타일이 있습니다. 예를 들어

  • 에는 태그 본문이 포함됩니다.

  • <a>www.sohu.com</a>
  • 에는 태그 본문이 포함되어 있지 않습니다.

  • <a></a>,简写为:<a/>
(3) 여러 하위 태그가 하나의 태그에 중첩될 수도 있습니다. 그러나 모든 태그는 합리적으로 중첩되어야 하며 교차 중첩은 절대 허용되지 않습니다. 예를 들어

<a>welcome to <b> www.sohu.com </a></b>
는 오류가 발생합니다.

(4) XML 태그에 나타나는 모든 공백과 줄바꿈의 경우 XML 파서는 이를 태그 콘텐츠로 처리합니다. 예를 들어, 다음 두 문단은

다른 의미를 갖고 있습니다.

<stu>xiaoming</stu>

<stu>
    xiaoming</stu>

(5) XML에서는 공백과 줄 바꿈이 원본 내용으로 처리되므로 XML 파일을 작성할 때 별도의 비용을 지불해야 합니다. 주목.

(6) 명명 규칙: XML 요소에는 문자, 숫자 및 기타 표시되는 문자가 포함될 수 있지만 다음 규칙을 준수해야 합니다.

  • 대소문자 -sensitive, 예를 들어 요소 P와 요소 p는 서로 다른 두 요소입니다.

  • 은 숫자나 밑줄 "_"로 시작할 수 없습니다.

  • 은 사용할 수 없습니다. 요소 내에 있음 공백 포함

  • 이름 중간에 콜론(:)을 포함할 수 없음

  • 중국어를 사용할 수 있지만 일반적으로 이런 식으로 사용되지 않습니다

4.3.XML语法-属性

<student id="100">
    <name>Tom</name></student>

(1)属性值用双引号(”)或单引号(’)分隔,如果属性值中有单引号,则用双引号分隔;如果有双引号,则用单引号分隔。那么如果属性值中既有单引号还有双引号怎么办?这种要使用实体(转义字符,类似于html中的空格符),XML有5个预定义的实体字符,如下:

XML - XML ​​소개 및 기본 구문

(2)一个元素可以有多个属性,它的基本格式为:

<元素名 属性名1="属性值1" 属性名2="属性值2">

(3)特定的属性名称在同一个元素标记中只能出现一次
 (4)属性值不能包括,&,如果一定要包含,也要使用实体

4.4.XML语法-注释

XML的注释类似于HTML中的注释:

<!--这是一个注释-->

(1)注释内容不要出现--
 (2)不要把注释放在标记中间;
 (3)注释不能嵌套
 (4)可以在除标记以外的任何地方放注释

4.5.XML语法-CDATA节

假如有这么一个需求,需要通过XML文件传递一幅图片,怎么做呢?其实我们看到的电脑上的所有文件,本质上都是字符串,不过它们都是特殊的二进制字符串。我们可以通过XML文件将一幅图片的二进制字符串传递过去,然后再解析成一幅图片。那么这个字符串就会包含大量的,&或者“等一些特殊的不合法的字符。这时候解析引擎是会报错的。

所以,有些内容可能不想让解析引擎解析执行,而是当做原始内容处理,用于把整段文本解释为纯字符数据而不是标记。这就要用到CDATA节。

语法如下:

<![CDATA[
    ......
]]>

CDATA节中可以输入任意字符(除]]>外),但是不能嵌套!

如下例,这种情况它不会报错,而如果不包含在CDATA节中,就会报错:

<stu id="001">
    <name>杨过</name> 
    <sex>男</sex>
    <age>20</age>
    <intro><![CDATA[ad<<&$^#*k]]></intro></stu>

4.6.XML语法-处理指令

处理指令,简称PI(processing instruction)。处理指令用来指示解析引擎如何解析XML文件,看下面一个例子:

比如我们也可以使用css样式表来修饰XML文件,编写my.css如下:

name{    
font-size:80px;    
font-weight:bold;    
color:red;
}
sex{    
font-size:60px;    
font-weight:bold;    
color:blue;
}
sex{    
font-size:40px;    
font-weight:bold;    
color:green;
}

我们在xml文件中使用处理指令引入这个css文件,如下:

<?xml version="1.0" encoding="gb2312"?><?xml-stylesheet href="my.css" type="text/css"?><class>
    <stu id="001">
        <name>杨过</name> 
        <sex>男</sex>
        <age>20</age>
    </stu>  
    <stu id="002">
        <name>小龙女</name>    
        <sex>女</sex>
        <age>21</age>
    </stu></class>

这时候我们再用浏览器打开这个xml文件,会发现浏览器解析出一个带样式的视图,而不再是单纯的目录树了:

XML - XML ​​소개 및 기본 구문

但是XML的处理指令不要求掌握,因为用到的很少。

5.格式正规的XML文档-小结

语法规范

  1. XML声明语句
    2.必须有一个根元素
    3.标记大小写敏感
    4.属性值用引号
    5.标记成对
    6.空标记关闭
    7.元素正确嵌套

 以上就是XML—XML介绍和基本语法的内容,更多相关内容请关注PHP中文网(www.php.cn)!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.