对一个xml编写xsd的实例

原创 2007年09月30日 17:09:00

有坛中兄弟给我发了一个xml,须写xsd验证,这方面我也是新手呢,不过看了http://www.w3school.com.cn/schema/index.asp的教程而已,所以这倒是我第一次写xsd了。

给定xml (project_4.xml)文件如下:

<UWO>
    
<Departments>
  
<Department>
   
<Name>Economics</Name>
   
<Address>Social Science Centre, UWO, London, Ontario, Canada , N6A 5C2</Address>
   
<Location>SSC 4071</Location>
   
<Phone>519 661-3500 x83500</Phone>
   
<Facsimile>519 661-3666 x83666</Facsimile>
   
<Email>economics@uwo.ca</Email>
   
<WEB>http://economics.uwo.ca</WEB>
  
</Department>
  
<Department>
   
<Name>Political_science</Name>
   
<Address>Social Science Centre, UWO, London, Ontario, Canada , N6A 5C2</Address>
   
<Location>SSC 4154</Location>
   
<Phone>519 661-3266 x83266</Phone>
   
<Facsimile>519 661-3904 x83904</Facsimile>
   
<Email>polisci-web@uwo.ca</Email>
   
<WEB>http://politicalscience.uwo.ca</WEB>
   
<SERVICES>
    
<Service>
     
<Name>Local_Government_program</Name>
     
<Phone>519 661-2111 x80501</Phone>
     
<Location>SSC 4148</Location>
     
<WEB>http://localgovernment.uwo.ca</WEB>
    
</Service>
    
<Service>
     
<Name>Politics_020E_course_Coordinator</Name>
     
<Phone>519 661-2111 x85108</Phone>
     
<Location>ssc 4149</Location>
    
</Service>
   
</SERVICES>
  
</Department>
   
</Departments>
</UWO>

 编写xsd文件(project.xsd):

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://bbs.xml.org.cn" xmlns="http://bbs.xml.org.cn" elementFormDefault="qualified">
    
<xsd:element name="UWO">
        
<xsd:complexType>
            
<xsd:sequence>
                
<xsd:element name="Departments">
                    
<xsd:complexType>
                        
<xsd:sequence>
                            
<xsd:element name="Department" type="departmentType" maxOccurs="unbounded"/><!--调用后面定义的departmentType类型-->
                        
</xsd:sequence>
                    
</xsd:complexType>
                
</xsd:element>
            
</xsd:sequence>
        
</xsd:complexType>
    
</xsd:element>
    
<xsd:group name="departmentBasic"><!--定义一个group-->
        
<xsd:sequence>
            
<xsd:element name="Name" type="xsd:string"/>
            
<xsd:element name="Address" type="xsd:string"/>
            
<xsd:element name="Location" type="xsd:string"/>
            
<xsd:element name="Phone" type="xsd:string"/>
            
<xsd:element name="Facsimile" type="xsd:string"/>
            
<xsd:element name="Email" type="xsd:string"/>
            
<xsd:element name="WEB" type="xsd:string"/>
        
</xsd:sequence>
    
</xsd:group>
    
<xsd:complexType name="departmentType"><!--定义departmentType类型-->
        
<xsd:sequence>
            
<xsd:group ref="departmentBasic"/><!--引用前面定义的group-->
            
<xsd:element name="SERVICES" maxOccurs="1" minOccurs="0" type="servicesType"/><!--调用后面定义的servicesType类型-->
        
</xsd:sequence>
    
</xsd:complexType>
    
<xsd:complexType name="servicesType"><!--定义servicesType类型-->
        
<xsd:sequence>
            
<xsd:element name="Service" maxOccurs="unbounded">
                
<xsd:complexType>
                    
<xsd:sequence>
                        
<xsd:element name="Name" type="xsd:string"/>
                        
<xsd:element name="Phone" type="xsd:string"/>
                        
<xsd:element name="Location" type="xsd:string"/>
                        
<xsd:element name="WEB" type="xsd:string" minOccurs="0"/>
                    
</xsd:sequence>
                
</xsd:complexType>
            
</xsd:element>
        
</xsd:sequence>
    
</xsd:complexType>
</xsd:schema>

当然还要对xml文件进行关联,所以修改后的project_4.xml为:

<?xml version="1.0"?>
<UWO xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://bbs.xml.org.cn project.xsd" xmlns="http://bbs.xml.org.cn">
    
<Departments>
  
<Department>
   
<Name>Economics</Name>
   
<Address>Social Science Centre, UWO, London, Ontario, Canada , N6A 5C2</Address>
   
<Location>SSC 4071</Location>
   
<Phone>519 661-3500 x83500</Phone>
   
<Facsimile>519 661-3666 x83666</Facsimile>
   
<Email>economics@uwo.ca</Email>
   
<WEB>http://economics.uwo.ca</WEB>
  
</Department>
  
<Department>
   
<Name>Political_science</Name>
   
<Address>Social Science Centre, UWO, London, Ontario, Canada , N6A 5C2</Address>
   
<Location>SSC 4154</Location>
   
<Phone>519 661-3266 x83266</Phone>
   
<Facsimile>519 661-3904 x83904</Facsimile>
   
<Email>polisci-web@uwo.ca</Email>
   
<WEB>http://politicalscience.uwo.ca</WEB>
   
<SERVICES>
    
<Service>
     
<Name>Local_Government_program</Name>
     
<Phone>519 661-2111 x80501</Phone>
     
<Location>SSC 4148</Location>
     
<WEB>http://localgovernment.uwo.ca</WEB>
    
</Service>
    
<Service>
     
<Name>Politics_020E_course_Coordinator</Name>
     
<Phone>519 661-2111 x85108</Phone>
     
<Location>ssc 4149</Location>
    
</Service>
   
</SERVICES>
  
</Department>
   
</Departments>
</UWO>

XML中xsd,xsi的解释

首先这个文件是一个xml文件,那么他里面的所有内容都符合xml语法规范, 开头的这最外层同样也是一个xml文件的标签, 后面那一长串也就是所谓的属性,其中xmlns表示命名空间,xmlns="ht...
  • superit401
  • superit401
  • 2016年06月20日 18:42
  • 2138

笑谈XML,xsd与xsl文件的区别

如果说xml是一叠钞票,xsd就是验钞机,看看里面有没有假钞,而xsl是点钞机,看看到底是多少钱。用xml可以不用xsd,就像花钱的时候不一定要验钞一样,但是收钱的人一般 是想要验的。而花钱的时候不能...
  • qq_net
  • qq_net
  • 2007年06月07日 10:51
  • 2575

XML中DTD,XSD的区别与应用

XML我们并不陌生,在企业级应用中有很广的用途。具体就不再说,下面介绍一下DTD,XSD的区别并以XSD为例看spring中定义与使用。 1.DTD(Documnet Type Definition...
  • ningguixin
  • ningguixin
  • 2012年11月11日 17:55
  • 19601

XML文件和XSD文件的关系

1. XSD文件在某个namespace中定义element和type。此处定义的type被element使用,而XML文件不使用。2. XML文件有且唯一根element。3. 创建XML时,指定使...
  • Jinuxwu
  • Jinuxwu
  • 2010年09月29日 15:38
  • 6186

XML和Schema命名空间详解

XML和Schema命名空间详解
  • tjbsl
  • tjbsl
  • 2016年01月04日 17:51
  • 2743

怎么写xsd文件

1.最简单的Schema文档 如何写一个最简单的XML Schema文档呢? 首先,我们写出一个最简单的XML文档。 hello.xml ------------------- versio...
  • sidihuo
  • sidihuo
  • 2014年11月04日 11:38
  • 8695

检测xml和xsd的代码及程序

  • 2010年12月23日 16:39
  • 35KB
  • 下载

如何使用XSD

更多细节可以参考:http://www.w3school.com.cn/schema/schema_howto.asp XSD是XML Schema Definition的简称,顾名思义,它...
  • somilong
  • somilong
  • 2016年06月03日 21:07
  • 1560

由xml生成xsd及实体类

使用VS2005工具XSD.exe(SDK/v2.0/Bin/xsd.exe)自动生成实体类:xsd /c /namespace:myCompany /language:CS temp1.xsd也可以...
  • sl521100
  • sl521100
  • 2010年05月06日 10:15
  • 2282

根据XML自动生成XSD

利用Vistual Studio自带的xsd.exe工具,根据XML自动生成XSD 1, 命令提示符--》找到vs自带的xsd.exe工具所在的文件夹 例如: C:\Program Files...
  • prince_lintb
  • prince_lintb
  • 2014年12月09日 13:45
  • 10107
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对一个xml编写xsd的实例
举报原因:
原因补充:

(最多只允许输入30个字)