1

この Ebay の XML ファイル構造を理解できる人はいますか?

http://pages.ebay.co.uk/help/sell/export-structure.html

これが有効なスキーマであると認識できず、XML がどのように構造化されるかを理解するのに苦労しています。誰でもそれを理解できますか?

これに基づいてインポート スクリプトを作成する必要がありますが、どこからでも適切な XML ファイルのサンプルを取得できません。

どうもありがとう

編集

それがDTDスキーマであることがわかりました。したがって、何らかの方法で xsd に変換する必要があります。

4

2 に答える 2

1

あなたのリンクが指している ebay の DTD は無効なので、いくつか修正する必要がありました。

問題を引き起こす可能性のある 1 つの修正は、Published要素に対して 2 つの宣言があったことです。timestamp宣言されていないため、子を持つ宣言を削除しましたtimestamp

修正された DTD、結果の XSD、およびサンプル インスタンスを以下に示します。

XSD とサンプル インスタンスは、oXygen XML エディター(これを強くお勧めします) で生成されました。

これで少なくとも始められるはずです...

元の DTD (固定)

<!ELEMENT       ebay (StoreExport)>

<!ELEMENT       StoreExport (Settings, Products)>


<!ELEMENT   Settings (Published)>

<!-- The timestamp reflects when the Items have last changed. -->
<!ELEMENT       Published     EMPTY>
<!ATTLIST       Published
                timestamp     CDATA #REQUIRED>

<!ELEMENT       Products     (Product*)>


<!ELEMENT       Product      (Description,
                                Caption,
                                Url,
                                EndTime,
                                Category,
                                EndNodeCategory,
                                BuyItNow?,
                                ListingFormat,
                                Orderable,
                                SiteCurrency,
                                Pricing,
                                Availability?,
                                Quantity,
                                GalleryPicture?,
                                Site,
                                Country)>
<!ATTLIST       Product
        Id            CDATA        #REQUIRED>


<!ELEMENT   Description      (#PCDATA)>
<!ELEMENT   Caption          (#PCDATA)>
<!ELEMENT   Url              (#PCDATA)>
<!ELEMENT   EndTime          (#PCDATA)>
<!ELEMENT   Category         (#PCDATA)>
<!ELEMENT   EndNodeCategory  (#PCDATA)>
<!ELEMENT   BuyItNow         (#PCDATA)>
<!ELEMENT   ListingFormat    (#PCDATA)>
<!ELEMENT   Orderable        (#PCDATA)>
<!ELEMENT   SiteCurrency     (#PCDATA)>
<!ELEMENT   Pricing          (BasePrice,BuyItNowPrice?,ShippingCost?)>
<!ELEMENT   Availability     (#PCDATA)>
<!ELEMENT   Quantity         (#PCDATA)>
<!ELEMENT   GalleryPicture   (#PCDATA)>
<!ELEMENT   Site             (#PCDATA)>
<!ELEMENT   Country          (#PCDATA)>

<!ELEMENT   BasePrice        (#PCDATA)>
<!ELEMENT   BuyItNowPrice    (#PCDATA)>
<!ELEMENT   ShippingCost     (#PCDATA)>

XSD (ebay.xsd)

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="ebay" type="StoreExport"/>
    <xs:complexType name="StoreExport">
        <xs:sequence>
            <xs:element ref="StoreExport"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="StoreExport">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Settings"/>
                <xs:element ref="Products"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Settings" type="Published"/>
    <!-- The timestamp reflects when the Items have last changed. -->
    <xs:complexType name="Published">
        <xs:sequence>
            <xs:element ref="Published"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="Published">
        <xs:complexType>
            <xs:attributeGroup ref="attlist.Published"/>
        </xs:complexType>
    </xs:element>
    <xs:attributeGroup name="attlist.Published">
        <xs:attribute name="timestamp" use="required"/>
    </xs:attributeGroup>
    <xs:element name="Products">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="Product"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Product">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Description"/>
                <xs:element ref="Caption"/>
                <xs:element ref="Url"/>
                <xs:element ref="EndTime"/>
                <xs:element ref="Category"/>
                <xs:element ref="EndNodeCategory"/>
                <xs:element minOccurs="0" ref="BuyItNow"/>
                <xs:element ref="ListingFormat"/>
                <xs:element ref="Orderable"/>
                <xs:element ref="SiteCurrency"/>
                <xs:element ref="Pricing"/>
                <xs:element minOccurs="0" ref="Availability"/>
                <xs:element ref="Quantity"/>
                <xs:element minOccurs="0" ref="GalleryPicture"/>
                <xs:element ref="Site"/>
                <xs:element ref="Country"/>
            </xs:sequence>
            <xs:attributeGroup ref="attlist.Product"/>
        </xs:complexType>
    </xs:element>
    <xs:attributeGroup name="attlist.Product">
        <xs:attribute name="Id" use="required"/>
    </xs:attributeGroup>
    <xs:element name="Description" type="xs:string"/>
    <xs:element name="Caption" type="xs:string"/>
    <xs:element name="Url" type="xs:string"/>
    <xs:element name="EndTime" type="xs:string"/>
    <xs:element name="Category" type="xs:string"/>
    <xs:element name="EndNodeCategory" type="xs:string"/>
    <xs:element name="BuyItNow" type="xs:string"/>
    <xs:element name="ListingFormat" type="xs:string"/>
    <xs:element name="Orderable" type="xs:string"/>
    <xs:element name="SiteCurrency" type="xs:string"/>
    <xs:element name="Pricing">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="BasePrice"/>
                <xs:element minOccurs="0" ref="BuyItNowPrice"/>
                <xs:element minOccurs="0" ref="ShippingCost"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Availability" type="xs:string"/>
    <xs:element name="Quantity" type="xs:string"/>
    <xs:element name="GalleryPicture" type="xs:string"/>
    <xs:element name="Site" type="xs:string"/>
    <xs:element name="Country" type="xs:string"/>
    <xs:element name="BasePrice" type="xs:string"/>
    <xs:element name="BuyItNowPrice" type="xs:string"/>
    <xs:element name="ShippingCost" type="xs:string"/>
</xs:schema>

サンプル XML インスタンス

<ebay xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="file:/C:/ebay.xsd">
    <StoreExport>
        <Settings>
            <Published timestamp="timestamp0"/>
        </Settings>
        <Products>
            <Product Id="Id0">
                <Description>Description0</Description>
                <Caption>Caption0</Caption>
                <Url>Url0</Url>
                <EndTime>EndTime0</EndTime>
                <Category>Category0</Category>
                <EndNodeCategory>EndNodeCategory0</EndNodeCategory>
                <BuyItNow>BuyItNow0</BuyItNow>
                <ListingFormat>ListingFormat0</ListingFormat>
                <Orderable>Orderable0</Orderable>
                <SiteCurrency>SiteCurrency0</SiteCurrency>
                <Pricing>
                    <BasePrice>BasePrice0</BasePrice>
                    <BuyItNowPrice>BuyItNowPrice0</BuyItNowPrice>
                    <ShippingCost>ShippingCost0</ShippingCost>
                </Pricing>
                <Availability>Availability0</Availability>
                <Quantity>Quantity0</Quantity>
                <GalleryPicture>GalleryPicture0</GalleryPicture>
                <Site>Site0</Site>
                <Country>Country0</Country>
            </Product>
            <Product Id="Id1">
                <Description>Description1</Description>
                <Caption>Caption1</Caption>
                <Url>Url1</Url>
                <EndTime>EndTime1</EndTime>
                <Category>Category1</Category>
                <EndNodeCategory>EndNodeCategory1</EndNodeCategory>
                <BuyItNow>BuyItNow1</BuyItNow>
                <ListingFormat>ListingFormat1</ListingFormat>
                <Orderable>Orderable1</Orderable>
                <SiteCurrency>SiteCurrency1</SiteCurrency>
                <Pricing>
                    <BasePrice>BasePrice1</BasePrice>
                    <BuyItNowPrice>BuyItNowPrice1</BuyItNowPrice>
                    <ShippingCost>ShippingCost1</ShippingCost>
                </Pricing>
                <Availability>Availability1</Availability>
                <Quantity>Quantity1</Quantity>
                <GalleryPicture>GalleryPicture1</GalleryPicture>
                <Site>Site1</Site>
                <Country>Country1</Country>
            </Product>
        </Products>
    </StoreExport>
</ebay>
于 2012-11-23T18:27:19.730 に答える
0

James Clark のtrangは、マルチフォーマット スキーマ コンバーターです。すでに述べたように、eBay の DTD には修正が必要です。「Published」の 2 つの要素宣言です。'Published' の最初の宣言が適用される場合、'timestamp' の要素宣言はありません。'PCDATA' 宣言された値などはありません (おそらく 'CDATA' である必要があります)。'#CDATA' 宣言されたコンテンツ ('#PCDATA' である必要があります) などはありません -- コンバーターを適用する前に。

于 2012-12-20T13:43:51.887 に答える