我是XML Schema的新手,我正在尝试阅读我们为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)
答案 0 :(得分: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)*
表示任何顺序为零或多个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)