RelaxNG使用十进制数据类型和设置值限制?
问题描述:
我使用RelaxNG来创建一个XML文档的简单模式...首先,这会是指定类型小数的属性的正确方法:鉴于本人指定的数据RelaxNG使用十进制数据类型和设置值限制?
<attribute name='amount'><data type="decimal"/></attribute>
-library:
<element name='products' datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
现在,我将如何设置金额属性的最小和最大限制?谢谢。
答
的RELAX NG模式
<?xml version="1.0" encoding="utf-8"?>
<element xmlns="http://relaxng.org/ns/structure/1.0" name="products" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<attribute name="amount">
<data type="decimal">
<param name="maxInclusive">10.0</param>
<param name="minInclusive">0.0</param>
</data>
</attribute>
</element>
成功验证
<?xml version="1.0" encoding="utf-8"?>
<products amount="1.0"/>
只要amount
值是0.0和10.0之间的有效的十进制值(与https://validator.nu/测试)。您也可以使用maxExclusive
和/或minExclusive
来设置边界。
有关文档,请参见http://books.xmlschemata.org/relaxng/ch19-77057.html,http://www.relaxng.org/compact-tutorial-20030326.html#id2814737,http://evc-cit.info/cit041x/lecture4_rnc.html和http://relaxng.org/tutorial-20011203.html#IDA5UYR。