XMl Scheme学习地址http://www.w3school.com.cn/schema/index.asp

XML Scheme示例

targetNamespace=“http://tempuri.org/XMLSchema.xsd",表明当前Scheme文档中定义的标签所在的命名空间

xmlns:xs=“http://www.w3.org/2001/XMLSchema",是XML Scheme标签suozai所在的命名空间

<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/XMLSchema.xsd"
    xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
</xs:schema>

Visual Studio 10 XML Scheme命名空间管理

打开Scheme

xsd-2

管理Scheme界面

xsd-1

MyEclipse XMl Scheme命名空间管理器

xsd-3

难以理解的知识点

一个节点比较多的XML Scheme可以定义在多个.xsd文件中。用import和include将多个.xsd中定义的Scheme导入到同一个文件及命名空间中来

import:
import的作用是将具有不同命名空间的Scheme导入进来。

DorisTestBasic.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://my.doris.net/test1"
    elementFormDefault="qualified"
    xmlns="http://my.doris.net/test1"
    xmlns:mstns="http://my.doris.net/test1"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:complexType name="plant">
    <xs:sequence>
      <xs:element name="plant_name" type="xs:string"></xs:element>
      <xs:element name="height" type="xs:int"></xs:element>
    </xs:sequence>
  </xs:complexType>
  
</xs:schema>

DorisTest.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://my.doris.net/test"
    elementFormDefault="qualified"
    xmlns="http://my.doris.net/test"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:test1="http://my.doris.net/test1"
>
  <xs:import namespace="http://my.doris.net/test1" schemaLocation="DorisTestBasic.xsd"/>
  <xs:element name="personGroup" type="person"></xs:element>
  <xs:complexType name="person">
    <xs:sequence>
      <xs:element name="name" type="xs:string"></xs:element>
      <xs:element name="birth" type="xs:date"></xs:element>
      <xs:element name="local" type="xs:string"></xs:element>
      <xs:element name="gender" type="xs:string"></xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="plantGroup" type="test1:plant"></xs:element>
</xs:schema>

text.xml

<?xml version="1.0" encoding="utf-8"?>
<plantGroup xmlns="http://my.doris.net/test" xmlns:test1="http://my.doris.net/test1">
  <test1:plant_name></test1:plant_name>
  <test1:height>10</test1:height>
</plantGroup>

include:

include的作用是将命名空间相同的Scheme导入进来。

eg:

DorisTestBasic.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://my.doris.net/test"
    elementFormDefault="qualified"
    xmlns="http://my.doris.net/test"
    xmlns:mstns="http://my.doris.net/test"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>

  <xs:complexType name="plant">
    <xs:sequence>
      <xs:element name="plant_name" type="xs:string"></xs:element>
      <xs:element name="height" type="xs:int"></xs:element>
    </xs:sequence>
  </xs:complexType>
  
</xs:schema>

DorisTest.xsd

plantGroup Element用了DorisTestBasic.xsd中的plant作为type

<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://my.doris.net/test"
    elementFormDefault="qualified"
    xmlns="http://my.doris.net/test"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:include schemaLocation="DorisTestBasic.xsd"/>
  <xs:element name="personGroup" type="person"></xs:element>
  <xs:complexType name="person">
    <xs:sequence>
      <xs:element name="name" type="xs:string"></xs:element>
      <xs:element name="birth" type="xs:date"></xs:element>
      <xs:element name="local" type="xs:string"></xs:element>
      <xs:element name="gender" type="xs:string"></xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="plantGroup" type="plant"> </xs:element>
</xs:schema>

text.xml

  • 用DorisTestBasic.xsd中定义的元素

<?xml version="1.0" encoding="utf-8"?>
<plantGroup xmlns="http://my.doris.net/test">
  <plant_name></plant_name>
  <height>10</height>
</plantGroup>
  • 用DorisTest.xsd中的元素

<?xml version="1.0" encoding="utf-8"?>
<personGroup xmlns="http://my.doris.net/test">
  <name></name>
  <birth>1988-04-26</birth>
  <local></local>
  <gender></gender>
</personGroup>