首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用DFDL逐页解析输入文件

用DFDL逐页解析输入文件
EN

Stack Overflow用户
提问于 2015-06-09 22:39:08
回答 1查看 350关注 0票数 0

我有一个非常简单的基于行的文档,其中每一行包含一条记录。我希望有一个DFDL来将其解析成包含固定行数的块(例如,每个块有3条记录)。

原始文件:

代码语言:javascript
复制
record1
record2
record3
record4
record5
record6
record7

在DFDL解析之后:

代码语言:javascript
复制
1) [record1, record2, record3]
2) [record4, record5, record6]
3) [record7]

我目前可以使用下面的DFDL一次获取所有记录,但当文档变得更大时会产生一个严重的问题,这就是为什么我想逐页获取这些记录的原因。有可能做到这一点吗?有谁知道这是怎么做的吗?

代码语言:javascript
复制
<?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>

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-10-09 23:26:16

代码语言:javascript
复制
<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>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30735258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档