请教该怎么去理解xml文件和xsd文件的关系?

xsd文件:

<?xml version="1.0"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"targetNamespace="http://www.w3school.com.cn"xmlns="http://www.w3school.com.cn"elementFormDefault="qualified"><xs:element name="note">
   <xs:complexType>
     <xs:sequence>
        <xs:element name="to" type="xs:string"/>
        <xs:element name="from" type="xs:string"/>
        <xs:element name="heading" type="xs:string"/>
        <xs:element name="body" type="xs:string"/>
     </xs:sequence>
   </xs:complexType></xs:element></xs:schema>

xml文件:

<?xml version="1.0"?><notexmlns="http://www.w3school.com.cn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3school.com.cn note.xsd"><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note>
  • 这样的关系,谁负责来验证xml是否符合xsd规则?是程序员自己实现?

  • 如果我用浏览器访问xml文件,浏览器会校验么?

  • 如果程序员自己实现,那么xsd文件如何让代码获取?

xsi:schemaLocation="http://www.w3school.com.cn note.xsd">
  • 这行代码中的note.xsd和note.xml的位置关系是啥?

另外,非IE浏览器下打开xml文档总是提示:

This XML file does not appear to have any style information associated with it. The document tree is shown below.
  • 这个如何解决?


慕斯709654
浏览 98回答 2
2回答

翻阅古今

XSD文件在某个namespace中定义element和type。此处定义的type被element(此namespace或者其他namespace中的)使用,而XML文件不使用。XML文件有且唯一root element。创建XML时,在root element中可以指定使用哪些namespace,从而使用其中的element。讨论:root element也是属于某个namespace,因为其他的element都是此root element的子element,那么是不是只需要指定使用root element的namespace?这个要看root element的type的定义情况。如果在root element的type的定义中(以及type定义中的element,反复下去)引用其他namespace的element或者type,那么就需要引入其他namespace综上所述,XML文件和XSD文件没有直接的联系,他们之间通过namespace关联,即&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;element&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use&nbsp;elementXSD文件-------------------------->namepsae--------------------------->XML文件

catspeake

xml 声明里有一个属性 xs:schemaLoaction
打开App,查看更多内容
随时随地看视频慕课网APP