Hi Folks,

Dinner time!

My input contains a fixed-length (9) field. The field contains data about 
dinner time. Dinner time can be expressed using a word, like this:

.../ASAP     /...

Or, it can contain a month-day-hour-minute-timezone value, like this:

.../09190935Z/...

My DFDL schema works fine if I have this choice:

    <xs:element name="DinnerTime"
                type="DinnerTime-complexType"
                dfdl:lengthKind="explicit"
                dfdl:length="9" />

    <xs:complexType name="DinnerTime-complexType">
        <xs:choice>
            <xs:element ref="Word" />
            <xs:element ref="MonthDayTime" />
        </xs:choice>
    </xs:complexType>

But there is actually a third way to express dinner time: 
day-hour-minute-timezone:

    <xs:complexType name="DinnerTime-complexType">
        <xs:choice>
            <xs:element ref="Word" />
            <xs:element ref="MonthDayTime" />
            <xs:element ref="DayTime" />
        </xs:choice>
    </xs:complexType>

As soon as I add that third way, I start getting a ton of warning messages:

[warn] Schema Definition Warning: DFDL property was ignored: 
textStandardBase="10"
[warn] Schema Definition Warning: DFDL property was ignored: 
textNumberPattern="00"
[warn] Schema Definition Warning: DFDL property was ignored: 
textNumberRounding="pattern"
[warn] Schema Definition Warning: DFDL property was ignored: 
textNumberRep="standard"
[warn] Schema Definition Warning: DFDL property was ignored: 
textNumberCheckPolicy="strict"

Why am I getting all those warnings?

Here is my DFDL schema:

<xs:schema xmlns:dfdl=http://www.ogf.org/dfdl/dfdl-1.0/
           xmlns:xs=http://www.w3.org/2001/XMLSchema>

    <xs:include schemaLocation="../default-dfdl-properties/defaults.dfdl.xsd" />

    <xs:annotation>
        <xs:appinfo source=http://www.ogf.org/dfdl/>
            <dfdl:format ref="default-dfdl-properties" />
        </xs:appinfo>
    </xs:annotation>

    <xs:element name="Test">
        <xs:complexType>
            <xs:sequence dfdl:separator="%NL;" dfdl:separatorPosition="infix">
                <xs:element name="Line" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence dfdl:separator="/" 
dfdl:separatorPosition="infix">
                            <xs:element name="A" type="xs:string" />
                            <xs:element ref="DinnerTime" />
                            <xs:element name="B" type="xs:string" />
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="DinnerTime"
                type="DinnerTime-complexType"
                dfdl:lengthKind="explicit"
                dfdl:length="9" />

    <xs:complexType name="DinnerTime-complexType">
        <xs:choice>
            <xs:element ref="Word" />
            <xs:element ref="MonthDayTime" />
            <xs:element ref="DayTime" />
        </xs:choice>
    </xs:complexType>

    <xs:element name="Word"
                type="Word_simpleType"
                dfdl:textTrimKind="padChar"
                dfdl:textPadKind="padChar"
                dfdl:textStringPadCharacter="%SP;"
                dfdl:textStringJustification="left">
        <xs:annotation>
            <xs:appinfo source=http://www.ogf.org/dfdl/>
                <dfdl:assert>{ dfdl:checkConstraints(.) }</dfdl:assert>
            </xs:appinfo>
        </xs:annotation>
    </xs:element>

    <xs:simpleType name="Word_simpleType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="ASAP"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:element name="MonthDayTime">
        <xs:complexType>
            <xs:sequence dfdl:separator="">
                <xs:element ref="Month"/>
                <xs:element ref="Day"/>
                <xs:element ref="Hour"/>
                <xs:element ref="Minute"/>
                <xs:element ref="TimeZone"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="DayTime">
        <xs:complexType>
            <xs:sequence dfdl:separator="">
                <xs:element ref="Day"/>
                <xs:element ref="Hour"/>
                <xs:element ref="Minute"/>
                <xs:element ref="TimeZone"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="Month"
                type="xs:unsignedInt"
                dfdl:lengthKind="explicit"
                dfdl:length="2"
                dfdl:textNumberRep="standard"
                dfdl:textNumberCheckPolicy="strict"
                dfdl:textNumberPattern="00"
                dfdl:textStandardGroupingSeparator=","
                dfdl:textStandardDecimalSeparator="."
                dfdl:textStandardBase="10"
                dfdl:textNumberRounding="pattern">
    </xs:element>

    <xs:element name="Day"
                type="xs:unsignedInt"
                dfdl:lengthKind="explicit"
                dfdl:length="2"
                dfdl:textNumberRep="standard"
                dfdl:textNumberCheckPolicy="strict"
                dfdl:textNumberPattern="00"
                dfdl:textStandardGroupingSeparator=","
                dfdl:textStandardDecimalSeparator="."
                dfdl:textStandardBase="10"
                dfdl:textNumberRounding="pattern">
    </xs:element>

    <xs:element name="Hour"
                type="xs:unsignedInt"
                dfdl:lengthKind="explicit"
                dfdl:length="2"
                dfdl:textNumberRep="standard"
                dfdl:textNumberCheckPolicy="strict"
                dfdl:textNumberPattern="00"
                dfdl:textStandardGroupingSeparator=","
                dfdl:textStandardDecimalSeparator="."
                dfdl:textStandardBase="10"
                dfdl:textNumberRounding="pattern">
    </xs:element>

    <xs:element name="Minute"
                type="xs:unsignedInt"
                dfdl:lengthKind="explicit"
                dfdl:length="2"
                dfdl:textNumberRep="standard"
                dfdl:textNumberCheckPolicy="strict"
                dfdl:textNumberPattern="00"
                dfdl:textStandardGroupingSeparator=","
                dfdl:textStandardDecimalSeparator="."
                dfdl:textStandardBase="10"
                dfdl:textNumberRounding="pattern">
    </xs:element>

    <xs:element name="TimeZone"
                type="TimeZone_simpleType"
                dfdl:lengthKind="explicit"
                dfdl:length="1">
        <xs:annotation>
            <xs:appinfo source=http://www.ogf.org/dfdl/>
                <dfdl:assert>{ dfdl:checkConstraints(.) }</dfdl:assert>
            </xs:appinfo>
        </xs:annotation>
    </xs:element>

    <xs:simpleType name="TimeZone_simpleType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Z"/>
        </xs:restriction>
    </xs:simpleType>

</xs:schema>


Reply via email to