2

古い既存の XML フィードのサポートに取り組むというタスクが与えられました。新しいリクエストは、XML フィードに新しい属性を追加しています。新しい属性「CountryOfOrigin」を XML に追加してからスキーマに追加すると、検証に失敗します。XML とスキーマから新しい属性を削除すると、問題なく動作します。これは新しい属性を持つ新しい XML で、その下にスキーマがあります

XML

<TagOrder>
<Tag>
<Message>1</Message>
<TagType>R</TagType>
<ItemNumber>190</ItemNumber>
<ItemXRef>E039</ItemXRef>
<VendorXRef>E39H</VendorXRef>
<Lvl02Desc>NEAR</Lvl02Desc>
<Lvl03Desc>NUG</Lvl03Desc>
<Lvl04Desc>EARRING</Lvl04Desc>
<Lvl05Desc>14KT</Lvl05Desc>
<Lvl06Desc></Lvl06Desc>
<VendorShortName>TEST</VendorShortName>
<SRP>1325.00</SRP>
<RetailPrice>1325.00</RetailPrice>
<CountryOfOrigin>TEST</CountryOfOrigin>
</Tag>
</TagOrder>

スキーマ

<schema id="Data2-Tag" xmlns="http://www.w3.org/2001/XMLSchema">`
<element name="Transaction">
    <complexType>
        <sequence>

            <element name="TransactionId" minOccurs="1" maxOccurs="1">
                <simpleType>
                    <restriction base="long">
                    </restriction>
                </simpleType>
            </element>

            <element name="ClientId" minOccurs="1" maxOccurs="1">
                <simpleType>
                    <restriction base="long">
                    </restriction>
                </simpleType>
            </element>

            <element name="TagOrder" minOccurs="1" maxOccurs="unbounded">
                <complexType>
                    <sequence>

                        <element name="Tag" minOccurs="1" maxOccurs="unbounded">
                            <complexType>
                                <sequence>

                                    <element name="Message" minOccurs="1" maxOccurs="1">
                                        <simpleType>
                                            <restriction base="int">
                                                <minExclusive value="0"/>
                                            </restriction>
                                        </simpleType>
                                    </element>

                                    <element name="TagType" minOccurs="1" maxOccurs="1">
                                        <simpleType>
                                            <restriction base="string">
                                                <maxLength value="1"/>
                                            </restriction>
                                        </simpleType>
                                    </element>

                                    <element name="ItemNumber" minOccurs="1" maxOccurs="1">
                                        <simpleType>
                                            <restriction base="string">
                                                <maxLength value="50"/>
                                            </restriction>
                                        </simpleType>
                                    </element>

                                    <element name="ItemXRef" minOccurs="1" maxOccurs="1">
                                        <simpleType>
                                            <restriction base="string">
                                                <maxLength value="20" />
                                            </restriction>
                                        </simpleType>
                                    </element>

                                    <element name="VendorXRef" minOccurs="1" maxOccurs="1">
                                        <simpleType>
                                            <restriction base="string">
                                                <maxLength value="20" />
                                            </restriction>
                                        </simpleType>
                                    </element>

                                    <element name="Lvl02Desc" minOccurs="1" maxOccurs="1">
                                        <simpleType>
                                            <restriction base="string">
                                                <maxLength value="4" /> 
                                            </restriction>
                                        </simpleType>
                                    </element>

                                    <element name="Lvl03Desc" minOccurs="1" maxOccurs="1">
                                        <simpleType>
                                            <restriction base="string">
                                                <maxLength value="3" />
                                            </restriction>
                                        </simpleType>
                                    </element>

                                    <element name="Lvl04Desc" minOccurs="1" maxOccurs="1">
                                        <simpleType>
                                            <restriction base="string">
                                                <maxLength value="9" />
                                            </restriction>
                                        </simpleType>
                                    </element>

                                    <element name="Lvl05Desc" minOccurs="1" maxOccurs="1">
                                        <simpleType>
                                            <restriction base="string">
                                                <maxLength value="8" />
                                            </restriction>
                                        </simpleType>
                                    </element>

                                    <element name="Lvl06Desc" minOccurs="1" maxOccurs="1">
                                        <simpleType>
                                            <restriction base="string">
                                                <maxLength value="3" />
                                            </restriction>
                                        </simpleType>
                                    </element>

                                    <element name="Lab" minOccurs="0" maxOccurs="1">
                                        <simpleType>
                                            <restriction base="string">
                                                <maxLength value="20"></maxLength>
                                                <enumeration value="Cultured"/>
                                                <enumeration value="Lab Created"/>
                                            </restriction>
                                        </simpleType>
                                    </element>


                                    <element name="VendorShortName" minOccurs="1" maxOccurs="1">
                                        <simpleType>
                                            <restriction base="string">
                                                <maxLength value="3"/>
                                            </restriction>
                                        </simpleType>
                                    </element>

                                    <element name="SRP" minOccurs="1" maxOccurs="1">
                                        <simpleType>
                                            <restriction base="decimal">
                                                <minInclusive value="0" />
                                                <fractionDigits value="2"/>
                                            </restriction>
                                        </simpleType>
                                    </element>

                                    <element name="RetailPrice" minOccurs="1" maxOccurs="1">
                                        <simpleType>
                                            <restriction base="decimal">
                                                <minInclusive value="0" />
                                                <fractionDigits value="2"/>
                                            </restriction>
                                        </simpleType>
                                    </element>

                                    <element name="CountryOfOrigin" minOccurs="1" maxOccurs="1">
                                        <simpleType>
                                            <restriction base="string">
                                                <maxLength value="100"/>
                                            </restriction>
                                        </simpleType>
                                    </element>

                                </sequence>
                            </complexType>
                        </element>

                    </sequence>
                </complexType>
            </element>

        </sequence>
    </complexType>
</element>

両方から「CountryOfOrigin」を削除すると、問題なく動作し、検証されます。XML がスキーマに対して検証されない理由がわかる人はいますか?

ありがとう^.^

4

1 に答える 1

0

以下の XML を検証できました。

<?xml version="1.0" encoding="UTF-8"?>
<Transaction>
    <TransactionId>123456789123</TransactionId>
    <ClientId>987654321</ClientId>
    <TagOrder>
        <Tag>
            <Message>1</Message>
            <TagType>R</TagType>
            <ItemNumber>190</ItemNumber>
            <ItemXRef>E039</ItemXRef>
            <VendorXRef>E39H</VendorXRef>
            <Lvl02Desc>NEAR</Lvl02Desc>
            <Lvl03Desc>NUG</Lvl03Desc>
            <Lvl04Desc>EARRING</Lvl04Desc>
            <Lvl05Desc>14KT</Lvl05Desc>
            <Lvl06Desc></Lvl06Desc>
            <VendorShortName>TES</VendorShortName>
            <SRP>1325.00</SRP>
            <RetailPrice>1325.00</RetailPrice>
            <CountryOfOrigin>TEST</CountryOfOrigin>
        </Tag>
    </TagOrder>
</Transaction>
于 2013-01-29T19:36:35.033 に答える