找不到元素“test1”的声明

发布于 2025-01-20 23:53:20 字数 1319 浏览 0 评论 0原文

所以我使用 xsd 1.1 在我的代码中使用断言,无论我做什么,我都无法删除错误“找不到元素“test1”的声明”

这是我的代码:

<?xml version="1.0" encoding="utf-8"?>
 <test1>
  <Candidate name="John">61</Candidate> 
  <Candidate name="Sara">24</Candidate> 
  <Candidate name="Bill">15</Candidate>
 </test1>

这是我的带有断言和 xsd 1.1 扩展的 xsd

<xs:schema xmlns="http://www.mycompany.com/schema/app"
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   targetNamespace="http://www.mycompany.com/schema/app"
   elementFormDefault="qualified"
   xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
   vc:minVersion="1.1">
<xs:element name="test1">
<xs:complexType>
   <xs:sequence>
    <xs:element name="Candidate" maxOccurs="unbounded" minOccurs="0">
      <xs:complexType>
        <xs:simpleContent>
          <xs:extension base="xs:byte">  
            <xs:assert test="sum(Candidate)=100"/>
            <xs:attribute type="xs:string" name="name" use="optional"/>
           </xs:extension>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>

我的目标我想让这个 xml 和 xsd 彼此有效

so im using xsd 1.1 to use assert in my code, whatever i do , i cant remove the error "Cannot find declaration of element "test1""

this is my code for :

<?xml version="1.0" encoding="utf-8"?>
 <test1>
  <Candidate name="John">61</Candidate> 
  <Candidate name="Sara">24</Candidate> 
  <Candidate name="Bill">15</Candidate>
 </test1>

and this is my xsd with assert and xsd 1.1 extension

<xs:schema xmlns="http://www.mycompany.com/schema/app"
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   targetNamespace="http://www.mycompany.com/schema/app"
   elementFormDefault="qualified"
   xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
   vc:minVersion="1.1">
<xs:element name="test1">
<xs:complexType>
   <xs:sequence>
    <xs:element name="Candidate" maxOccurs="unbounded" minOccurs="0">
      <xs:complexType>
        <xs:simpleContent>
          <xs:extension base="xs:byte">  
            <xs:assert test="sum(Candidate)=100"/>
            <xs:attribute type="xs:string" name="name" use="optional"/>
           </xs:extension>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>

my goal is that i want to make this xml and xsd valid with each other

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

魄砕の薆 2025-01-27 23:53:20

您的 XSD 目标为 targetNamespace="http://www.mycompany.com/schema/app" 命名空间,但您的 XML 不位于任何命名空间中。

替代解决方案:

  1. xmlns="http://www.mycompany.com/schema/app" 添加到 XML 文档的根元素,或
  2. 删除 targetNamespace="http://www .mycompany.com/schema/app” 来自 XSD 中的 xs:schema

另请参阅

Your XSD targets the targetNamespace="http://www.mycompany.com/schema/app" namespace, yet your XML is in no namespace.

Alternative solutions:

  1. Add xmlns="http://www.mycompany.com/schema/app" to the root element of your XML document, or
  2. Remove targetNamespace="http://www.mycompany.com/schema/app" from xs:schema in your XSD.

See also

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文