-1

我明天要写一个测试,必须学习一点 XML。我有一个 XML 模式,必须编写一个合适的 XML 文件。

给定的架构:

<schema> 
<element name="meta" type="metaType"/> 
<complexType name="metaType"> 
  <sequence> 
    <element name="title" type="string" minOccurs="1" maxOccurs="1"/> 
    <element name="authors" type="authorsType"/> 
    <element name="description" type="languageEntryType"/> 
    <element name="keywords" type="languageEntryType"/> 
  </sequence> 
</complexType> 
<complexType name="authorsType"> 
  <sequence> 
    <element name="name" type="string" minOccurs="1" maxOccurs="unbounded"/> 
  </sequence> 
</complexType> 
<complexType name="languageEntryType"> 
  <sequence> 
    <element name="entry" type="string" minOccurs="1" maxOccurs="unbounded"> 
      <complexType> 
        <attribute name="language"/> 
      </complexType> 
    </element> 
  </sequence> 
</complexType> 
</schema> 

我的解决方案如下所示:

<meta>
  <title>Sonne</title>
  <authors>Rammstein</authors>
  <description>Second Track on the Album "Mutter"</description>
  <keywords>hard rock</keywords>
  <keywords>metal</keywords>
</meta>

这是对的吗?属性是什么,我必须介意吗?谢谢你的帮助!

//编辑:我做了更多的研究,现在我的猜测是:

<meta>
  <title>Sonne</title>
  <authors>Rammstein</authors>
  <description>Second Track on the Album "Mutter"</description>
  <keywords language="english">hard rock</keywords>
  <keywords language="english">metal</keywords>
</meta>
4

1 回答 1

0

检查 XML 文档是否符合给定模式的最佳方法是使用 XML 编辑器或工具根据该模式对其进行验证。这是一个免费的在线工具,您可以将其用于此类练习

快速检查您的架构后,第一个问题是 xml 架构无效,因此没有文档可以对其进行验证。我已经添加了命名空间,但这仍然不完整,您需要先更正它,然后才能确定文档是否对其有效。

我能够帮助将其修复到这里,但架构仍然充满错误。没有大量更正,任何文档都无法符合此模式。

  <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>  
    <xs:element name="meta" type="metaType"/> 
    <xs:complexType name="metaType"> 
      <xs:sequence> 
        <xs:element name="title" type="xs:string" minOccurs="1" maxOccurs="1"/> 
        <xs:element name="authors" type="authorsType"/> 
        <xs:element name="description" type="languageEntryType"/> 
        <xs:element name="keywords" type="languageEntryType"/> 
      </xs:sequence> 
    </xs:complexType> 
    <xs:complexType name="authorsType"> 
      <xs:sequence> 
        <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="unbounded"/> 
      </xs:sequence> 
    </xs:complexType> 
    <xs:complexType name="languageEntryType"> 
      <xs:sequence> 
        <xs:element name="entry" minOccurs="1" maxOccurs="unbounded"> 
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="xs:string">
                <xs:attribute name="language" type="xs:string"/>
              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element> 
      </xs:sequence> 
    </xs:complexType> 
  </xs:schema>
于 2013-09-18T23:05:54.267 回答