第五章 XML名称空间 《XML编程原理与实例教程》电子教案.pptVIP

  • 0
  • 0
  • 约2.54千字
  • 约 13页
  • 2018-02-03 发布于浙江
  • 举报

第五章 XML名称空间 《XML编程原理与实例教程》电子教案.ppt

第五章 XML名称空间 《XML编程原理与实例教程》电子教案

第五章 XML名称空间 5.1 XML名称空间简介 XML名称空间是W3C于1998年2月提出的,刚开始是一个草案,直到1999年1月14日才正式发布为推荐标准,它是XML标准的补充部分。2004年2月4号又推出了1.1版本作为推荐标准。 名称空间通过使用统一资源标识(URI)来限定元素和属性,从而保证任何一篇XML文档中使用到的名字不发生重复。 5.2 名称空间的声明 在XML中,声明一个名称空间是使用关键字“xmlns”来声明的,它是一个属性。 声明一个名称空间有两种方法,直接声明和默认声明。 5.2 名称空间的声明 直接声明需要指定声明名称空间的前缀,而默认声明就是没有指定名称空间的前缀,是用这种方式声明的名称空间又称为默认名称空间。 直接声明的语法格式: xmlns:名称空间前缀=”名称空间名”。 默认声明的语法格式:xmlns=”名称空间名” 5.3 名称空间的作用范围 一个名称空间具有一定的作用范围,在名称空间范围内的元素和属性才能使用名称空间极其前缀,不在名称空间、或者属于另外一个名称空间的元素和属性是不受该名称空间约束。 5.3 名称空间的作用范围 例:year xmlns=http://year.xsd season xmlns:sea=http://season.xsd sea:spring1,2,3/sea:spring sea:summer4,5,6/sea:summer sea:autumn7,8,9/sea:autumn sea:winter10,11,12/sea:winter /season month xmlns:mon=http://month.xsd mon:jan mon:number=”1” / mon:Apr/ mon:Jul/ mon:Oct/ /month day365/day /year 5.4 schema中的名称空间 一个schema文档要应用名称空间,就需要在声明schema根元素的时候同时给出属性targetnamespace的值。 没有targetnamespace值的声明是对应于不使用名称空间的XML文档。 5.4 schema中的名称空间 例如文档: xsd:schema xmlns:xsd=/2001/XMLSchema xsd:element name=year type=xsd:int/ /xsd:schema 这是一个没有使用名称空间的schema,相应的如果要在XML文档中应用这个schema文档就需要指出schmea文档是没有名称空间的,这可以通过在文档元素中使用noNamespaceSchemaLocation属性来实现。比如: year xmlns:xsi=/2001/XMLSchema-instance xsi:noNamespaceSchemaLocation=Untitled1.xsd 365 /year 5.4 schema中的名称空间 如果要指定名称空间,就一定需要指定targetnamespace属性的值,否则如果不指定targetnamespace的值又使用名称空间是不能通过有效性验证 。 例如: ?xml version=1.0 encoding=UTF-8? xsd:schema xmlns:xsd=/2001/XMLSchema targetNamespace= xmlns= xsd:element name=year type=xsd:int/ /xsd:schema 5.4 schema中的名称空间 上面的schema对应的XML文档就是: ?xml version=1.0 encoding=UTF-8? year xmlns= xmlns:xsi=/2001/XMLSchema-instance xsi:schemaLocation= Untitled1.xsd 365 /year 5.4 schema中的名称空间 针对元素和属性究竟属于哪一个名称空间也有一定的规定。 在一个XML schema中,通过elementFormDefault属性来指示schema中声明的元素或类型属于哪一个名称空间。 一个schema声明的元素或者类型只能属于两个名称空间的其中一个,这两个名称空间分别是目标名称空间和非目标名称空间,非目标名称空间有可能是一个无名名称空间——即它是一个名字为空的名称空间,注意无名名称空间不同于默认名称空间。 5.4 schema中的名称空间 如果elementFormDefault=”qualified”,则全局元素与类型属于目标名称空间,全局元素的子元素以缺省的方式

文档评论(0)

1亿VIP精品文档

相关文档