论坛: 病毒专区 标题: 那*.eml到底是什么东西? 复制本贴地址    
作者: none [onizuka]    论坛用户   登录
请教各位!我好象记错了(那是xml)

地主 发表时间: 04/09 01:01

回复: 三尺云 [xiaojun]   剑客   登录
一、XML历史
    20世纪60年代,IBM创建GML(Generalized Markup Language,通用标记语言),后经演变,发展成SGML(Standard Generalized Markup Language,标准通用标记语言),成为第一个标准化的信息结构化技术,被用在IBM内部.1986年成为ISO标准.功能强大,但缺点是需要一大堆昂贵的软件来运行.所以在Internet发展的初期,不能成为表示超文本的最佳选择.于是后来HTML对SGML进行了极大的简化,从而成为现在Internet的标准.随着对网络需求进一步增大,人们开始扩充HTML的功能,慢慢发展成现在这么庞大混乱的局面.于是W3C(World Wide Web Consortium,万维网联盟)组织了一个SGML专家组,主要目标是创建一种新的标记技术,既要具备SGML的核心技术,还要具备HTML的简单性.1998年2月,W3C发布了XML 1.0规范,即可扩展的标记语言(eXtensible Markup Language).是SGML简化的子集,继承了SGML重要的三个特性:可扩展性,结构化,有效性.成为表示结构化信息的一种标准文本格式.
语法基础:
    基本构成单元叫实体(entity),包含解析的或未解析的数据.解析的数据由字符构成,可以看成是标记,由XML处理函数处理,而未解析的字符数据被当成原始文本不被处理,例如<name>Delfan</name>,<name>和</name>就是标记,而Delfan是原始文本.标记用来描述文件的存储结构(实体)和逻辑结构(元素).XML语法实际描述了用来定义XML文件的结构和布局的构造,也包含了约束关系,而XML需要XML处理函数来处理,所以必须遵守严格的语法.

一个简单的例子:
<?xml version="1.0" encoding="GB2312" ?>
<我的电话本>
 <记录>
  <姓名>Delfan</姓名>
  <电子邮件>programer@21cn.com</电子邮件>
 </记录>

 <记录>
  <姓名>某某</姓名>
  <电子邮件>a@b.c</电子邮件>
 </记录>
</我的电话本>

说实话,写了这么多都是书上说的实际偶还是不大明白,不过先不管了,记住再说慢慢会理解的,起码我现在知道一个XML文件只能有一个根了:)而且,XML是基于UNCODE编码的,标记都可以是汉字哦.还有,IE本身就是个XML的解析器.虽然不很完善.可以将以上代码写到一个文本文件中,例如文件名为test.xml,双击,IE就可以把这个XML文档解析成一棵树并按层次显示出来:)



[此贴被 三尺云(xiaojun) 在 4月9日9时39分 编辑过]

B1层 发表时间: 4/9 9:35

回复: 三尺云 [xiaojun]   剑客   登录
二、XML的术语
    XML文档:XML标识语言写成的XML原代码文件,实际上是ASCII的纯文本文件,可以用Notepad创建和修改。XML文档的后缀名为.XML,用IE5.0以上浏览器可以直接打开并显示成树状结构,看到的就是XML文档.一般来说,XML文档包含三个部分:
1. 一个XML文档声明 : <?xml version="1.0"?>
2. 一个关于文档类型的定义 : <!DOCTYPE data SYSTEM "data.dtd">如不需要可以省略
3. 用XML标识创建的内容. 

举例:
<?xml version="1.0" encoding="GB2312" ?>
<清单> 
 <入库>
  <纸张 规格="A4" 单位="本">1000</纸张>
  <经手人>张三</经手人>
 </入库>
 <出库>
  <纸张 规格="B5" 单位="本">200</纸张>
  <经手人>张三</经手人>
 </出库>
</清单>

其中第一行<?xml version="1.0" encoding="GB2312" ?>就是一个XML文档的声明,并指出使用GB2312,以下就是内容主体部分。 

::XML文档中有关的术语:
1.Element(元素):
元素是组成XML文档的最小单位,由标识来定义,包括其中的内容,如<经手人>张三</经手人>,而且要由自己创建

2.Tag(标识) 
标识是用来定义元素的。在XML中,标识必须成对出现,将数据包围在中间。标识的名称和元素的名称是一样的。例如:<经手人>张三</经手人>,其中<经手人>就是标识。

3.Attribute(属性): 
例如<纸张 规格="B5" 单位="本">中"规格"和"单位"就是属性,属性是对标识进一步的描述和说明,一个标识可以有多个属性,每个属性都有它自己的名字和数值 
,是标识的一部分,也是自己定义的,但尽量不要用属性,而是使用子元素,例如上面元素可以改成
<纸张>
  <规格>B5</规格>
  <单位>本</单位>
  200
</纸张>,这么做的原因是属性不易扩充。

4.Declaration(声明) 
所有XML文档的第一行都有一个L声明表示是一个XML文档,并指出遵循哪个版本的规范:<?xml version="1.0"?>说明是1.0版本的XML文档

5.DTD(文件类型定义) 
DTD是用来定义XML文档中元素,属性以及元素之间关系的。通过DTD文件可以检测XML文档的结构是否正确。但建立XML文档并不一定需要DTD文件。

6.Well-formed XML(良好格式的XML)
遵守XML语法规则,并遵守XML规范的文档称之为"良好格式"。如果你所有的标识都严格遵守XML规范,那么你的XML文档就不一定需要DTD文件来定义它。良好格式的文档必须以一个XML声明开始,必须说明文档遵守的XML版本,目前是1.0,文档必须有一个根元素,而且只能有一个,就是紧接着声明后面建立的第一个元素,其它元素都是这个根元素的子元素.L文档的内容书写时必须遵守XML语法。



[此贴被 三尺云(xiaojun) 在 4月9日9时55分 编辑过]

B2层 发表时间: 4/9 9:35

回复: 三尺云 [xiaojun]   剑客   登录
三、DTD(这部分有点乱)
    作用:用来规范XML文档,元素和标签使用是否正确。DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。DTD文件也是一个ASCII的文本文件,后缀名为.dtd。
实际上是XML文件的抽象出来的模板

调用DTD文件的方法有两种:内含在XML文档中,定义再外部的DTD文件中

语法:<!DOCTYPE 根元素名[........]>
解释:根元素名就是XML文件里的根,一个XML文件只能有一个根,同样,一个DTD文件也只能有一个根.

元素的定义:
语法:<!ELEMENT 元素名 元素定义>
例子:<!ELEMENT 姓名 #PCDATA>
解释:
元素名:要使用元素的名称
元素定义:<元素></元素>之间允许包含的内容,可以为文本或其他元素等.
#PCDATA:元素定义使用的符号,意思为:Parsable Character Data(可解析的文本数据),如果内容中出现<,>,&等元素,则要表示为与HTML中一样的符号:"&lt;","&gt;","&amp;"

控制符号:允许元素出现的次数
ANY : 父元素使用,表示父元素可以包含任意设定过的元素而不管顺序等
?: 不出现或只出现一次 
*: 不出现或可出现多次
+: 必须出现一次以上
无符号: 只能出现一次

例如:<!ELEMENT 参考资料(书籍*,报纸+,杂志?,网站)>
这个元素设定中,“书籍”标记在XML文件中可以不出现或者出现多次;
“报纸”标记必须出现一次以上;
“杂志”标记可以不出现或只出现一次;
“网站”标记必须出现而且只能出现一次。


在一些父元素的声明中,有可能它包含的子元素是在多个子元素中选择一个来使用,那么我们声明此父元素时,
可以把它声明成选择性元素.
例如:<!ELEMENT 配偶 (妻子|丈夫)>
可供选择的子元素用“|”分隔,这样,我们在XML文件中可以这样写:

<配偶>
<丈夫>张三</丈夫>
</配偶>

我们的XML文件中,还可能包括很多“空元素”,即:元素是单独存在的,没有〈/元素〉这样的结束标记。那么在DTD中是用EMPTY关键字来声明的。
例如:<!ELEMENT 元素名 EMPTY>
在XML文件中,空元素不需要结束标记,但必须以</空元素名>这样的写法。

在DTD中,还可以声明一些称为Entity(实体)的东西,让DTD和XML文件使用。我们可以把实体看作是一个常量,它有一定的值。
语法:<!ENTITY 实体名称 实体描述>
例如:我们在DTD中声明〈!ENTITY PC "(#PCDATA)"〉 ,那么在后面的元素设定中,就可以使用这个实体来代替“(#PCDATA)”这个字符串
如:〈!ELEMENT 作者 (#PCDATA)〉可以写成〈!ELEMENT 作者 &&PC;〉。引用实体的时候,必须要在实体名称前面加上“&&”符号,后面加上“;”符号。
还可以在XML中引用:
例如:<!ENTITY AA "我要显示出来">
XML中
<BB>&AA;</BB>
显示的效果是
<BB>我要显示出来</BB>


B3层 发表时间: 04/09 09:41

回复: 老鬼 [wildboy]   论坛用户   登录
呵,说的不少,长了不少知识,可是人家问的eml啊。
这是一咱电邮格式的文件,


B4层 发表时间: 04/22 10:07

回复: 三尺云 [xiaojun]   剑客   登录
*.eml文件是Outlook或Outlook Express的单封邮件文件,你可以双击它们,看看打开的是什么内容。“尼姆达”病毒很容易感染这类文件。

B5层 发表时间: 04/24 12:28

回复: 木马 [yangze]   版主   登录
我今天就见到了许多这个东东
杀毒杀出来的,呵呵

B6层 发表时间: 04/24 18:54

论坛: 病毒专区

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号