【xml】SchemaLocation、import、include

xml中,定义了namespace,如果要验证xml文档的有效性,需要这些namespace相关的xsd文档。

 

引入xsd有的方式:

通过schemaLocation方式:

 

1.xsi:schemaLocation

 

<?xml version="1.0" encoding="GB2312"?>
<books xmlns="http://www.sunxin.org/bks"   
           xmlns:p="http://www.sunxin.org/people"  
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.sunxin.org/bks      bks.xsd
                                         http://www.sunxin.org/people  people.xsd">
 

 这个例子是从这里来的,

 

 

简单说明一下:

  • books的缺省命名空间:“http://www.sunxin.org/bks”
  • 又定义了一个前缀p: xmlns:p=“http://www.sunxin.org/people” (如果不需要有xsd对应,可以随意定义;如果需要验证,这个namespace必须和xsd中的TargetNamespace一致)
  • xmlns:xsi是xml标准的一个前缀,作用在xsi:schemaLocation中体现出来
  • xsi:schemaLocation中引入对个URI对,
    • 第一个为xsd的TargetNamespace(这个必须和后面的xsd中的TargetNamespace匹配),
    • 第二个代表从哪里找到这个xsd文件
    • 在schemaLocation中,可以出现多个类似的匹配对(URI URL )
  • 这样前面第一个前缀,通过定义的namespace和schemaLocation中的xsd就可以对应起来了;

 2.前缀:schemaLoaction

 

 

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
                  xmlns:other=“http://www.w3.org/XML/1998/namespace”
              other:schemaLocation="xml.xsd">

….

</xs:schema>

 

 说明:

  • 定义了前缀other,然后申明other前缀的xsd

3.import 和 include

 import: 可以用于不同的命名空间

 include: 必须是同一命名空间

 

<import namespace="http://test.com/test"
            schemaLocation="http://test.com/test/test.xsd"
/>

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值