2011-06-02 35 views
3

有没有办法定义一个常量值并在前面的XSD中使用该常量?我有一个共同的价值,我想用于各种xs:元素标签的maxOccurs属性。与其他语言中的常量一样,如果MyConst的值有变化,我想在一个地方进行更改。如何在XSD中定义常量

<!-- Can I do this? --> 
<ConstantValue id="MyConst" value="10"/> 
... 
<xs:element name="sandwich_meat" type="xs:string" minOccurs="0" maxOccurs="MyConst"/> 
<xs:element name="sandwich_name" type="xs:string" minOccurs="0" maxOccurs="MyConst"/> 

回答

1

不,这是不允许的。然而,你可以在你的XSD顶部的某个地方定义你自己的类型(固定值),并使用该类型作为元素。

1

这是不可能用普通模式,但也许XML entities会做的伎俩?

0

你可以尝试定义有限制的简单类型:

<xs:simpleType name="AConstantHere"> 
    <xs:restriction base="xs:string"> 
     <xs:enumeration value="CONSTANT_VALUE_HERE"/> 
    </xs:restriction> 
    </xs:simpleType> 

它允许只有一个值。