3

我正在尝试使用我编写的架构验证 xml 文件,但它的行失败:

Element 'Route', attribute '{http://www.w3.org/XML/1998/namespace}space': The attribute '{http://www.w3.org/XML/1998/namespace}space' is not allowed.

XML 文件有时包含以下内容:

 <Route xml:space="preserve">

</Route>

这显然是导致问题的原因,我可以对我的 xsd 文件做些什么来解决这个问题?

这是我的 XSD,所有不相关的东西都被删除了

<?xml version="1.0" standalone="yes"?>
<xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="NewDataSet">
      <xs:element name="Route" type="xs:string" minOccurs="0" /> 
      <xs:element name="FurtherRequirements" type="xs:string" minOccurs="0" />

等等等等

感谢所有帮助!

4

1 回答 1

4

您必须Route从 type更改xs:string为 type string-with-xml-space,其中string-with-xml-space是具有简单内容的复杂类型,定义如下:

<xs:complexType name="string-with-xml-space">
  <xs:complexContent>
    <xs:extension base="xs:string">
      <xs:attribute ref="xml:space"/>

您还需要xs:importXML 命名空间的架构:

<xs:import namespace='http://www.w3.org/XML/1998/namespace'  
           schemaLocation='http://www.w3.org/2001/xml.xsd'/>
于 2012-06-27T13:50:00.177 回答