5.4 来自多个文档的模式

###5.4 来自多个文档的模式

  • 可以组合多个XML Schema文件,并可以重用Schema的定义

  • 节省创建文档花费的时间,增加文档的互用性

  • 用于多XML Schema文档处理的声明

  • <import>

  • <inculde>

  • <import>声明

  • 可以从其他XML Schema文件导入全局声明

  • 主要用于把来自不同 targetNamespace 的 XML Schema 合并

    • 可以把两个 XML Schema 模式应用于同一个 XML 实例文档 只引用 其他 XML Schema 中的声明 ,

只用于具 有 同一个 targetNamespace 的 XML Schema

<import id=“unique identifier” namespace=“namespace name” schemaLocation =“filename”>

  • id: 指定唯一的元素 ID , 可选

  • namespace:指定被导入模式所属命名空间的URL,也指定前缀,用来使用一个元素或属性和一个特定的命名空间关联

    • schemaLocation:指定被导入模式文件的物理地址

    • 在引入时,必须先在需要导入模式的Schema文档中指明所导入的模式所在的命名空间,并在导入时声明该命名空间前缀

<import id=“unique identifier” namespace=“namespace name”schemaLocation=“filename”>

  • <import>总是用作全局声明,则其可以应用于整个XML Schema

    • 从其他命名空间导入时,模式验证器将根据声明中schemaLocation的值,查找相应的模式定义文档

      • schemaLocaiton只给处理器提供信息,处理器可选择XML Schema的另外副本

      • 如果找不到Schema文件,则提示错误或继续不严格(lax)的验证模式

  • <include>声明

  • <import>相似,用于把为同一个targetNamespace(或者没有targetNamespace)设计的XML Schema组合在一起

    • <include>中没有amespace属性

    • <include>在一个Schema文件中可多次出现

    • <include>允许包含任何在同一目标命名空间的上下文中被定义的外部模式

  • 模式验证器在处理<include>声明时,将导入的全局声明作为含有<include>声明的XML Schema中的声明

  • 声明

  • id: 指定唯一的元素ID,可选

  • schemaLocation: 指定被包含模式文件的物理地址 <include id=“unique identifier” schemaLocation=“filename”>

Last updated