gml(1969)->sgml(1985)->html(1993)->xml(1998)
1969 gml (汎用マークアップ言語)、主な目的は、異なるマシン間でデータを通信することです
1985 sgml (Standard General Markup Language)
1993 html (Hypertext Markup Language、www.net)
サーバー プログラムの起動時に、リッスンするポート番号と、データベースに接続するためのユーザー名とパスワードを読み取ります。html 言語自体 いくつかの欠陥があります
(1) ラベルはカスタマイズできません
(2) HTML自体に意味がない
(3) HTML は真に国際化されていません中間移行言語である xhtml があります:
2. 要件 2
html ->
2.XML は設定ファイルとして使用できます
XML ファイルは、Tomcat サーバーのserver.xml や web.xml などの設定ファイルとして使用できます。別の例は、構造体の structs-config.xml ファイル、Hibernate の hibernate.cfg.xml などです。
3.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>
この例では、最初の行のエンコードを utf-8 に変更してブラウザで開くと、エラーが報告されます。これはなぜですか?
XML ファイルのデフォルトのエンコーディングは ANSI です。これは、米国規格協会が開発したエンコーディングです。中国では、GB2312 です。 GB2312 エンコーディングを使用する場合、UTF-8 を使用するとエラーが報告されます。
解決策は、XML ファイルを UTF-8 エンコード モードに変更することです。
4.XML構文
XMLファイルは次の部分に分かれています:
1.文書宣言2.要素
3.属性4.コメント4.1. XML 構文 - ドキュメント宣言5.CDATA領域、特殊文字
6.処理命令 (処理命令)
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
バージョン – ドキュメントは準拠しますXML1.0 仕様を使用して、1.0 を学習します
エンコーディング - 「GB2312」や「UTF-8」などのドキュメントの文字エンコーディング
スタンドアロン – ドキュメント定義が独立して使用されるかどうか
デフォルト値はstandalone="no"です。 Yes は独立して使用されることを意味し、No は独立して使用されないことを意味します
(1) 各 XML ドキュメントには
ルート要素は、ドキュメント内の他のすべての要素を完全に含む要素です
の終了タグ他の要素の終了タグの後に配置します
タグ本体あり:
<a>www.sohu.com</a>
(3) 複数のサブタグを 1 つのタグ内にネストすることもできます。ただし、すべてのタグは適切にネストされている必要があり、たとえば<a></a>,简写为:<a/>ログイン後にコピーログイン後にコピー
<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是两个不同的元素
不能以数字或下划线”_”开头
元素内不能包含空格
名称中间不能包含冒号(:)
可以使用中文,但一般不这么用
<student id="100"> <name>Tom</name></student>
(1)属性值用双引号(”)或单引号(’)分隔,如果属性值中有单引号,则用双引号分隔;如果有双引号,则用单引号分隔。那么如果属性值中既有单引号还有双引号怎么办?这种要使用实体(转义字符,类似于html中的空格符),XML有5个预定义的实体字符,如下:
(2)一个元素可以有多个属性,它的基本格式为:
<元素名 属性名1="属性值1" 属性名2="属性值2">
(3)特定的属性名称在同一个元素标记中只能出现一次
(4)属性值不能包括<,>,&,如果一定要包含,也要使用实体
XML的注释类似于HTML中的注释:
<!--这是一个注释-->
(1)注释内容不要出现
--
(2)不要把注释放在标记中间;
(3)注释不能嵌套
(4)可以在除标记以外的任何地方放注释
假如有这么一个需求,需要通过XML文件传递一幅图片,怎么做呢?其实我们看到的电脑上的所有文件,本质上都是字符串,不过它们都是特殊的二进制字符串。我们可以通过XML文件将一幅图片的二进制字符串传递过去,然后再解析成一幅图片。那么这个字符串就会包含大量的<,>,&或者“等一些特殊的不合法的字符。这时候解析引擎是会报错的。
所以,有些内容可能不想让解析引擎解析执行,而是当做原始内容处理,用于把整段文本解释为纯字符数据而不是标记。这就要用到CDATA节。
语法如下:
<![CDATA[ ...... ]]>
CDATA节中可以输入任意字符(除]]>
外),但是不能嵌套!
如下例,这种情况它不会报错,而如果不包含在CDATA节中,就会报错:
<stu id="001"> <name>杨过</name> <sex>男</sex> <age>20</age> <intro><![CDATA[ad<<&$^#*k]]></intro></stu>
处理指令,简称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的处理指令不要求掌握,因为用到的很少。
语法规范:
1.XML声明语句
2.必须有一个根元素
3.标记大小写敏感
4.属性值用引号
5.标记成对
6.空标记关闭
7.元素正确嵌套
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 可扩展标记语言
1. 要件 1
2 つのプログラム間のデータ通信?
2. 要件 2
サーバー プログラムの起動時に、リッスンするポート番号と、データベースに接続するためのユーザー名とパスワードを読み取ります。
XML 言語では、ユーザーがタグをカスタマイズできます。タグは 1 つのデータを記述するために使用され、タグは開始タグと終了タグに分割され、開始タグと終了タグの間に他のタグを使用してデータの関係を記述できます。 。
1. XML の出現により、プログラム間のデータ送信の問題が解決されました。
たとえば、QQ 間のデータ送信には、可読性と保守性に優れた XML 形式が使用されます
2.XML は設定ファイルとして使用できます
XML ファイルは、Tomcat サーバーのserver.xml や web.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 のように Web ページ上に表示できますか? CSS を使用して変更することも可能ですが、ここでは使用しません。XML を使用してデータを保存するだけで済みます。
この例では、最初の行のエンコードを utf-8 に変更してブラウザで開くと、エラーが報告されます。これはなぜですか?
XML ファイルのデフォルトのエンコーディングは ANSI です。これは、米国規格協会が開発したエンコーディングです。中国では、GB2312 です。 GB2312 エンコーディングを使用する場合、UTF-8 を使用するとエラーが報告されます。
解決策は、XML ファイルを UTF-8 エンコード モードに変更することです。
XMLファイルは次の部分に分かれています:
1.文書宣言
2.要素
3.属性
4.コメント
5.CDATA領域、特殊文字
6.処理命令 (処理命令)
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
XML 宣言は XML ドキュメントの最初の行に配置されます
XML 宣言は次の部分で構成されます:
バージョン – ドキュメントは準拠しますXML1.0 仕様を使用して、1.0 を学習します
エンコーディング - 「GB2312」や「UTF-8」などのドキュメントの文字エンコーディング
スタンドアロン – ドキュメント定義が独立して使用されるかどうか
デフォルト値はstandalone="no"です。 Yes は独立して使用されることを意味し、No は独立して使用されないことを意味します
(1) 各 XML ドキュメントには root 要素が 1 つだけ必要です
ルート要素は、ドキュメント内の他のすべての要素を完全に含む要素です
ルート要素の開始タグは、他のすべての要素の開始タグの前に配置する必要があります
の終了タグ他の要素の終了タグの後に配置します
(2) XML要素は、XMLファイル内に現れるタグを指します。 タグは開始タグと終了タグに分かれています。
タグ本体あり:
<a>www.sohu.com</a>
タグ本体なし:
<a></a>,简写为:<a/>
(3) 複数のサブタグを 1 つのタグ内にネストすることもできます。ただし、すべてのタグは適切にネストされている必要があり、たとえば
<a>welcome to <b> www.sohu.com </a></b>
は必ずエラーになります。
(4) XML タグに含まれるすべてのスペースと改行について、XML パーサーはそれらをタグのコンテンツとして扱います。たとえば、次の 2 つの段落の意味は異なります。
<stu>xiaoming</stu>
以下の通り:
<stu> xiaoming</stu>
(5) XML ではスペースや改行もオリジナルの内容として処理されるため、XML ファイルを記述する際には特に注意してください。
(6) 命名規則: XML 要素には文字、数字、その他の表示可能な文字を含めることができますが、次の規則に従う必要があります:
では大文字と小文字が区別されます。たとえば、要素 P と要素 p は 2 です。さまざまな要素
数字またはアンダースコア「_」で始めることはできません
要素にスペースを含めることはできません
名前にコロン(:)を含めることはできません
中国語は使用できますが、通常は使用できませんこのように使われます
<student id="100"> <name>Tom</name></student>
(1)属性值用双引号(”)或单引号(’)分隔,如果属性值中有单引号,则用双引号分隔;如果有双引号,则用单引号分隔。那么如果属性值中既有单引号还有双引号怎么办?这种要使用实体(转义字符,类似于html中的空格符),XML有5个预定义的实体字符,如下:
(2)一个元素可以有多个属性,它的基本格式为:
<元素名 属性名1="属性值1" 属性名2="属性值2">
(3)特定的属性名称在同一个元素标记中只能出现一次
(4)属性值不能包括<,>,&,如果一定要包含,也要使用实体
XML的注释类似于HTML中的注释:
<!--这是一个注释-->
(1)注释内容不要出现
--
(2)不要把注释放在标记中间;
(3)注释不能嵌套
(4)可以在除标记以外的任何地方放注释
假如有这么一个需求,需要通过XML文件传递一幅图片,怎么做呢?其实我们看到的电脑上的所有文件,本质上都是字符串,不过它们都是特殊的二进制字符串。我们可以通过XML文件将一幅图片的二进制字符串传递过去,然后再解析成一幅图片。那么这个字符串就会包含大量的<,>,&或者“等一些特殊的不合法的字符。这时候解析引擎是会报错的。
所以,有些内容可能不想让解析引擎解析执行,而是当做原始内容处理,用于把整段文本解释为纯字符数据而不是标记。这就要用到CDATA节。
语法如下:
<![CDATA[ ...... ]]>
CDATA节中可以输入任意字符(除]]>
外),但是不能嵌套!
如下例,这种情况它不会报错,而如果不包含在CDATA节中,就会报错:
<stu id="001"> <name>杨过</name> <sex>男</sex> <age>20</age> <intro><![CDATA[ad<<&$^#*k]]></intro></stu>
处理指令,简称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声明语句
2.必须有一个根元素
3.标记大小写敏感
4.属性值用引号
5.标记成对
6.空标记关闭
7.元素正确嵌套
以上就是XML—XML介绍和基本语法的内容,更多相关内容请关注PHP中文网(www.php.cn)!