次の方法で共有

union型を定義したXMLをExcel2010で開くとインポートエラーが表示される

Anonymous
2012-02-28T12:22:32+00:00

XSDファイルでxs:union型を定義したXMLファイルをExcel2010で「XMLテーブルとして開く」とインポートエラーメッセージが表示されます。

サンプルを末尾に記載しています。

XMLファイルのvalue1、value2には数値もしくは"ND"の文字列が入ります。

数値のときはdouble型として、"ND"のときは文字列としてインポートしたいので、

XSDファイルで以下のようにxs:stringとxs:doubleをメンバとして持つunion型を定義しました。

    <xs:simpleType name="ST_value1">

        <xs:union memberTypes="xs:string xs:double"/>

    </xs:simpleType>

このXMLファイルをExcel2010で「XMLテーブルとして開く」と

「次のファイルをインポート中にエラーが発生しました:」

「一部のデータはテキストとしてインポートされました」

云々のエラーメッセージダイアログが表示されます。

意図どおりに数値と"ND"文字がインポートできる上で、

このエラーメッセージダイアログが表示されないようにする方法はないでしょうか?

ちなみにサンプルではインポート自体は意図通りにできているのですが

(数値は数値、"ND"は文字列としてインポートされている)、

これはXSDがちゃんと機能したからではなく、エラーメッセージに記載された

「一部のデータはテキストとしてインポートされました」

の結果のような気がします。

基本double型でインポートを行い、"ND"にぶつかったときはexcelが気を利かせて文字列としてインポートした、

みたいな感じではないかと考えています。

以下はサンプルです。

■sample.xmlファイル

<?xml version="1.0" encoding="UTF-8"?>

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="sample.xsd">

    <test>

        <value1 unit="g">0</value1>

        <value2 unit="g">1.2E01</value2>

    </test>

    <test>

        <value1 unit="g">10</value1>

        <value2 unit="g">0</value2>

    </test>

    <test>

        <value1 unit="g">10.5</value1>

        <value2 unit="g">5</value2>

    </test>

    <test>

        <value1 unit="g">9.0E-02</value1>

        <value2 unit="g">5.5</value2>

    </test>

    <test>

        <value1 unit="g">ND</value1>

        <value2 unit="g">ND</value2>

    </test>

</root>

■sample.xsdファイル

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:simpleType name="ST_value1">

        <xs:union memberTypes="xs:string xs:double"/>

    </xs:simpleType>

    <xs:simpleType name="ST_value2">

        <xs:union memberTypes="xs:string xs:double"/>

    </xs:simpleType>

    <xs:element name="value2">

        <xs:complexType>

            <xs:simpleContent>

                <xs:extension base="ST_value2">

                    <xs:attribute name="unit" use="required">

                        <xs:simpleType>

                            <xs:restriction base="xs:string">

                                <xs:enumeration value="g"/>

                            </xs:restriction>

                        </xs:simpleType>

                    </xs:attribute>

                </xs:extension>

            </xs:simpleContent>

        </xs:complexType>

    </xs:element>

    <xs:element name="value1">

        <xs:complexType>

            <xs:simpleContent>

                <xs:extension base="ST_value1">

                    <xs:attribute name="unit" use="required">

                        <xs:simpleType>

                            <xs:restriction base="xs:string">

                                <xs:enumeration value="g"/>

                            </xs:restriction>

                        </xs:simpleType>

                    </xs:attribute>

                </xs:extension>

            </xs:simpleContent>

        </xs:complexType>

    </xs:element>

    <xs:element name="test">

        <xs:complexType>

            <xs:sequence>

                <xs:element ref="value1"/>

                <xs:element ref="value2"/>

            </xs:sequence>

        </xs:complexType>

    </xs:element>

    <xs:element name="root">

        <xs:complexType>

            <xs:sequence>

                <xs:element ref="test" maxOccurs="unbounded"/>

            </xs:sequence>

        </xs:complexType>

    </xs:element>

</xs:schema>

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

1 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2012-02-29T09:06:40+00:00

    VIC2012 さん、こんにちは。

    Answers への投稿、ありがとうございます。

    XML ファイルをテーブルとして開いた際に出るインポート エラーを表示しないようにしたい ということですね。

    試しに、記載していただいたサンプル ファイルを Excel 2010 で [XML テーブルとして開く] を試してみたところ、同じ結果となりました。

    確かにインポートはできたのですが、「一部のデータはテキストとしてインポートされました」と表示されますね。

    また、同様の事例がないか情報を探してみましたが、参考になりそうなものは見つかりませんでした…

    XML の構造に関する問題については、Answers ではなかなか情報が得にくいかもしれませんが、もしこの件について何かご存知の方がいましたら、ぜひ投稿をお願いします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません