2015-06-09 6 views
0

У меня очень простой документ на основе строк, в котором каждая строка содержит запись. Я хочу иметь DFDL, который анализирует его на куски, содержащие фиксированное количество строк (скажем, например, 3 записи на каждом фрагменте).Разбор входного файла со страницей DFDL за страницей

Оригинал Файл:

record1 
record2 
record3 
record4 
record5 
record6 
record7 

После DFDL Parse:

1) [record1, record2, record3] 
2) [record4, record5, record6] 
3) [record7] 

Я в настоящее время в состоянии получить все записи сразу со следующим DFDL, но это создает серьезную проблему, когда размер документ становится больше, поэтому я хочу, чтобы эти записи за страницей. Можно ли сделать это? Кто-нибудь знает, как это можно сделать?

<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:dfdl="http://www.ogf.org/dfdl/dfdl-1.0/" xmlns:ibmDfdlExtn="http://www.ibm.com/dfdl/extensions" xmlns:ibmSchExtn="http://www.ibm.com/schema/extensions" xmlns:recSepFieldsFmt="http://www.ibm.com/dfdl/RecordSeparatedFieldFormat" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     <xsd:import namespace="http://www.ibm.com/dfdl/RecordSeparatedFieldFormat" schemaLocation="../IBMdefined/RecordSeparatedFieldFormat.xsd"/> 
    <xsd:annotation> 
     <xsd:appinfo source="http://www.ogf.org/dfdl/"> 
      <dfdl:format byteOrder="{$dfdl:byteOrder}" encoding="{$dfdl:encoding}" escapeSchemeRef="recSepFieldsFmt:RecordEscapeScheme" occursCountKind="fixed" ref="recSepFieldsFmt:RecordSeparatedFieldsFormat"/> 
     </xsd:appinfo> 
    </xsd:annotation> 

    <xsd:element dfdl:encoding="{$dfdl:encoding}" ibmSchExtn:docRoot="true" name="MM1"> 
     <xsd:complexType> 
      <xsd:sequence dfdl:separator="%CR;%LF;%WSP*;" dfdl:terminator=""> 
                                                                    <xsd:element dfdl:alignment="1" dfdl:escapeSchemeRef="" dfdl:lengthKind="delimited" dfdl:occursCountKind="implicit" maxOccurs="unbounded" name="body" type="xsd:string"> 
       </xsd:element> 
      </xsd:sequence> 
     </xsd:complexType> 
    </xsd:element> 

</xsd:schema> 

Благодаря

ответ

0

<xsd:element ibmSchExtn:docRoot="true" name="MM1"> 
    <xsd:complexType> 
     <xsd:sequence dfdl:separator="" dfdl:terminator=""> 
      <xsd:element dfdl:occursCountKind="implicit" maxOccurs="unbounded" name="Chunk"> 
      <xsd:complexType> 
       <xsd:sequence dfdl:separator="%CR;%LF;%WSP*;" dfdl:terminator=""> 
        <xsd:element dfdl:lengthKind="delimited" dfdl:occursCountKind="implicit" maxOccurs="3" name="Body" type="xsd:string"> 
        </xsd:element> 
       </xsd:sequence> 
       </xsd:complexType> 
      </xsd:element> 
     </xsd:sequence> 
    </xsd:complexType> 
</xsd:element> 

Смежные вопросы