1
我一直在阅读关于xml的很多知识并学习了很多,但我陷入了一个错误。使用多个模式文件/名称空间时的XML验证错误
我有一个架构在多个文件中定义,我无法让它工作。下面是一个例子
==================================
libraryBooks.xsd<?xml version="1.0" encoding="utf-8"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="urn:MyNamespace"
targetNamespace="urn:MyNamespace"
elementFormDefault="qualified"
>
<xsd:element name="libraryBooks" type="libraryBooksType"/>
<xsd:complexType name="libraryBooksType">
<xsd:sequence>
<xsd:any minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"/>
</xsd:complexType>
</xsd:schema>
==================================
book.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="urn:MyNamespace2"
targetNamespace="urn:MyNamespace2"
elementFormDefault="qualified"
>
<xsd:element name="book" type="booksType"/>
<xsd:complexType name="bookType">
<xsd:attribute name="title" type="xsd:string"/>
</xsd:complexType>
</xsd:schema>
==================================
myXml.xml
<?xml version="1.0" encoding="utf-8" ?>
<libraryBooks
xmlns="urn:MyNamespace"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:MyNamespace file:///C:/libraryBooks.xsd"
name="CentralLibrary">
<mn2:book
xmlns:mn2="file:///C:/book.xsd"
title="How to make xml work the way I want">
</mn2:book>
</libraryBooks>
所以错误我得到的将是 “ '文件:/// C:/book.xsd:书' 元素没有找到”。 任何想法?我几乎可以肯定这是简单的东西
编辑:非常感谢你。我很接近,但只是停留在一件小事上。真的很欣赏方向。我想这两种方法,并在情况下,任何人读这很纳闷,在根节点输入多个schemaLocations的方式是
xsi:schemaLocation="urn:MyNamespace file:///C:/libraryBooks.xsd
urn:MyNamespace2 file:///C:/book.xsd"
用什么语言解析XML – Rachel 2010-03-20 01:47:37
我会尝试将xmlns:mn2 =“file:/// C:/book.xsd”移动到顶层 – Grzenio 2010-03-20 10:26:26