创建一个 XML Schema(defined)文件,即xsd

http://www.w3school.com.cn/schema/schema_example.asp

(1)使用了标准的命名空间 (xs)

xs:schema表示xs的子元素schema;

里面xmlns:xs表示子元素schema的标准命名空间xs;

等号后面的"http://www.w3.org/2001/XMLSchema"是与标准命名空间xs相关联的URI,是子元素schema的语言定义。

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
...
...


</xs:schema>

(2)我们来自定义一个 "beans" 元素。此元素拥有一个属性,其中包含其他的元素,因此我们将它认定为复合类型。"beans" 元素的子元素被 xs:sequence 元素包围,定义了子元素的次序

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="beans">
    <xs:complexType>
       <xs:sequence>
              ...
       </xs:sequence>
    </xs:complexType>
</xs:element>

</xs:schema>

(3)我们来为"beans" 元素定义一个简易类型的子元素"simpleBean"

<xs:element name="simpleBean"></xs:element>

(4)我们来为"beans" 元素定义一个复合类型的子元素"complexBean"

<xs:element name="complexBean">
     <xs:complexType>
           <xs:sequence>
                  <xs:element name="property"></xs:element>             
           </xs:sequence>
     </xs:complexType>
</xs:element>

(5)我们来为子元素"complexBean"的子元素"property"定义几个属性吧

<xs:element name="property">
       <xs:complexType>
             <xs:attribute name="name" type="xs:string" use="required"/>
             <xs:attribute name="value" type="xs:string" use="required"/>
             <xs:attribute name="ref" type="xs:string"/>
       </xs:complexType>
</xs:element>

(6)最后的结果是

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="beans">
    <xs:complexType>
       <xs:sequence>

                <xs:element name="simpleBean"></xs:element>
                <xs:element name="complexBean">
                    <xs:complexType>
                         <xs:sequence>
                               <xs:element name="property">
                                       <xs:complexType>
                                            <xs:attribute name="name" type="xs:string" use="required"/>
                                            <xs:attribute name="value" type="xs:string" use="required"/>
                                            <xs:attribute name="ref" type="xs:string"/>
                                       </xs:complexType>
                               </xs:element>
                         </xs:sequence>
                         <xs:attribute name="id" type="xs:string" use="required"/>
                         <xs:attribute name="class" type="xs:string" use="required"/>
                    </xs:complexType>
              </xs:element>
       </xs:sequence>
    </xs:complexType>
</xs:element>

</xs:schema>

(7)我们将它改一下:

beans.xsd

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

	<xs:element name="beans">
		<xs:complexType>
			<xs:sequence>
				<xs:any maxOccurs="unbounded" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>


	<xs:element name="simpleBean"></xs:element>
	
	<xs:element name="complexBean">
		<xs:complexType>
			<xs:sequence>
			     <xs:any maxOccurs="unbounded" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="id" type="xs:string" use="required" />
			<xs:attribute name="class" type="xs:string" use="required" />
		</xs:complexType>
	</xs:element>

	<xs:element name="property">
		<xs:complexType>
			<xs:attribute name="name" type="xs:string" use="required" />
			<xs:attribute name="value" type="xs:string"/>
			<xs:attribute name="ref" type="xs:string" />
		</xs:complexType>
	</xs:element>

</xs:schema>

使用它来写xml文件

beans.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<beans 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="spring-beans.xsd">
      <simpleBean></simpleBean>
      <complexBean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"></complexBean>
      <complexBean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
              <property name="dataSource" ref="dataSource"/>
              <property name="configLocation" value="classpath:mybatis-config.xml"/>
              <property name="mapperLocations" value="classpath:com/dao/*Mapper.xml"/>
      </complexBean>
</beans>




版权声明:本文为baidu_36583119原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。