XML模式 - “此上下文中不支持的元素”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XML模式 - “此上下文中不支持的元素”相关的知识,希望对你有一定的参考价值。

我的代码中的最后一个内容出现问题。它说:

在此上下文中不支持“http://www.w3.org/2001/XMLSchema”。

我该如何解决这个问题?

问题的屏幕截图:

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"   
xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Ansökan">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="hejsanförskolan">
          <xs:complexType>
            <xs:sequence>   
              <xs:element maxOccurs="2" name="vårdnadstagare">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="personnummer" type="datatypPersonnummer"minOccurs="1" />
                    <xs:element name="förnamn" type="xs:string" minOccurs="1" />
                    <xs:element name="efternamn" type="xs:string" minOccurs="1" />
                    <xs:element name="Adress" type="xs:string" minOccurs="1" />
                    <xs:element name="Telefonnummer" type="xs:unsignedInt" minOccurs="1" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>                 
              <xs:element name="ömmandeskäl">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="allergi" type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:simpleType name="datatypPersonnummer">
          <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{10}"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
答案

查看另一个内联类型(对于元素vårdnadstagare):您的序列包含一个包含该类型的元素。

但是在出现错误的情况下,您将简单类型直接放在序列中。

你需要一个元素。

例如。

<xs:sequence>
  …
  <xs:element name="datatypPersonnummer">
     <xs:simpleType>
       <xs:restriction base="xs:string">
         <xs:pattern value="[0-9]{10}"/>
       </xs:restriction>
     </xs:simpleType>
   </xs:element>

IE浏览器。将现有的<xs:simpleType name="datatypPersonnummer">包装在新的<xs:element>中,将name属性移动到新元素上。

另一答案

类型datatypPersonnummer位于错误的位置。这有效:

        </xs:complexType>
    </xs:element>
    <xs:simpleType name="datatypPersonnummer">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{10}"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>

以上是关于XML模式 - “此上下文中不支持的元素”的主要内容,如果未能解决你的问题,请参考以下文章

xml Eclipse模板(代码片段)检查参数并最终抛出IllegalArgumentException

需要示例代码片段帮助

在不存在的片段上调用片段生命周期和 onCreate 的问题

从 XML 声明片段获取 XML 编码:部分内容解析不支持 XmlDeclaration

用于从 cloudkit 检索单列的代码模式/片段

创建片段而不从 java 代码实例化它