xml架构,十进制值的精度

时间:2011-05-30 11:17:51

标签: xsd

这是我的xml(不是完整的):

<xsd:complexType name="xx">
    <xsd:complexContent>
      <xsd:extension base="tns:xx">
        <xsd:sequence>
          <xsd:element name="rekVrednostDdv" nillable="true" type="decimal"/>
          <xsd:element name="xx" nillable="true" type="dateTime"/>
          <xsd:element name="xx" nillable="true" type="decimal"/>
          <xsd:element name="xx" nillable="true" type="string"/>
          <xsd:element name="xx" nillable="true" type="dateTime"/>
          <xsd:element name="xx" nillable="true" type="string"/>
          <xsd:element name="xx" nillable="true" type="decimal"/>
          <xsd:element name="xx" nillable="true" type="decimal"/>
          <xsd:element name="xx" nillable="true" type="string"/>
          <xsd:element name="xx" nillable="true" type="string"/>
          <xsd:element name="xx" nillable="true" type="decimal"/>
          <xsd:element name="xx" nillable="true" type="tns:xx"/>
          <xsd:element name="xx" nillable="true" type="dateTime"/>
          <xsd:element name="xx" nillable="true" type="string"/>
          <xsd:element name="xx" nillable="true" type="string"/>
          <xsd:element name="xx" nillable="true" type="string"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

例如rekVrednostDdv必须具有精度2.如何判断此类型具有精度2.

我试着这样:

<xsd:element name="rekVrednostDdv" nillable="true">
                    <xsd:simpleType>
                        <xsd:restriction base="decimal">
                            <xsd:precision value="6"/>
                            <xsd:scale value="2"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>

但现在我在使用http://www.brainbell.com/tutorials/XML/Working_With_Simple_Types.htm

时得到了
Invalid XML schema: 'Element <xsd:precision> is not allowed under element <xsd:restriction>.'

1 个答案:

答案 0 :(得分:17)

创建一个新的简单类型,限制xs:decimal并使用<xs:fractionDigits/>来定义精度。然后在元素定义中引用此类型。

<xs:simpleType name="decimalTwoPrec">
    <xs:restriction base="xs:decimal">
        <xs:fractionDigits value="2" />
    </xs:restriction>
</xs:simpleType>

<xs:element name="rekVrednostDdv" nillable="true" type="decimalTwoPrec"/>

有关详细信息,请参阅规范http://www.w3.org/TR/xmlschema-2/#rf-fractionDigits