# Record Pipeline: Record Structure

### Daniel Parker

This article describes the structure of the records that flow through a ServingXML record stream.

- ServingXML: Pipeline Language
- Record Pipelines: Flat File to XML
- ServingXML: Inversion of Control Container

This article discusses the structure of records.

## The Record

ServingXML supports the notion of records that have fields, possibly multi-valued, and nested subrecords, possibly repeating.

A record may be represented in BNF as follows:

    Record ::= name (Field+) (Record*) |
      name (Field*) (Record+)

    Field:= name (value*)

Here is a sample XML representation of a record.

    <Employee>
      <Employee-No>0001</Employee-No>
      <Employee-Name>Matthew</Employee-Name>
      <Children>Joe</Children>
      <Children>Julia</Children>
      <Children>Dave</Children>
    </Employee>

The record is of type "Employee" and has three fields named `Employee-No` , `Employee-Name` and `Children` . `Children` is a multivalued field.