XML DTD相关的内容
一个定义Email的例子
<?xml version="1.0">
<!DOCTYPE message[
<!ELEMENT message(header,body,signature,footer)> --定义了message的子元素
<!ELEMENT header(date,from,to,subject,banner)> --header还有子元素
<!ELEMENT footer ANY>
<!ELEMENT body (#PCDATA)>
]>
元素的命名:元素名的第一个字母必须是字母、或下划线(_)、或冒号(:),
后跟字母、数字、句号(.)、冒号、下划线、连结号(-)的组合,并且不能包含空白符,不能以“xml”开头。
一、元素声明:
<!ELEMENT name content>
其中,name是一个标准xml标记的名字。比如dict,city等,content由以下几种构成:
1.EMPTY--定义空元素,该元素只能有属性而不会有字符数据或子元素 比如<img src="aaa.jpg"/>或者<img src="aaa.jpg"></img>
2.ANY--可以是任何内容 (除了根元素,其它最好不要使用)
3.#PCDATA类型--不包含其它子元素而只包含字符数据(数字字母和符号都可以,但不包括子元素节点)的元素,应
该说,这是最常用的类型了。
它代表“已编译的字符数据”(parsed character data)
4.子元素类型--描述包含在本元素中的子元素顺序和重复次数的内容模型
(1)序列:所有子元素必须出现且仅出现一次,而且要依次出现。序列中不能出现#PCDATA。
<!ELEMENT message(header,body,signature,footer)> 就是一个序列定义,xml中的body必须在header之后出现
(2)选择:
<!ELEMENT message(header,body,signature,(footer|foot2))>
也就是或的意思,一目了然,不多写了
5.混合类型:某元素既包含子元素又包含已编译的字符数据。语法:
<!ELEMENT pick(#PCDATA |one|two|three)*>
二、元素声明指示符:
?:元素出现0次或者1次
*:0-n次
+:1-n次
(): 一组要共同匹配的表达式
|:OR,或
,:AND,要求严格遵从顺序要求
例子1:<!ELEMENT header(date,from,to+,subject,banner)> to元素必须有,而且可以有多个。比如
<to>aaa</to>
<to>bbb</to>
例子2:
<!ELEMENT body (paragraph* )>
<!ELEMENT paragraph* (#PCDATA)>
<paragraph>元素可有可无,也可以有
相关文档:
按照名为"mydomain1.com"的 DomainName
属性对以下 XML 数据执行不区分大小写的搜索
<?xml version="1.0" ?>
<Domains>
<DomainName>Mydomain1.COM</DomainName>
</Domains>
MSXML 3.0 中 translate
的语法如下:
oXML.setProperty "SelectionLanguage&q ......
1.books.html
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title ......
USE Test
--Create 2 tables as an example
CREATE TABLE ExampleTable
(
[ID] int PRIMARY KEY
,[Name] nvarchar(256)
)
CREATE TABLE ExampleTable2
(
[ID] int PRIMARY KEY
,[Name] nvarchar(256)
)
----way1
SELECT *
from sys.objects [table]
WHERE
[Name] LIKE 'ExampleTable%'
FOR XML AUTO, ROOT ......
以前在博客上发过,经人提醒DataSet已自带读写XML的功能,于是便删了,
不过在实践中感觉封装一层后,使用起来还是蛮方便的。故再次重发。
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.IO;
using System.Xml;
namespace XmlDesign
{
class XmlDatasetC ......