ページの先頭行へ戻る
Interstage Service Integrator V9.5.1 解説書
FUJITSU Software

6.9.1 属性の変換ルール

ユーザ固有フォーマットとXML文書間におけるフォーマット変換は、属性ごとに以下のルールに従って行われます。

X属性、K属性、N属性、C属性に対しては、カットする文字(トリミング文字)、詰める文字(パディング文字)を変更できます。
X属性、N属性、C属性のデフォルトのトリミング文字、およびパディング文字は半角空白です。K属性のデフォルトのトリミング文字、およびパディング文字は全角空白です。
トリミング文字、およびパディング文字を変更する場合は、Formatmanagerクライアントにおける[運用登録]画面で、“トリミング文字”または“パディング文字”を指定してください。

表6.44 ユーザ固有フォーマットとXML文書間の各属性の変換ルール

属性

ユーザ固有フォーマットからXML文書への変換

XML文書からユーザ固有フォーマットへの変換

符号の扱い

小数点の扱い

X

設定されている文字列の後方の空白をカットして出力します。

設定されている文字列の後方に桁数いっぱいまで空白を詰めて出力します。

K

設定されている2バイト文字の後方の空白をカットして出力します。

設定されている2バイト文字の後方に桁数いっぱいまで全角空白を詰めて出力します。

B

設定されている値を2進数表現にして出力します。

設定されている値を16進数にして出力します。

双方とも1の補数で表現します。

H

設定されている値の先頭に“0x”を付けて、16進数表現にして出力します。

設定されている値の先頭の“0x”をカットして、16進数のまま出力します。

N

設定されている数値の先頭の空白をカットして出力します。

設定されている数値の先頭に桁数いっぱいまで空白を詰めて出力します。

双方とも先頭に“-”が付加されます。

双方とも明示的に小数点を表現します。

9

設定されている数値を10進数に変換後、先頭の“0”をカットして出力します。

設定されている数値をゾーン10進数に変換後、先頭に桁数いっぱいまで“0”を詰めて出力します。

XML文書では、先頭に“-”が付加されます。

XML文書では、明示的に小数点を表現します。

C

設定されている数値の先頭の空白をカットして出力します。

設定されている数値の先頭に桁数いっぱいまで空白を詰めて出力します。

双方とも先頭に“-”が付加されます。

双方とも明示的に小数点を表現します。

P

設定されている数値を10進数に変換後、先頭の“0”をカットして出力します。

設定されている数値をパック10進数に変換後、先頭に桁数いっぱいまで“0”を詰めて出力します。

XML文書では、先頭に“-”が付加されます。

XML文書では、明示的に小数点を表現します。

-:対応しない項目

表6.45 変換例

属性

ユーザ固有フォーマットの値

XML文書(DTD)の値

X

ABC□

<項目>ABC</項目>

K

富士通■■

<項目>富士通</項目>

B

(0000010011010010)

<項目>00000100 11010010</項目>

H

0x04D2

<項目>0x04D2</項目>

N

□1234

<項目>1234</項目>

-1234

<項目>-1234</項目>

12.34

<項目>12.34</項目>

9

01234

<項目>1234</項目>

0x3031323354

<項目>-1234</項目>

01234  「9.99タイプ」

<項目>12.34</項目>

C

□1,234

<項目>1,234</項目>

-1,234

<項目>-1,234</項目>

12.34

<項目>12.34</項目>

P

0x012343

<項目>1234</項目>

0x012345

<項目>-1234</項目>

0x012343  「9.99タイプ」

<項目>12.34</項目>

上記のユーザ固有フォーマットの値は、以下のように表記しています。

ユーザ固有フォーマットとXML文書(Schema)間の変換では、属性の性質を考慮して、変換できない属性の組合せがあります。属性の組合せごとの変換可否と変換ルールは以下のとおりです。

表6.46 ユーザ固有フォーマットからXML文書(Schema)への変換時の属性ごとの変換可否と変換ルール

属性

XML Schemaの属性(データ型)

変換可否

変換ルール

X

string
normalizedString
token

設定されている文字列の後方の空白をカットして出力します。
length制約が定義されている場合には、先頭からその長さ分だけを出力し、警告メッセージを出力します。

boolean

数値に変換して0または1の場合には、10進数表現にして出力します。
“TRUE”、“true”の文字列の場合は、“1”を出力します。“FALSE”、“false”の文字列の場合は、“0”を出力します。
それ以外の場合には、“0”を出力し、警告メッセージを出力します。

decimal
integer
nonPositiveInteger
duration
negativeInteger
long
int
short
byte
nonNegativeInteger
unsignedLong
unsignedInt
unsignedShort
unsignedByte
positiveInteger
float
double

符号、小数点、小数部を含め数値として適切な文字列の場合には、10進数表現にして出力します。不適切な文字を含む場合には、“0”を出力します。
totalDigits制約が定義されている場合には、数値の末尾からその長さ分だけを出力し、警告メッセージを出力します。
fractionDigits制約が定義されている場合には、小数部について小数点第一位からその長さ分だけ出力し、警告メッセージを出力します。

dateTime
time
date
gYearMonth
gYear
gMonthDay
gDay
gMonth

“-”、“/”を区切り文字とした日時表示の適切な文字列の場合には、出力先のXML Schemaデータ型の書式に変換して出力します。dateTime型に対して“2004-01-01”が入力された場合など、情報が欠落している場合には、“2004-01-01T00:00:00”などと“0”を補って出力し、警告メッセージを出力します。

hexBinary
base64Binary

入力文字列をそのまま出力し、警告メッセージを出力します。

anyURI
QName
NOTATION

入力文字列をそのまま出力し、警告メッセージを出力します。

language
NMTOKEN
NMTOKENS
Name
NCName
ID
IDREF
IDREFS
ENTITY
ENTITIES

入力文字列をそのまま出力し、警告メッセージを出力します。

K

string
normalizedString
token

設定されている文字列の後方の空白をカットして出力します。

length制約が定義されている場合には、先頭からその長さ分だけを出力し、警告メッセージを出力します。

boolean

×

  

decimal
integer
nonPositiveInteger
duration
negativeInteger
long
int
short
byte
nonNegativeInteger
unsignedLong
unsignedInt
unsignedShort
unsignedByte
positiveInteger
float
double

×

  

dateTime
time
date
gYearMonth
gYear
gMonthDay
gDay
gMonth

×

  

hexBinary
base64Binary

×

  

anyURI
QName
NOTATION

×

  

language
NMTOKEN
NMTOKENS
Name
NCName
ID
IDREF
IDREFS
ENTITY
ENTITIES

×

  

B
H

string
normalizedString
token

×

  

boolean

×

  

decimal
integer
nonPositiveInteger
duration
negativeInteger
long
int
short
byte
nonNegativeInteger
unsignedLong
unsignedInt
unsignedShort
unsignedByte
positiveInteger
float
double

×

  

dateTime
time
date
gYearMonth
gYear
gMonthDay
gDay
gMonth

×

  

hexBinary

○(B属性だけ)

入力文字列のバイトコードを16進数表現にして出力します。

base64Binary

×

  

anyURI
QName
NOTATION

×

  

language
NMTOKEN
NMTOKENS
Name
NCName
ID
IDREF
IDREFS
ENTITY
ENTITIES

×

  

N
9
C
P

string
normalizedString
token

設定されている数値を10進数に変換後、10進数表現にして出力します。

boolean

数値に変換して0または1の場合には、10進数表現にして出力します。
それ以外の場合には、“0”を出力し、警告メッセージを出力します。

decimal
integer
nonPositiveInteger
duration
negativeInteger
long
int
short
byte
nonNegativeInteger
unsignedLong
unsignedInt
unsignedShort
unsignedByte
positiveInteger
float
double

符号、小数点、小数部を含め数値として適切な文字列の場合には、10進数表現にして出力します。不適切な文字を含む場合には、“0”を出力します。
totalDigits制約が定義されている場合には、数値の末尾からその長さ分だけを出力し、警告メッセージを出力します。
fractionDigits制約が定義されている場合には、小数部について小数点第一位からその長さ分だけ出力し、警告メッセージを出力します。

dateTime
time
date
gYearMonth
gYear
gMonthDay
gDay
gMonth

×

  

hexBinary
base64Binary

×

  

anyURI
QName
NOTATION

×

  

language
NMTOKEN
NMTOKENS
Name
NCName
ID
IDREF
IDREFS
ENTITY
ENTITIES

×

  

○:変換可能な組合せ
×:変換不可能な組合せ(エラー)

表6.47 XML文書(Schema)からユーザ固有フォーマットへの変換時の属性ごとの変換可否と変換ルール

XML Schemaの属性(データ型)

属性

変換可否

変換ルール

string
normalizedString
token

X

入力文字列を先頭から定義されている長さ分だけ出力します。入力文字列の方が短い場合には、後方に桁数いっぱいまで空白を詰めて出力します。

K

入力文字列を先頭から定義されている長さ分だけ出力します。入力文字列の方が短い場合には、後方に桁数いっぱいまで全角空白を詰めて出力します。

B

×

  

H

入力文字列を16進数にして、末尾から定義されている長さ分だけ出力します。入力文字列の方が短い場合には、先頭に“00”を詰めて出力します。

N
9
C
P

入力文字列を、
N属性の場合は、そのまま
9属性の場合は、ゾーン10進数に変換してから、
C属性の場合は、3桁ごとにカンマを追加してから
P属性の場合は、パック10進数に変換してから、
それぞれ末尾から定義されている長さ分だけ出力します。入力文字列の方が短い場合には、
N属性、C属性の場合は、先頭に空白を
9属性、P属性の場合は、先頭に0を
詰めて出力します。

boolean

X

入力文字列が“0”または“1”の場合には、“0”または“1”を先頭に出力します。定義されている長さが2以上の場合には、後方に桁数いっぱいまで空白を詰めて出力します。

K

×

  

B

×

  

H

入力文字列が“0”または“1”の場合には、16進数にして末尾に出力します。定義されている長さが2以上の場合には、先頭に“00”を詰めて出力します。

N
9
C
P

入力文字列を、
N属性、C属性の場合は、そのまま
9属性の場合は、ゾーン10進数に変換してから、
P属性の場合は、パック10進数に変換してから、
それぞれ末尾から定義されている長さ分だけ出力します。定義されている長さが2以上の場合には、
N属性、C属性の場合は、先頭に空白を
9属性、P属性の場合は、先頭に0を
詰めて出力します。

decimal
integer
nonPositiveInteger
duration
negativeInteger
long
int
short
byte
nonNegativeInteger
unsignedLong
unsignedInt
unsignedShort
unsignedByte
positiveInteger
float
double

X

入力文字列を先頭から定義されている長さ分だけ出力します。入力文字列の方が短い場合には、後方に桁数いっぱいまで空白を詰めて出力します。

K

×

  

B

入力文字列を16進数にして、末尾から定義されている長さ分だけ出力します。入力文字列の方が短い場合には、先頭に“00”を詰めて出力します。

H

入力文字列を16進数にして、末尾から定義されている長さ分だけ出力します。入力文字列の方が短い場合には、先頭に“00”を詰めて出力します。

N
9
C
P

入力文字列を、
N属性の場合は、そのまま
9属性の場合は、ゾーン10進数に変換してから、
C属性の場合は、3桁ごとにカンマを追加してから
P属性の場合は、パック10進数に変換してから、
それぞれ末尾から定義されている長さ分だけ出力します。入力文字列の方が短い場合には、
N属性、C属性の場合は、先頭に空白を
9属性、P属性の場合は、先頭に0を
詰めて出力します。

dateTime
time
date
gYearMonth
gYear
gMonthDay
gDay
gMonth

X

入力文字列を先頭から定義されている長さ分だけ出力します。入力文字列の方が短い場合には、後方に桁数いっぱいまで空白を詰めて出力します。

K

×

  

B

×

  

H

×

  

N
9
C
P

入力文字列を先頭から定義されている長さ分だけ出力します。入力文字列の方が短い場合には、後方に桁数いっぱいまで空白を詰めて出力します。

hexBinary

X

×

  

K

×

  

B

×

  

H

入力文字列を16進数にして、末尾から定義されている長さ分だけ出力します。入力文字列の方が短い場合には、先頭に“00”を詰めて出力します。

N
9
C
P

×

  

base64Binary

X

×

  

K

×

  

B

×

  

H

×

  

N
9
C
P

×

  

anyURI
QName
NOTATION

X

入力文字列を先頭から定義されている長さ分だけ出力します。入力文字列の方が短い場合には、後方に桁数いっぱいまで空白を詰めて出力します。

K

×

  

B

×

  

H

×

  

N
9
C
P

×

  

language
NMTOKEN
NMTOKENS
Name
NCName
ID
IDREF
IDREFS
ENTITY
ENTITIES

X

入力文字列を先頭から定義されている長さ分だけ出力します。入力文字列の方が短い場合には、後方に桁数いっぱいまで空白を詰めて出力します。

K

×

  

B

×

  

H

×

  

N
9
C
P

×

  

○:変換可能な組合せ
×:変換不可能な組合せ(エラー)