blob: 806f6a8f5c7733aec0344857c7dedb90c36f4e15 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<xs:schema
targetNamespace="urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:ext"
xmlns:tns="urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:ext"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:daf="urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:ext"
xmlns:dafint="urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:int"
xmlns:dfdlx="http://www.ogf.org/dfdl/dfdl-1.0/extensions"
attributeFormDefault="unqualified"
elementFormDefault="qualified">
<xs:import namespace="http://www.ogf.org/dfdl/dfdl-1.0/extensions"/>
<xs:import namespace="urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:int"/>
<!-- needed for backwards compatability with daf:parseUnparsePolicy -->
<xs:attribute name="parseUnparsePolicy" type="dfdlx:ParseUnparsePolicyEnum"/>
<xs:element name="property" type="daf:PropertyType" />
<xs:complexType name="PropertyType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="daf:PropertyNameType" use='required'/>
<xs:attributeGroup ref="dafint:daffodilAG"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="PropertyNameType">
<xs:restriction base="xs:token">
<xs:enumeration value="parseUnparsePolicy"/>
</xs:restriction>
</xs:simpleType>
<!-- properties related to daffodil configuration -->
<xs:element name="externalVariableBindings" type="daf:externalVarType" />
<xs:complexType name="externalVarType">
<xs:sequence>
<xs:element ref="daf:bind" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:element name="bind" type="daf:bindType" />
<xs:simpleType name="bindNameType">
<xs:restriction base="xs:string" />
</xs:simpleType>
<xs:complexType name="bindType">
<xs:simpleContent>
<xs:extension base="daf:bindNameType">
<xs:attribute name="name" use="required">
<xs:simpleType>
<xs:restriction base="xs:string" />
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!--
This file is used by TunableGenerator.scala to generate code that parses and
validates tunable values. The following schema elements define these tunables
to be generated. Although this schema is verbose and repetitive, it makes it
relatively straightforward to parse and ensure we generate correct code. As
such, one must follow a strict pattern to ensure correct code is generated.
Each element representing a tunable must have an schema primitive as its type,
as determined by the tunables allowed value space. Each tunable must also have
a default value that is valid for the type. If an element needs additional
limitations beyond the value space of the type, then an xs:simpleType with
xs:restriction must be used. The base attribute of the restriction must be a
schema primitive type. Only the following restrictions are currently supported:
- minInclusive
- maxInclusive
- minExclusive
- maxExclusive
-->
<xs:element name="tunables">
<xs:complexType>
<xs:all>
<xs:element name="allowExpressionResultCoercion" type="xs:boolean" default="true" minOccurs="0">
<xs:annotation>
<xs:documentation>
Defines how Daffodil coerces expressions where the result type differs
from the expected type. As an example, assume the expected type of an
expression is an xs:string, but the expression is { 3 }. In this case, the
expression result is an xs:int, which should not be automatically coerced
to an xs:string. Instead, the expression should be { xs:string(3) } or { "3" }
If the value of this tunable is false, these types of expressions will
result in a schema definition error. If the value is true, Daffodil will
provide a warning and attempt to coerce the result type to the expected
type.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="allowExternalPathExpressions" type="xs:boolean" default="false" minOccurs="0">
<xs:annotation>
<xs:documentation>
By default, path expressions in Daffodil will only work correctly if path
steps are used in an expression defined in the schema when compiled. To
enable the use of other expressions (e.g. during debugging, where not all
expressions are known at schema compile time), set this tunable to true.
This may cause a degredation of performance in path expression evaluation,
so this should be avoided when in production. This flag is automatically
enabled when debugging is enabled.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="blobChunkSizeInBytes" default="4096" minOccurs="0">
<xs:annotation>
<xs:documentation>
When reading/writing blob data, the maximum number of bytes to read/write
at a time. This is also used when parsing xs:hexBinary data.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
<xs:maxInclusive value="268435455" /> <!-- Limit to (MaxInt / 8) because some places convert this tunable to bits -->
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="defaultEmptyElementParsePolicy" type="daf:TunableEmptyElementParsePolicy" default="treatAsEmpty" minOccurs="0">
<xs:annotation>
<xs:documentation>
Defines the default empty element parse policy to use if it is not defined
in a schema. This is only used if requireEmptyElementParsePolicyProperty is
false.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="defaultInitialRegexMatchLimitInChars" default="32" minOccurs="0">
<xs:annotation>
<xs:documentation>
Deprecated. This tunable no longer has any affect and is only kept for
backwards compatability.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="errorOnUnsupportedJavaVersion" type="xs:boolean" default="true" minOccurs="0">
<xs:annotation>
<xs:documentation>
Deprecated. This tunable no longer has any affect and is only kept for
backwards compatability.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="generatedNamespacePrefixStem" type="xs:string" default="tns" minOccurs="0">
<xs:annotation>
<xs:documentation>
Stem to use when generating a namespace prefix when one is not defined for
the target naespace.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="initialElementOccurrencesHint" default="10" minOccurs="0">
<xs:annotation>
<xs:documentation>
Initial array buffer size allocated for recurring elements/arrays.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="initialRegexMatchLimitInCharacters" default="64" minOccurs="0">
<xs:annotation>
<xs:documentation>
Initial number of characters to match when performing regular expression
matches on input data. When a regex fails to match, more data may be
consumed up to the maximumRegexMatchLengthInCharacters tunable.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="inputFileMemoryMapLowThreshold" type="xs:int" default="33554432" minOccurs="0">
<xs:annotation>
<xs:documentation>
Deprecated. This tunable no longer has any affect and is only kept for
backwards compatability.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="maxBinaryDecimalVirtualPoint" default="200" minOccurs="0">
<xs:annotation>
<xs:documentation>
The largest allowed value of the dfdl:binaryDecimalVirtualPoint property.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="maxByteArrayOutputStreamBufferSizeInBytes" default="2097152000" minOccurs="0">
<xs:annotation>
<xs:documentation>
When unparsing, this is the maximum size of the buffer that the
ByteArrayOutputStream can grow to before switching to a file based
output stream.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="0" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="maxDataDumpSizeInBytes" default="256" minOccurs="0">
<xs:annotation>
<xs:documentation>
The maximum size of data to retrive when when getting data to display
for debugging.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="maxFieldContentLengthInBytes" type="xs:int" default="1048576" minOccurs="0">
<xs:annotation>
<xs:documentation>
Deprecated. This tunable no longer has any affect and is only kept for
backwards compatability.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="maxHexBinaryLengthInBytes" default="2147483647" minOccurs="0">
<xs:annotation>
<xs:documentation>
The maximum size allowed for an xs:hexBinary element.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="maxLengthForVariableLengthDelimiterDisplay" default="10" minOccurs="0">
<xs:annotation>
<xs:documentation>
When unexpected text is found where a delimiter is expected, this is the maximum
number of bytes (characters) to display when the expected delimiter is a variable
length delimiter.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="maxLookaheadFunctionBits" default="512" minOccurs="0">
<xs:annotation>
<xs:documentation>
Max distance that the DPath lookahead function is permitted to look.
Distance is defined by the distance to the last bit accessed, and
so it is offset+bitsize.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:long">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="maxOccursBounds" default="2147483647" minOccurs="0">
<xs:annotation>
<xs:documentation>
Maximum number of occurances of an array element.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:long">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="maxSkipLengthInBytes" default="1024" minOccurs="0">
<xs:annotation>
<xs:documentation>
Maximum number of bytes allowed to skip in a skip region.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="maxValidYear" default="9999" minOccurs="0">
<xs:annotation>
<xs:documentation>
Due to differences in the DFDL spec and ICU4J SimpleDateFormat, we must
have SimpleDateFormat parse in lenient mode, which allows the year value
to overflow with very large years into possibly negative years. This
tunable tunable sets an upper limit for values to prevent overflow.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="maximumRegexMatchLengthInCharacters" default="1048576" minOccurs="0">
<xs:annotation>
<xs:documentation>
Maximum number of characters to match when performing regular expression
matches on input data.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="maximumSimpleElementSizeInCharacters" default="1048576" minOccurs="0">
<xs:annotation>
<xs:documentation>
Maximum number of characters to parse when parsing string data.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="minBinaryDecimalVirtualPoint" default="-200" minOccurs="0">
<xs:annotation>
<xs:documentation>
The smallest allowed value of the dfdl:binaryDecimalVirtualPoint property.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:maxInclusive value="-1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="minValidYear" type="xs:int" default="0" minOccurs="0">
<xs:annotation>
<xs:documentation>
Due to differences in the DFDL spec and ICU4J SimpleDateFormat, we must
have SimpleDateFormat parse in lenient mode, which allows the year value
to overflow with very large years into possibly negative years. This
tunable tunable sets an upper limit for values to prevent underflow.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="outputStreamChunkSizeInBytes" default="65536" minOccurs="0">
<xs:annotation>
<xs:documentation>
When writing file data to the output stream during unparse, this
is the maximum number of bytes to write at a time.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="parseUnparsePolicy" type="daf:TunableParseUnparsePolicyTunable" default="fromRoot" minOccurs="0">
<xs:annotation>
<xs:documentation>
Whether to compile a schema to support only parsing, only unparsing, both, or to
use the daf:parseUnparsePolicy from the root node. All child elements of the root
must have a compatable daf:parseUnaprsePolicy property.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="readerByteBufferSize" type="xs:int" default="8192" minOccurs="0">
<xs:annotation>
<xs:documentation>
Deprecated. This tunable no longer has any affect and is only kept for
backwards compatability.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="releaseUnneededInfoset" type="xs:boolean" default="true" minOccurs="0">
<xs:annotation>
<xs:documentation>
Daffodil will periodically release internal infoset elements that it determines
are no longer needed, thus freeing memory. Setting this value to false will
prevent this from taking place. This should usually only be used while debugging
or with very specific tests.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="requireBitOrderProperty" type="xs:boolean" default="false" minOccurs="0">
<xs:annotation>
<xs:documentation>
If true, require that the dfdl:bitOrder property is specified. If false, use a
default value if the property is not defined in the schema.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="requireEmptyElementParsePolicyProperty" type="xs:boolean" default="false" minOccurs="0">
<xs:annotation>
<xs:documentation>
If true, require that the dfdl:emptyElementParsePolicy property is specified in
the schema. If false, and not defined in the schema, uses the
defaultEmptyElementParsePolicy as the value of emptyElementParsePolicy.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="requireEncodingErrorPolicyProperty" type="xs:boolean" default="false" minOccurs="0">
<xs:annotation>
<xs:documentation>
If true, require that the dfdl:encodingErrorPolicy property is specified. If
false, use a default value if the property is not defined in the schema.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="requireFloatingProperty" type="xs:boolean" default="false" minOccurs="0">
<xs:annotation>
<xs:documentation>
If true, require that the dfdl:floating property is specified. If
false, use a default value if the property is not defined in the schema.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="requireTextBidiProperty" type="xs:boolean" default="false" minOccurs="0">
<xs:annotation>
<xs:documentation>
If true, require that the dfdl:testBidi property is specified. If
false, use a default value if the property is not defined in the schema.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="requireTextStandardBaseProperty" type="xs:boolean" default="false" minOccurs="0">
<xs:annotation>
<xs:documentation>
If true, require that the dfdl:textStandardBase property is specified. If false
and the property is missing, behave as if the property is set to 10.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="saxUnparseEventBatchSize" default="100" minOccurs="0">
<xs:annotation>
<xs:documentation>
Daffodil's SAX Unparse API allows events to be batched in memory to minimize the
frequency of context switching between the SAXInfosetInputter thread that processes
the events, and the DaffodilUnparseContentHandler thread that generates the events.
Setting this value to a low number will increase the frequency of context switching,
but will reduce the memory footprint. Swtting it to a high number will decrease the
frequency of context switching, but increase the memory footprint.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="suppressSchemaDefinitionWarnings" type="daf:TunableSuppressSchemaDefinitionWarnings" default="emptyElementParsePolicyError" minOccurs="0">
<xs:annotation>
<xs:documentation>
Space-separated list of schema definition warnings that should be ignored,
or "all" to ignore all warnings.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="tempFilePath" type="xs:string" default="This string is ignored. Default value is taken from java.io.tmpdir property" minOccurs="0">
<xs:annotation>
<xs:documentation>
When unparsing, use this path to store temporary files that may be genrated.
The default value (empty string) will result in the use of the java.io.tmpdir
property being used as the path.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="unqualifiedPathStepPolicy" type="daf:TunableUnqualifiedPathStepPolicy" default="noNamespace" minOccurs="0">
<xs:annotation>
<xs:documentation>
Defines how to lookup DFDL expression path steps that to not include a
namespace prefix. Values are:
- noNamespace: only match elements that do not have a namespace
- defaultNamespace: only match elements defined in the default namespace
- preferDefaultNamespace: match elements defined in the default namespace;
if non are found, match elemnts that do not have a namespace
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="unparseSuspensionWaitOld" default="100" minOccurs="0">
<xs:annotation>
<xs:documentation>
While unparsing, some unparse actions require "suspending" which
requires buffering unparse output until the suspension can be
evaluated. Daffodil periodically attempts to reevaluate these
suspensions so that these buffers can be released. We attempt to
evaluate young suspensions shortly after creation with the hope
that it will succeed and we can release associated buffers. But if
a young suspension fails it is moved to the old suspension list.
Old suspensions are evaluated less frequently since they are less
likely to succeeded. This minimizes the overhead related to
evaluating suspensions that are likely to fail. The
unparseSuspensionWaitYoung and unparseSuspensionWaitOld
values determine how many elements are unparsed before evaluating
young and old suspensions, respectively.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="unparseSuspensionWaitYoung" default="5" minOccurs="0">
<xs:annotation>
<xs:documentation>
See unparseSuspensionWaitOld
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<xs:simpleType name="TunableEmptyElementParsePolicy">
<xs:restriction base="dfdlx:EmptyElementParsePolicyEnum" />
</xs:simpleType>
<!--
The two 'Tunables' in the name are intentional. The first is the standard for
Tunable enums used by the generator. The second is to differentiate between
the dfdl property enum and the tunable enum, since they have different allowed
values.
-->
<xs:simpleType name="TunableParseUnparsePolicyTunable">
<xs:union>
<xs:simpleType>
<xs:restriction base="dfdlx:ParseUnparsePolicyEnum" />
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="fromRoot" />
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!--
TDML implementation to use when running TDML tests. Currently daffodil and ibm use the
same classname, so you still need different classpaths to call ibm as a cross tester.
-->
<xs:simpleType name="TunableTDMLImplementation">
<xs:restriction base="xs:token">
<xs:enumeration value="daffodil" />
<xs:enumeration value="daffodilC" />
<xs:enumeration value="ibm" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TunableUnqualifiedPathStepPolicy">
<xs:restriction base="xs:token">
<xs:enumeration value="defaultNamespace" />
<xs:enumeration value="noNamespace" />
<xs:enumeration value="preferDefaultNamespace" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TunableSuppressSchemaDefinitionWarnings">
<xs:list>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="all" />
<xs:enumeration value="alignmentNotSame" />
<xs:enumeration value="alignmentAndInitiatorTextAlignmentNotCompatible" />
<xs:enumeration value="appinfoDFDLSourceWrong" />
<xs:enumeration value="appinfoNoSource" />
<xs:enumeration value="choiceInsideHiddenGroup" />
<xs:enumeration value="deprecatedBuiltInFormats" />
<xs:enumeration value="deprecatedEncodingNameUSASCII7BitPacked" />
<xs:enumeration value="deprecatedExpressionResultCoercion" />
<xs:enumeration value="deprecatedFunctionDAFError" />
<xs:enumeration value="deprecatedPropertyDAFError" />
<xs:enumeration value="deprecatedPropertyDFDLXError" />
<xs:enumeration value="deprecatedPropertyDFDLError" />
<xs:enumeration value="deprecatedPropertySeparatorPolicy" />
<xs:enumeration value="discouragedDiscriminatorPlacement" />
<xs:enumeration value="discouragedAssertPlacement" />
<xs:enumeration value="emptyElementParsePolicyError" />
<xs:enumeration value="encodingErrorPolicyError" />
<xs:enumeration value="escapeSchemeRefUndefined" />
<xs:enumeration value="expressionCompilationSkipped" />
<xs:enumeration value="facetExplicitLengthOutOfRange" />
<xs:enumeration value="floatingError" />
<xs:enumeration value="ignoreImport" />
<xs:enumeration value="ignoreDFDLProperty" />
<xs:enumeration value="inconsistentLengthKind" />
<xs:enumeration value="invalidAnnotationPoint" />
<xs:enumeration value="layerCompileWarning" />
<xs:enumeration value="multipleChoiceBranches" />
<xs:enumeration value="namespaceDifferencesOnly" />
<xs:enumeration value="noEmptyDefault" />
<xs:enumeration value="nonExpressionPropertyValueLooksLikeExpression" />
<xs:enumeration value="pathNotToArray" />
<xs:enumeration value="patternEncodingSlashW" />
<xs:enumeration value="queryStylePathExpression" />
<xs:enumeration value="regexPatternZeroLength" />
<xs:enumeration value="textBidiError" />
<xs:enumeration value="textOutputMinLengthOutOfRange" />
<xs:enumeration value="textStandardBaseUndefined" />
<xs:enumeration value="unsupportedAttributeBlockDefault" />
<xs:enumeration value="unsupportedAttributeFinalDefault" />
<xs:enumeration value="unsupportedAttributeFormDefault" />
<xs:enumeration value="unsupportedAttributeSchemaLocation" />
</xs:restriction>
</xs:simpleType>
</xs:list>
</xs:simpleType>
<xs:element name="dfdlConfig">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:externalVariableBindings" minOccurs="0" />
<xs:element ref="tns:tunables" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>