0

XML で 1 バイトの 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 の場合:

ライン メッセージ 125 値 '0..3' は正規表現ファセット '[+-]?[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