0

我有一个 DTD

<parameter name="ReferenceSignalPower" access="readWrite">
  <syntax>
    <int>
      <range minInclusive="-60" maxInclusive="50" />
      <units value="dBm">
      </units>
    </int>
  </syntax>
</parameter>

我是 XML 架构的新手,我不知道如何使用此 XML 架构提供单位值

<xs:element name="ReferenceSignalPower">
  <xs:simpleType>
    <xs:restriction base="xs:unsignedInt">
      <xs:minInclusive value="-60"/>
      <xs:maxInclusive value="50"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>
4

2 回答 2

2

XML 模式没有测量单位的概念,您可以定义 XML 属性或 XML 元素以包含具有某些限制的数字(或其他标准数据类型,如日期等),但读取XML 将此类数字解释为特定度量单位中的值。

如果您想在架构中添加测量单位信息,您可以使用appInfo元素来完成 - 例如:

<xs:element name="ReferenceSignalPower">
  <xs:simpleType>
    <xs:annotation>
      <xs:appinfo>
        <units value="dBm"/>
      </xs:appinfo>
    </xs:annotation>
    <xs:restriction base="xs:int">
      <xs:minInclusive value="-60"/>
      <xs:maxInclusive value="50"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

但是你必须自己解析和解释这些信息。

于 2012-09-25T21:04:49.857 回答
1

你没有说你的问题是什么,但我想问题是“为什么这不起作用?”

您的声明几乎是正确的,但并不完全正确。当您希望最小值为 -60 时,为什么要使用 unsignedInt 作为基本类型?unsignedInt 的最小值已经设置为零。

XSD 规范假定如果您尝试将最小值设置为不属于您的类型的值空间的值,那么某处会出现错误。

所以:要么使用有符号整数类型作为基本类型,要么将最小值设置为基本类型中实际存在的值。

于 2012-09-24T17:04:19.950 回答