我想创建一个属性(gravity_layout
),它采用不同的组合值(例如:bottom|right
)
我该如何制作这个属性?
我写了这个:
<xs:attribute name='layout_gravity'>
<xs:simpleType>
<xs:union memberTypes='xs:string'>
<xs:simpleType>
<xs:restriction base='xs:NMTOKEN'>
<xs:enumeration value='bottom' />
<xs:enumeration value='center' />
<xs:enumeration value='center_horizontal' />
<xs:enumeration value='center_vertical' />
<xs:enumeration value='clip_horizontal' />
<xs:enumeration value='clip_vertical' />
<xs:enumeration value='fill' />
<xs:enumeration value='fill_horizontal' />
<xs:enumeration value='fill_vertical' />
<xs:enumeration value='left' />
<xs:enumeration value='right' />
<xs:enumeration value='top' />
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
</xs:attribute>
我可以为它定义一个值,例如只是right
或bottom
,但如果我写right|bottom
,那么我会收到错误。
答案 0 :(得分:0)
你可以
使用XSD v1.1断言(在XSD v1.0中不可用)
并尝试找出一个聪明的XPath
验证由|
分隔的合法值的微语言
符号,
<强> 或 强>
修复您的XML设计,以便使用单独的source
元素
layout_gravity
而不是将多个值插入单个值
@layout_gratity
属性:
<layout_gravity>
<source>bottom</source>
<source>right</source>
<!-- ... -->
</layout_gravity>
我建议使用#2 ,因为