当前位置: 首页 > 知识库问答 >
问题:

尝试验证XML到架构时出错

段渊
2023-03-14
<?xml version="1.0"?>
<!DOCTYPE Employees>
<Employees xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="lab4_obj1.xsd">
  <Employee>
    <First>John</First>
    <Last>Smith</Last>
    <Phone>1-800-123-4567</Phone>
  </Employee>
</Employees>
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="Employees">
  <xs:complexType>
     <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="Employee"/>
           <xs:complexType>
              <xs:sequence>
                 <xs:element name="First"/>
                 <xs:element name="Last"/>
                 <xs:element name="Phone"/>
              </xs:sequence>
           </xs:complexType>
        </xs:sequence>      
     </xs:complexType>
  </xs:element>

</xs:schema>

共有1个答案

隆功
2023-03-14

首先,您需要在定义复杂类型之前自行结束Employee元素(因为在“Employee”后面有/)

您应该在ComplexType之后结束它(见下面)。

<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns="http://Scratch.Employees" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://Scratch.Employees" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Employees">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="Employee">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="First" type="xs:string" />
              <xs:element name="Last" type="xs:string" />
              <xs:element name="Phone" type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

其次,XML示例似乎指的是一个DTD,但您的模式是一个XSD。所以您需要删除它,并可能引用正确的名称空间。

<?xml version="1.0"?>
<ns0:Employees xmlns:ns0="http://Scratch.Employees">
  <Employee>
    <First>John</First>
    <Last>Smith</Last>
    <Phone>1-800-123-4567</Phone>
  </Employee>
</ns0:Employees>
 类似资料:
  • 我对XML非常陌生,我面临着验证问题,如果我的XML和XSD文件结构良好,我也希望得到一些反馈。 在根据XSD验证XML时,我经常遇到错误- 下面的XML XSD 如果你发现其中任何一个有任何错误,请随时指出。它们都有从图案到最大长度的限制。 谢谢!!!!

  • 我一直在遵循“Django by example”的教程,该教程介绍了Solr和Haystack,但遇到了一个问题。我已在settings.py中对已安装的_应用程序进行了必要的更改,并添加了以下内容: 然后我就跑 我得到这个错误 这是我的search_index.py文件 当我运行django shell时,我可以很好地导入haystack,但当我运行以下命令时: 进入第二行后,我得到了完全相同

  • 问题内容: 但是,这将返回一条错误消息:线程“ main”中的异常java.lang.IllegalArgumentException:无法加载实现由http://www.w3.org/2001/XMLSchema -instance 指定的模式语言的SchemaFactory。 这是我的代码还是实际的xsd文件有问题? 问题答案: 该错误意味着您安装的Java没有任何可解析XMLSchema文件

  • 使用eclipse时,我消除了所有错误,但当我更改xml文档中的元素内容时,超出了中设置的限制。xsd文件没有出现验证错误。我已尝试使用联机验证http://www.freeformatter.com/xml-validator-xsd.html我得到了错误“Cvc elt.1:找不到元素“DatabaseInventory”…行“4”,列“69”的声明”,但在eclipse中它验证得很好。不知道

  • 根据C#中的模式验证XSD时得到上述错误。Schema查找列出的标记,而进入的其他标记是可选的。下面是我的XSD文件。xml文件需要如何修改,以确保它在XSD中具有下面列出的标记,并忽略额外的标记

  • 问题内容: 我正在生成一些XML模式,并希望确保我们的生成器正在创建有效的XML模式文档(不是XML)。我试图提出验证XML Schema文档的代码,但失败了。我不认为会这么复杂。 这段代码与我需要做的非常接近,但是出现以下错误。 我在调用setSchema(uri)时使用URL,以确保XMLSchema.dtd和datatypes.dtd是相对的,希望它们可用,但是我不确定如何进行检查。 我猜想