Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包含属性和文本的XML元素和XSD验证_Xml_Xsd - Fatal编程技术网

包含属性和文本的XML元素和XSD验证

包含属性和文本的XML元素和XSD验证,xml,xsd,Xml,Xsd,我正在努力弄清楚如何构造XSD验证,以便正确验证XML文件 我的元素languages包含元素language,其中既包含文本,也包含id字段 我的验证器告诉我有:验证错误:元素“languages”的子元素“language”无效。 如何正确地构造这个?我的language元素是否需要complexType XSD XML C C++ 以下XSD将验证您的XML: <?xml version="1.0" encoding="ISO-8859-1"?> <xs:schem

我正在努力弄清楚如何构造XSD验证,以便正确验证XML文件

我的元素
languages
包含元素
language
,其中既包含文本,也包含
id
字段

我的验证器告诉我有:
验证错误:元素“languages”的子元素“language”无效。

如何正确地构造这个?我的
language
元素是否需要
complexType

XSD


XML


C
C++

以下XSD将验证您的XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="dataset">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="languages">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="language" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:string">
                      <xs:attribute name="id">
                      </xs:attribute>
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

</xs:schema>

注意事项:

  • 错误消息与基数有关(
    maxOccurs=“unbounded”
  • 您可能不希望使用
    mixed=“true”
    ,除非
    语言
    可能的标记在其内容中与文本混合

  • 所以我忘了:maxOccurs=“unbounded”。。天哪。。。谢谢:黛雅,我不能告诉你有多少次我把一个错误错误归咎于我最担心的问题,而不是真正导致这个问题的简单问题。
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <dataset>
        <languages>
            <language id="0">C</language>
            <language id="1">C++</language> 
        </languages>
    </dataset>
    
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
      <xs:element name="dataset">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="languages">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="language" maxOccurs="unbounded">
                    <xs:complexType>
                      <xs:simpleContent>
                        <xs:extension base="xs:string">
                          <xs:attribute name="id">
                          </xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    
    </xs:schema>