standalone在XML里的作用

今天在看用TdataSet生成的XML中第一行里有个standalone,不知道是什么意思,查了一下资料才知道它的作用,下面就把我了解的写下来。

standalone  用来表示该文件是否呼叫其它外部的文件。若值是 ”yes” 表示没有呼叫外部文件,若值是 ”no” 则表示有呼叫外部文件。默认值是 “yes”。

这里所指的外部文件其实就是查检XML是不是有效的约束文件,或是DTD或是Schema,那这两者又有什么区别呢?

尽管XML1.0提供了一种机制,即文档类型定义(DTD)来规范XML的格式规则。但是它天生存在一些缺点,比如,它采用了非XML的语法规则、不支持更多的数据类型、扩展性差等,为了克服这些缺点,XML Schema 出现了。W3C推荐在XML中使用XML Schema来代替DTD。

XML Schema(模式) 跟DTD一样,也用于定义 XML 文档的约束。但它与DTD明显不同的是,XML Schema遵循XML语法规则,更好地支持数据类型以及命名空间。W3C称:XML Schema is an XML based alternative to DTD。模式在单独的文件中定义,通常扩展名为 .xsd。每个模式定义都有一个根元素 schema,该元素属于名称空间。schema 元素可以包含可选的属性。

比如:

<xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema

elementFormDefault="qualified" attributeFormDefault="unqualified">

这表示模式中使用的元素来自名称空间。

XML 文件使用 schema 名称空间中的 schemaLocation 属性链接到对应的模式。使用 schemaLocation 属性必须定义 schema 名称空间。所有这些定义都出现在 XML 文档的根元素中。

语法如下:

<root_element  schema_namespace_definition  schema_location_definition>

下面是一个例子:

<Books  xmlns:xs=" Books.xsd">

先来看看一个XML文件示例(message.xml),分别用DTD和XML Schema 描述这个文件,看看它们之间的区别:

1、使用DTD:

<?xml version="1.0" standalone="yes"?>

<!DOCTYPE message[

<!ELEMENT message (to,from,body)>

<!ELEMENT to      (#PCDATA)>

<!ELEMENT from    (#PCDATA)>

<!ELEMENT body    (#PCDATA)>

]>

<message>

<to>rose</to>

<from>alex</from>

<body>Hi,My Girl!</body>

</message>

2、使用XML Schema :

message.xml:

<?xml version="1.0" standalone="no"? >

<message xmlns=http://www.example.com

xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance

xsi:schemaLocation=" message.xsd">

<to>Rose</to>

<from>Alex</from>

<body>Hi,My Girl!</body>

</message>

message.xsd:

<?xml version="1.0"?>

<xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema

targetNamespace=http://www.example.com

xmlns="" elementFormDefault="qualified">

<xs:element name="message">

<xs:complexType>

<xs:sequence>

<xs:element name="to" type="xs:string"/>

<xs:element name="from" type="xs:string"/>

<xs:element name="body" type="xs:string"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

转自:http://www.houxue.com/news-34339/

standalone在XML里的作用相关推荐

  1. Maven - settings.xml里的offline节点的作用

    场景 某天我在本地修改了某个子项目的代码,并进行了打包:mvn clean install -DskipTests,接着我运行父项目却发现自己刚刚的改动并没有生效,或者说,我刚刚打包好的子项目变回了打 ...

  2. android主要文件的作用是什么,androidmanifest.xml文件的作用是什么

    androidmanifest.xml文件的作用:1.是每个android程序中必须的文件,它位于整个项目的根目录:2.配置程序运行所必要的组件,权限,以及一些相关信息:3.是整个应用的入口,所以有助 ...

  3. web.xml的contextConfigLocation作用及自动加载applicationContext.xml

    web.xml的contextConfigLocation作用及自动加载applicationContext.xml 转自:http://blog.csdn.net/sapphire_aling/ar ...

  4. Java Spring Beans.xml里的Bean定义是如何被解析出来的

    ClassPathXmlApplicationContext的构造函数里,一部分逻辑是给各个成员变量赋上初始值: 然后是执行refresh操作. 获取ConfigurableListableBeanF ...

  5. oracle xml中cdata,XML CDATA的作用

    XML CDATA的作用 更新时间:2009年09月01日 00:52:36   作者: 当你用FLASH和xml结合做网站应用程序时,例如你做在我研究游戏排行榜中,当让人自由输入姓名时,人们可以输入 ...

  6. pom.xml里发布和下载包

    1.下载包 在<project>标签中 <repositories><repository><id>nexus</id><url> ...

  7. web.xml里,classpath使用范围

    比如说在web.xml里,配置spring监听. 在标签<param-value>里,classpath指向的配置文件路径应该是在config资源文件夹下的applicationConte ...

  8. android 重复申请权限,去除AndroidManifest.xml里重复申请的权限(uses-permission)

    2017年的第一篇文章,新的起点,不忘初心 花了点时间,解决了最近遇到的一个问题: 在引用第三方的服务时都会在Manifest中添加权限,一般都是无脑的复制粘贴,久而久之,项目里重复的权限越来越多 在 ...

  9. xml里写sql语句大于、小于的正确方法

    今天把原来的xml里的选择时间段内的方法改了一下,原来写的是在两个时间之间,用between - and -,这样做的话,两个参数,起始日期和终止日期必须都要输入,不能满足查询某个时间之前,或者之后的 ...

最新文章

  1. 【Ubuntu】解决问题:tcp :8080: bind: address already in use
  2. 在NVIDIA Jetson Xavier NX上安装llvmlite报错:No such file or directory: ‘llvm-config‘: ‘llvm-config‘
  3. 如何开始学习以太坊及区块链
  4. Nokia BH-700及三星wep250这两款蓝牙耳机和电脑配对的方法
  5. android json mysql_Android通过json向MySQL中读写数据的方法详解【读取篇】
  6. 8个前沿的 HTML5 CSS3 效果【附源码下载】
  7. 基于Kafka+Flink+Redis的电商大屏实时计算案例
  8. mysql over rank_SQL学习笔记 - 窗口函数OVER
  9. mysql unique count_MySQL - Count Number of Unique Values
  10. Python 生成账号密码算法
  11. LeetCode 74. 搜索二维矩阵(二分查找)
  12. es6 proxy、handler.get()
  13. ZABBIX 4.0 安装
  14. python比较文件的修改时间,如何比较python中两个文件的修改日期?
  15. linux连接mysql_主机Navicat连接linux(虚拟机)的mysql数据库
  16. 安装cx_Oracle 遇到的杂项问题
  17. CodeForces - 1610B Kalindrome Array
  18. python - TXT章节文转为epub和mobi格式
  19. win10查看正版还是盗版
  20. 创建一个三维空间形状,算立方体,球体,正三棱锥表面积体积

热门文章

  1. 控制算法学习 一、卡尔曼滤波(1)以小车为例
  2. python商城购物系统
  3. JAVA毕业设计Web精品课程网站设计与实现计算机源码+lw文档+系统+调试部署+数据库
  4. java后台将html转换为图片
  5. U盘格式化提示卷标无效
  6. WINDOWS-API:关于线程 GetCurrentThread、GetCurrentThreadId、GetCurrentProcess、GetCurrentProcessId...
  7. Android小项目———— hh小计算器
  8. 服务器系统版本,2018 年 4 月 17 日 - KB4093120(操作系统内部版本 14393.2214)
  9. 全程图解 手把手教你做RAID磁盘阵列
  10. C#,入门教程(27)——应用程序(Application)的基础知识