RelaxNG使用十进制数据类型和设置值限制?

时间:2015-10-22 19:30:42

标签: xml relaxng

我正在使用RelaxNG为xml文档创建一个简单的模式...首先,这是一种指定十进制类型属性的正确方法:

<attribute name='amount'><data type="decimal"/></attribute>

鉴于我已经指定了数据库:

<element name='products' datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">

现在,我如何设置金额属性的最小和最大限制?感谢。

1 个答案:

答案 0 :(得分:1)

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.htmlhttp://www.relaxng.org/compact-tutorial-20030326.html#id2814737http://evc-cit.info/cit041x/lecture4_rnc.htmlhttp://relaxng.org/tutorial-20011203.html#IDA5UYR