1

私は XML スキーマにまったく慣れていないので、xsd 要素用に持っているさまざまなモデルの構文を読み取ろうとしています。

これは、たとえば CompleyType のモデルです (構文)

<complexType
  abstract = Boolean : false 
  block = (#all | List of (extension | restriction))
  final = (#all | List of (extension | restriction))
  id = ID 
  mixed = Boolean : false
  name = NCName 
  {any attributes with non-schema Namespace...}>
Content: (annotation?, (simpleContent | complexContent | ((group | all | 
choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?))))
</complexType>

しかし、私が読むのはかなり難しいので、それを分解して、いくつかの構文とその可能性から始めます。誰かがそれをチェックしてくれると助かります。

The Syntax (a1?,a2?)

これは、私がこの可能性を持っていることを意味しますか? (証明されていない)

(a1,a2)
(a1)
(a2)
(empty)

構文

(a1|a2)?

これは、私がこの可能性を持っていることを意味しますか? (私が証明した)

(a1)
(a2)
(empty)

構文

(a1*,a2*)

これは、私がこの可能性を持っていることを意味しますか? (証明されていない)

(a1,a1,a2,a2)
(a2,a2)
(a1,a1)
(a1)
(a2)
(empty)

構文

(a1|a2)*

これは、私がこの可能性を持っていることを意味しますか? (証明済み) 上記の (a1*,a2*) が同じ可能性を持っている可能性はありますか?

(a1,a1,a2,a2)
(a2,a2)
(a1,a1)
(a1)
(a2)
(empty)

構文

(a1|a2)

これは、私がこの可能性を持っていることを意味しますか? (証明済み)

(a1)
(a2)

構文

(a1,a2)

これは、私がこの可能性を持っていることを意味しますか? (証明されていない)

(a1,a2)
4

1 に答える 1

0

はい、(a1?,a2?)オプションの a1 の後にオプションの a2 が続くことを意味し、リストしたすべての例を許可します。

(a1,a2)
(a1)
(a2)
(empty)

はい、(a1|a2)?オプションで a1 または a2 を意味し、リストしたすべてのオプションを許可します。

(a1)
(a2)
(empty)

しかしそうではない(a1, a2)

はい、(a1*,a2*)ゼロ以上の a1 の後にゼロ以上の a2 が続くことを意味し、リストしたすべてのオプションを許可します。

(a1,a1,a2,a2)
(a2,a2)
(a1,a1)
(a1)
(a2)
(empty)

はい、(a1|a2)*任意の順序で 0 個以上の a1 または a2 を意味します。したがって、はい、リストしたオプションはすべて許可されています。

(a1,a1,a2,a2)
(a2,a2)
(a1,a1)
(a1)
(a2)
(empty)

だけでなく(a2, a1)、これは許可されていません(a1*, a2*)

はい、(a1|a2)a1またはa2のいずれかを意味し、リストしたすべてのオプションを許可します:

(a1)
(a2)

はい、(a1,a2)a1の後にa2が続くことを意味し、リストした可能性を許可します:

(a1,a2)
于 2013-09-29T17:02:01.467 に答える