blob: fbcc16557ce659a44ac6bd42f4a10e9e415a097a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.ogf.org/dfdl/dfdl-1.0/XMLSchemaSubset"
targetNamespace="http://example.com"
xmlns:dfdl="http://www.ogf.org/dfdl/dfdl-1.0/"
xmlns:xsd="http://www.ogf.org/dfdl/dfdl-1.0/XMLSchemaSubset"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tns="http://example.com"
>
<annotation>
<appinfo source="http://www.ogf.org/dfdl/dfdl-1.0/">
<dfdl:format lengthKind="delimited" separator="" initiator="" terminator=""/>
</appinfo>
</annotation>
<!-- MIME type detect -->
<group name="arrayGroup"><sequence><element name="array" type="xsd:byte" maxOccurs="100"
dfdl:representation="binary"
dfdl:lengthKind="implicit"/></sequence></group>
<element name="mimeType">
<complexType>
<sequence>
<sequence dfdl:hiddenGroupRef="tns:arrayGroup"/>
<element name="mime">
<complexType>
<choice>
<!-- GIF -->
<element name="type" type="xsd:string" dfdl:inputValueCalc="{ 'image/gif' }">
<annotation>
<appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator >{
../../tns:array[1]='71' and
../../tns:array[2]='73' and
../../tns:array[3]='70' and
../../tns:array[4]='56' and
../../tns:array[5]='57' and
../../tns:array[6]='97'
}</dfdl:discriminator>
</appinfo>
</annotation>
</element>
<!-- JPEG -->
<element name="type" type="xsd:string" dfdl:inputValueCalc="{ 'image/jpeg' }">
<annotation>
<appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator >{
../../tns:array[7] = '74' and
../../tns:array[8] = '70' and
../../tns:array[9] = '73' and
../../tns:array[10] = '70'
}</dfdl:discriminator>
</appinfo>
</annotation>
</element>
<!-- STP -->
<element name="type" type="xsd:string" dfdl:inputValueCalc="{ 'STP' }">
<annotation>
<appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator >{
../../tns:array[1] = '73' and
../../tns:array[2] = '83' and
../../tns:array[3] = '79' and
../../tns:array[4] = '45' and
../../tns:array[5] = '49' and
../../tns:array[6] = '48' and
../../tns:array[7] = '51' and
../../tns:array[8] = '48' and
../../tns:array[9] = '51' and
../../tns:array[10] = '45' and
../../tns:array[11] = '50' and
../../tns:array[12] = '49' and
../../tns:array[13] = '59'
}</dfdl:discriminator>
</appinfo>
</annotation>
</element>
<!-- PNG -->
<element name="type" type="xsd:string" dfdl:inputValueCalc="{ 'image/png' }">
<annotation>
<appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator >{
../../tns:array[1] = '137' and
../../tns:array[2] = '80' and
../../tns:array[3] = '78' and
../../tns:array[4] = '71' and
../../tns:array[5] = '13' and
../../tns:array[6] = '10' and
../../tns:array[7] = '26' and
../../tns:array[8] = '10'
}</dfdl:discriminator>
</appinfo>
</annotation>
</element>
<!-- .class -->
<element name="type" type="xsd:string" dfdl:inputValueCalc="{ 'application/java-byte-code' }">
<annotation>
<appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator >{
../../tns:array[1] = '202' and
../../tns:array[2] = '254' and
../../tns:array[3] = '186' and
../../tns:array[4] = '190'
}</dfdl:discriminator>
</appinfo>
</annotation>
</element>
<!-- midi -->
<element name="type" type="xsd:string" dfdl:inputValueCalc="{ 'audio/midi' }">
<annotation>
<appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator >{
../../tns:array[1] = '77' and
../../tns:array[2] = '84' and
../../tns:array[3] = '104' and
../../tns:array[4] = '100'
}</dfdl:discriminator>
</appinfo>
</annotation>
</element>
<!-- shell script -->
<element name="type" type="xsd:string" dfdl:inputValueCalc="{ 'application/x-sh' }">
<annotation>
<appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator >{
../../tns:array[1] = '35' and
../../tns:array[2] = '33'
}</dfdl:discriminator>
</appinfo>
</annotation>
</element>
<!-- postscript -->
<element name="type" type="xsd:string" dfdl:inputValueCalc="{ 'application/postscript' }">
<annotation>
<appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{
../../tns:array[1] = '37' and
../../tns:array[2] = '33'
}</dfdl:discriminator>
</appinfo>
</annotation>
</element>
<!-- PDF -->
<element name="type" type="xsd:string" dfdl:inputValueCalc="{ 'application/pdf' }">
<annotation>
<appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{
../../tns:array[1] = '37' and
../../tns:array[2] = '80' and
../../tns:array[3] = '68' and
../../tns:array[4] = '70'
}</dfdl:discriminator>
</appinfo>
</annotation>
</element>
<!-- ZIP -->
<element name="type" type="xsd:string" dfdl:inputValueCalc="{ 'application/zip' }">
<annotation>
<appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{
../../tns:array[1] = '80' and
../../tns:array[2] = '75'
}</dfdl:discriminator>
</appinfo>
</annotation>
</element>
<!-- MPEG -->
<element name="type" type="xsd:string" dfdl:inputValueCalc="{ 'video/mpg' }">
<annotation>
<appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{
../../tns:array[1] = '0' and
../../tns:array[2] = '0' and
../../tns:array[3] = '0' and
../../tns:array[4] = '24' and
../../tns:array[5] = '102' and
../../tns:array[6] = '116' and
../../tns:array[7] = '121' and
../../tns:array[8] = '112' and
../../tns:array[9] = '51' and
../../tns:array[10] = '103' and
../../tns:array[11] = '112' and
../../tns:array[12] = '53'
}</dfdl:discriminator>
</appinfo>
</annotation>
</element>
<!-- GZIP -->
<element name="type" type="xsd:string" dfdl:inputValueCalc="{ 'application/x-gzip' }">
<annotation>
<appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{
../../tns:array[1] = '31' and
../../tns:array[2] = '140' and
../../tns:array[3] = '8'
}</dfdl:discriminator>
</appinfo>
</annotation>
</element>
</choice>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>