2014-02-24 63 views
1

我正在嘗試使用Smooks(1.5版本)將EDI與XML映射。我有可能會出現幾次5段,我想將它們放到組,但有些錯誤崛起:如何在Sookooks中正確嵌套segmentGrop標記

Caused by: org.xml.sax.SAXParseException; cvc-complex-type.2.4.a: 
Invalid content was found starting with element 'medi:segmentGroup'. 
One of '{"http://www.milyn.org/schema/edi-message-mapping-1.0.xsd":segment}' is expected. 

我的映射:

<?xml version="1.0" encoding="UTF-8"?> 
<medi:edimap xmlns:medi="http://www.milyn.org/schema/edi-message-mapping-1.0.xsd"> 

    <medi:description name="DVD Order" version="1.0" /> 

    <medi:delimiters segment="'!$" field="+" component=":" sub-component="~" /> 
    <medi:segments xmltag="Order"> 




     <medi:segment segcode="BGM" xmltag="header" > 
      <medi:field xmltag="order-id" /> 
      <medi:field xmltag="status-code" /> 
      <medi:field xmltag="net-amount" /> 
     </medi:segment> 



     <medi:segment segcode="DTM" xmltag="customer-details"> 
      <medi:field xmltag="abc" > 
       <medi:component xmltag="1"/> 
       <medi:component xmltag="2"/> 
       <medi:component xmltag="3"/>  
      </medi:field> 
     </medi:segment> 
     <medi:segment segcode="NAD" xmltag="customer-details" maxOccurs="-1"> 
      <medi:field xmltag="asd"></medi:field> 
      <medi:field xmltag="abc" > 
       <medi:component xmltag="1"/> 
       <medi:component xmltag="2"/> 
       <medi:component xmltag="3"/>  
      </medi:field> 
     </medi:segment> 

     <medi:segment xmltag="CURRENCY" segcode="CUX"> 
      <medi:field xmltag="1st"> 
       <medi:component xmltag="nth"/> 
       <medi:component xmltag="currency"/> 
      </medi:field> 
      <medi:field xmltag="number"/> 
     </medi:segment> 

     **<medi:segmentGroup>** 
      <medi:segment xmltag="Linia" segcode="PIA"> 
       <medi:field xmltag="dig" /> 
       <medi:field xmltag="item"/> 
       <medi:field xmltag="c"> 
        <medi:component xmltag="1"/> 
        <medi:component xmltag="2"/> 
        <medi:component xmltag="3"/> 
        <medi:component xmltag="4"/> 
       </medi:field> 
      </medi:segment> 

      <medi:segment xmltag="Linia2" segcode="PIA"> 
       <medi:field xmltag="item"/> 
       <medi:field xmltag="c"> 
        <medi:component xmltag="1"/> 
        <medi:component xmltag="2"/> 
        <medi:component xmltag="3"/> 
        <medi:component xmltag="4"/> 
       </medi:field> 
      </medi:segment> 

      <medi:segment xmltag="prim" segcode="PRI"> 
       <medi:field xmltag="c"> 
        <medi:component xmltag="1"/> 
        <medi:component xmltag="2"/> 
        <medi:component xmltag="3"/> 
        <medi:component xmltag="4"/> 
        <medi:component xmltag="5"/> 
        <medi:component xmltag="6"/> 
       </medi:field> 
      </medi:segment> 
      <medi:segment xmltag="SCC" segcode="SCC" > 
       <medi:field xmltag="1"/> 
      </medi:segment> 
      <medi:segment xmltag="QTY" segcode="QTY" > 
       <medi:field xmltag="qty"> 
        <medi:component xmltag="1"/> 
        <medi:component xmltag="2"/> 
        <medi:component xmltag="3"/> 
       </medi:field> 
      </medi:segment> 
      <medi:segment xmltag="DTM" segcode="DTM"> 
       <medi:field xmltag="dtm"> 
        <medi:component xmltag="1"/> 
        <medi:component xmltag="2"/> 
        <medi:component xmltag="3"/> 
       </medi:field> 
      </medi:segment> 
     **</medi:segmentGroup>** 
    </medi:segments> 
</medi:edimap> 

我讀smooks.org和實例文檔有看起來相似。也許有一些進口或POM文件有問題?請幫助我解決這個問題。

回答

1

我自己做了。 edi-message-mapping的版本存在問題。版本1.0不支持segmentGroups。應該看起來像:

<medi:edimap xmlns:medi="http://www.milyn.org/schema/edi-message-mapping-1.5.xsd">