2016-08-09 17 views
0

を期待されていない、ここで他の質問を読んで、しかし、地球上で、私はXMLに複数の要素を追加する必要がありますどのようhttp://www.stormware.cz/schema/version_2/data.xsdXSDエラー:XML要素が

に対して有効ではありません次のXMLである理由を把握することはできません。 schemaValidate()応答:

DOMDocument::schemaValidate(): Element '{ http://www.stormware.cz/schema/version_2/stock.xsd }stockHeader': This element is not expected. Expected is one of ( { http://www.stormware.cz/schema/version_2/stock.xsd }stockDetail, { http://www.stormware.cz/schema/version_2/stock.xsd }stockAttach, { http://www.stormware.cz/schema/version_2/stock.xsd }stockSerialNumber, { http://www.stormware.cz/schema/version_2/stock.xsd }stockPriceItem, { http://www.stormware.cz/schema/version_2/stock.xsd }print).

XML

<?xml version="1.0" encoding="Windows-1250"?> 
<dat:dataPack xmlns:dat="http://www.stormware.cz/schema/version_2/data.xsd" 
xmlns:stk="http://www.stormware.cz/schema/version_2/stock.xsd" 
xmlns:typ="http://www.stormware.cz/schema/version_2/type.xsd" 
id="Sklad" ico="02021123" 
application="Eshop" version="2.0" note="Import zasob."> 
    <dat:dataPackItem id="ZAS20160809" version="2.0"> 
     <stk:stock version="2.0"> 

       <stk:stockHeader> 
        <stk:stockType>card</stk:stockType> 
        <stk:code>C Set-G/Fe-K</stk:code> 
       </stk:stockHeader> 
       <stk:stockHeader> 
        <stk:stockType>card</stk:stockType> 
        <stk:code>C Set-G/Zn-K</stk:code> 
       </stk:stockHeader> 
     </stk:stock> 
    </dat:dataPackItem> 
</dat:dataPack> 

あなたのヘルプは本当にいただければ幸いです。 stockHeaderの0または1の発生が存在することができるように、1の値に

<xsd:element 
    name="stockHeader" 
    type="stk:stockHeaderType" 
    minOccurs="0"/> 

のmaxOccursのデフォルトの不在:

答えて

1

に変更する必要があります。 Ghislain Fournyが述べたように、

<stk:stockHeader>

は1つしか発生しません。複数の株式の更新について

は、例えば

<dat:dataPackItem >

を使用します。

<dat:dataPackItem id="ZAS001" version="2.0"> 
    <stk:stock version="2.0"> 
    <stk:actionType> 
     <stk:add/> 
    </stk:actionType> 
    <stk:stockHeader> 
    ... 
    ... 
    </stk:stockHeader>  
    </stk:stock> 
</dat:dataPackItem> 
<dat:dataPackItem id="ZAS002" version="2.0"> 
    <stk:stock version="2.0"> 
    <stk:actionType> 
     <stk:add/> 
    </stk:actionType> 
    <stk:stockHeader> 
    ... 
    ... 
    </stk:stockHeader>  
    </stk:stock> 
</dat:dataPackItem> 
1

stockHeaderはそうようstock.xsdで宣言されます。

より多くのを許可するように、私はあなたが複数の在庫の更新を追加しようとしていると思います

<xsd:element 
    name="stockHeader" 
    type="stk:stockHeaderType" 
    minOccurs="0" 
    maxOccurs="unbounded"/> 
関連する問題