学习XML档案格式与实作系列:(3/6) 认识XML档案

Xml档案格式(Extensible Markup Language)被称之为可扩展标记语言,是一种用于组织和储存资料的文件格式。这种标记语言常用于定义和储存结构化资料,其目的是描述资料的结构和内容,而不是呈现资料的外观。也因为XML是独立于操作系统和软体的格式,所以可以跨平台的在不同系统或应用之间交换资料。因此,许多应用程式都会使用XML来保存使用者的设定与资料的分享。

就像HTML般,XML也是使用标籤(tags)来组织资料,每个标籤都有一个起始标籤和结束标籤,例如:<title>这是标题</title>。而与HTML不同之处在于XML允许使用者定义自己的标籤以描述特定应用的资料。资料常以层级树状结构来表示,以方便表达複杂的关係。以下就是一个简单的XML档案格式,描述着一笔资料记录:

是不是真的很像HTML的标籤特性呢?若是有2笔资料记录,便是诸如以下的呈现:

即便您是第一次接触到XML档案格式,只要对HTML网页的档案格式有一丁点的认知,相信不用多作解释,您也可以看出XML表达资料的端倪,尽是一些标籤(tag)包裹着资料内容。而在使用Power Query汇入这样的档案时,便可在导览视窗的阶段就看到一笔笔资料记录的预览。出现的结果画面通常也就表示XML档案结构已被解析,显示了相关的栏位和资料。

关于XML的结构定义档XSD

但是,在XML世界里面除了XML档案内容就是资料的实质内容,还有另一个被称之为XSD的档案,这是XML Schema Definition 的缩写,专门用来定义XML文件结构和规範。譬如:在XSD里定义了XML文件中允许使用的元素和属性、资料类型、顺序等等,可以规定某个元素是必需的,或者必须是特定类型(如日期或数字)。在资料验证上,透过XSD可以帮助验证XML文件是否符合预定的结构和规範,以确保资料的正确性和一致性。简言之,XSD文件就是用来描述某一XML文件的「规则」,以确保该 XML 的内容和格式是有效的并符合设计的要求。XSD文件的内容大致如下所示:

这回就比较不容易看得懂了吧!其实对于一般使用者而言,是否了解这个档案并不是最重要,因为製作XSD档案大都是资讯部门、程式设计师等人员的事,公司里大多数电脑使用者并不需要撰写它甚至看懂它,但您可以了解这个档案的存在意义与影响。因为,在处理XML档案的过程中,这些XML、XSD档案都不是我们做的,常常是别其他单位分享或系统下载下来的。

基本上,如果使用XML档案只是为了暂时存放资料,或者使用的应用程式并不需要强制资料验证,那就不一定要使用XSD档案,直接存取XML就可以。我们可以根据以下的情境来理解。

  • 不需要XSD的情况:
    • 若不使用XSD便意味着XML不会受到太多约束,因此就可以根据需求而灵活修改资料内容。
    • 如果XML是运用于临时交换资料,结构简单且供给与接收双方都已协商好格式,那么并不需要XSD。
    • 在系统开发初期阶段,可能尚未确定XML结构,此时便可以先省略XSD档案的可量。
  • 需要 XSD 的情况:
    • 若XML档案会运用于不同系统之间的资料交换,有了XSD便能够确保传输的资料结构正确无误,即可减少错误和误解的风险。
    • 若XML包含多层级的结构或大量数据,使用XSD定义资料结构,面对複杂的资料结构将会更清晰、可容易管理。例如:规划日期、数值等资料型态。
    • 在许多行业或敏感的机构,诸如金融、医疗或政府单位,其资料交换需要遵循严格的规範和标準,因此,对他们而言XSD是必要的。

综观,当XML档案是属于简单或临时用途,或者期望资料档案传递能够更灵活也更容易传递与存取,乃至在该开发系统初期的实验阶段,XSD档案并没有那么的必要,甚至并不需要XSD档案。不过,如果XML需要在多个系统中共用与分享,也包含了複杂的资料结构或有资料标準化的需求,或者需要在不同的应用程式中使用,对于资料数据的验证也十分讲究,那么XSD档案就是必要的了。至于这个XSD档案会在哪里呢?它可以是一个独立的档案,也可以是一个内嵌式的档案,这完全取决于系统设计时的应用场景。譬如:若规划的XML只是在单一应用程式中使用,或者希望XML自带验证规则,则常常以内嵌Schema(XML Schema Definition, XSD)定义,让XML文件本身也包含资料结构的参照,例如:

如果是独立的XSD档案可以确保资料一致性,也容易维护与更新资料结构,并允许XML编辑器和系统进行自动验证。因为,XSD档案可以被多个XML文件重複使用,非常适合多个文件遵循相同结构的情境。当需要修改结构时,只需更新XSD档案,而不影响XML文件的内容,在团队或跨系统协作中,有助于保持XML结构的一致。这时候,在XML档案里通常一开头会有类似以下的语句:

<?xml version="1.0" encoding="UTF-8"?>

<加班清册 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xsi:noNamespaceSchemaLocation="overtime.xsd">

在这种方式中,XML文件内部引用了指定的XSD档案,譬如上述语句里的overtime.xsd,这样即使XSD是外部档案,XML解析器仍可以知道应用哪个Schema来验证结构。至于我们接受到的XML档案到底需不需要XSD档案,常常也不是您我能决定的。不过请放心,当您使用Power Query进行XML档案的资料汇入时,Power Query就是最厉害的XML解析器,一切就交给Power Query来判断啰!

 

前一篇:<<学习XML档案格式与实作系列:(2/6) 为什么我汇入的XML不一样?>>
下一篇:<<学习XML档案格式与实作系列:(4/6) 解析XML档案开头的定义>>

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章

5 点赞(415) 阅读(67)