0

我是 XML 模式和 XMPP 消息协议的初学者。是否有任何明确的方式来理解以下 XML 模式。每个标签是什么意思,有多少种标签——具体的读写方式是什么:

<?xml version='1.0' encoding='UTF-8'?>

<xs:schema
    xmlns:xs='http://www.w3.org/2001/XMLSchema'
    targetNamespace='http://jabber.org/protocol/address'
    xmlns='http://jabber.org/protocol/address'
    elementFormDefault='qualified'>

  <xs:annotation>
    <xs:documentation>
      The protocol documented by this schema is defined in
      XEP-0033: http://www.xmpp.org/extensions/xep-0033.html
    </xs:documentation>
  </xs:annotation>


  <xs:element name='address'>
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base='empty'>
            <xs:simpleType>
              <xs:restriction base='xs:NCName'>
                <xs:enumeration value='bcc'/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name='uri' use='optional' type='xs:string'/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>

  <xs:simpleType name='empty'>
    <xs:restriction base='xs:string'>
      <xs:enumeration value=''/>
    </xs:restriction>
  </xs:simpleType>

</xs:schema>
4

1 回答 1

0

XSD 是一种复杂的语言,无法在几段中给出充分的解释。阅读 W3C XML Schema Primer(XML Schema Part 0)可能是一个好的开始;更好的是,获取 Eric van der Vlist 的书并阅读开篇章节。

您给我们的片段格式不正确:它</xs:attribute>在第 26 行包含一个不匹配的结束标记。如果我们添加缺少的行:

<xs:attribute name='type' use='required'>

address在第 21 行,模式正在为具有两个属性但没有内容的元素定义规则:一个强制type属性,其唯一允许的值为bcc,以及一个可选uri属性,其值为任何字符串。定义一个没有内容的元素是一种相当奇怪的方式:它实际上将它定义为一个有内容的元素,其中内容必须是一个空字符串。也许模式设计者有这样做的原因,但这并不是很明显。

于 2013-08-26T09:15:37.913 回答