0

我想在 XML 中使用一个数据类型,它指的是一个字节的 4 位,而其他 4 位用于不同的目的。像前 4 位 0..3 用于表示错误代码,位 4、5,6 和位 7 用于其他一些任务。如何在 XML 中实现这一点。

<DataItem DataType="Unsigned8" Length="1" TextId="T_ErrorCode" UseAsBits="true">
  <BitDataItem BitOffset="0" TextId="T_4bit_errorcode" />    ---> Line 125

我可以使用:
<... BitOffset="0..3" TextId="T_4bit_errorcode" />

这显示了以下错误:

编辑:

使用 MSXML 4.0:

行消息 125 将“0..3”解析为 unsignedByte 数据类型时出错。属性:“BitOffset”根据其数据类型具有无效值。

使用 Xerces:

Line Message 125 value '0..3' does not match regular expression facet '[+-]?[0-9]+' 129 遇到小数点多一位

我正在验证模式,但我不确定如何找到它。我是 XML 新手。我只想知道如何表示位的范围。是否有任何位范围的数据类型,或者我必须创建一个新的用户定义类型。

XML 的第一行包含:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

编辑2:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="GSDML-Stylesheet-HTML-V2.2.xsl" type="text/xsl"?>
<ISO15745Profile xmlns="http://www.profibus.com/GSDML/2003/11/DeviceProfile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.profibus.com/GSDML/2003/11/DeviceProfile  ..\XSD\GSDML-DeviceProfile-v2.2.xsd">

<ProfileHeader>

我希望我添加新数据类型的模式文件用 schemalocation 引用?

你能告诉我如何将字符串表示为位吗?

4

1 回答 1

0

如果您总是要引用 4 位(不少于),为什么不只使用整数值来表示范围的第一位呢?:

0 -> 0..3
1 -> 1..4
2 -> 2..5
3 -> 3..6
4 -> 4..7

您当然不能在数据类型为 unsignedByte 的属性中使用值“0..3”,因为它根本不是数值。

于 2013-01-04T12:24:54.107 回答