1

たとえば、次の要素があるとしましょう

<Employment type ="Full">
</Employment>

これが私が属性を表現する方法です

<xs:attribute name="Degree" type="xs:string" use="required" />

ここで、属性が 2 つの値、つまりFullPartのみを持つことができるという事実も表現したいと思います。

だから、私はこれを試しました

   <xs:attribute name="Degree" type="xs:string" use="required" >
        <xs:simpleType>
            <xs:restriction base="xs:string">
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>

xs:attribute は SimpleType または ComplexType のいずれにも存在できないというエラーが表示されます。

その制約をどう表現するか。

助けてくれてありがとう。

4

1 に答える 1

2

以下は、文字列コンテンツを持つ要素と列挙値を持つ属性を示す XML スキーマ定義です。

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

  <xs:element name="Employment">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="Degree" use="required">
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value="Full" />
                <xs:enumeration value="Part" />
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
</xs:schema>

この XML インスタンスが有効になるように:

<Employment Degree="Part">string content</Employment

この XML インスタンスは無効です (属性がありません):

<Employment>string content</Employment

そして、この XML インスタンスは無効になります (不正な属性値):

<Employment Degree="asdf">string content</Employment
于 2013-09-29T00:57:55.010 に答える