<?xml version="1.0" ?> <xs:schema xmlns:xs="http://www.iso.org/jpeg/2001/XMLSchema" targetNamespace="http://www.iso.org/jpxml" xmlns="http://www.iso.org/jpxml"> <!-- B.3.1 Example of XML Schema for common header --> <!-- The following example is common XML Schemas for all marker types of JPEG 2000 family codestreams.--> <xs:attributeGroup name="attrs.marker"> <xs:attribute name="length" type="xs:integer" use="required" /> <xs:attribute name="offset" type="xs:integer" use="optional" /> <xs:attribute name="type" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="marker" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:attributeGroup> <xs:attributeGroup name="attrs.4cc"> <xs:attribute name="length" type="xs:integer" use="required" /> <xs:attribute name="type" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="fourcc" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:attributeGroup> <xs:attributeGroup name="attrs.hex"> <xs:attribute name="length" type="xs:integer" use="required" /> <xs:attribute name="type" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="hexbyte" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:attributeGroup> <xs:attributeGroup name="attrs.int"> <xs:attribute name="length" type="xs:integer" use="required" /> <xs:attribute name="type" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="integer" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:attributeGroup> <xs:attributeGroup name="attrs.str"> <xs:attribute name="length" type="xs:integer" use="required" /> <xs:attribute name="type" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="string" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:attributeGroup> <xs:attributeGroup name="attrs.url"> <xs:attribute name="length" type="xs:integer" use="required" /> <xs:attribute name="type" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="location" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:attributeGroup> <xs:attributeGroup name="attrs.root"> <xs:attribute name="length" type="xs:integer" use="required" /> <xs:attribute name="name" type="xs:anyURL" use="optional" /> </xs:attributeGroup> <!-- add following XML Schemas for the JPXML document. --> <!-- ... --> <!-- B.3.2 Example of XML Schema for JPEG 2000 Part 1 codestream (single image) --> <!-- part 1 marker element --> <xs:element name="SOT"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Isot" /> <xs:element ref="Psot" /> <xs:element ref="TPsot" /> <xs:element ref="TNsot" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="SIZ"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Rsiz" /> <xs:element ref="Xsiz" /> <xs:element ref="Ysiz" /> <xs:element ref="OXsiz" /> <xs:element ref="OYsiz" /> <xs:element ref="XTsiz" /> <xs:element ref="YTsiz" /> <xs:element ref="XTOsiz" /> <xs:element ref="YTOsiz" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Csiz" /> <xs:element ref="XRsiz" /> <xs:element ref="YRsiz" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="COD"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Scod" /> <xs:element ref="SGcod" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="SPcod" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="COC"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Ccoc" /> <xs:element ref="Scoc" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="SPcoc" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="SGcod"> <xs:complexType> <xs:attributeGroup ref="attrs.hex" use="required" /> <xs:sequence> <xs:element ref="progression" /> <xs:element ref="num_layers" /> <xs:element ref="colour_conv" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="SPcod"> <xs:complexType> <xs:attributeGroup ref="attrs.hex" use="required" /> <xs:sequence> <xs:element ref="num_levels" /> <xs:element ref="xcb" /> <xs:element ref="ycb" /> <xs:element ref="style" /> <xs:element ref="wavelet" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="ppy" /> <xs:element ref="ppx" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="SPcoc"> <xs:complexType> <xs:attributeGroup ref="attrs.hex" use="required" /> <xs:sequence> <xs:element ref="num_levels" /> <xs:element ref="xcb" /> <xs:element ref="ycb" /> <xs:element ref="style" /> <xs:element ref="wavelet" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="ppy" /> <xs:element ref="ppx" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="RGN"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Crgn" /> <xs:element ref="Srgn" /> <xs:element ref="SPrgn" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="QCD"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Sqcd" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="SPqcd" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="QCC"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Cqcc" /> <xs:element ref="Sqcc" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="SPqcc" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="POC"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="RSpoc" /> <xs:element ref="CSpoc" /> <xs:element ref="LYEoc" /> <xs:element ref="REpoc" /> <xs:element ref="CEpoc" /> <xs:element ref="Ppoc" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="TLM"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Ztlm" /> <xs:element ref="Stlm" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Ttlm" /> <xs:element ref="Ptlm" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="PLM"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Zplm" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Nplm" /> <xs:element ref="Iplm" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="PLT"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Zplm" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Iplm" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="PPM"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Zppm" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Nppm" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Ippm" /> </xs:sequence> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="PPT"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Zppt" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Ippt" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="SOP"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Nsop" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="CRG"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Xcrg" /> <xs:element ref="Ycrg" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="COM"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Rcom" /> <xs:element ref="Ccom" /> </xs:sequence> </xs:complexType> </xs:element> <!-- part 1 marker element --> <xs:element name="Isot" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Psot" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="TPsot" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="TNsot" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Rsiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Xsiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Ysiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="OXsiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="OYsiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="XTsiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="YTsiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="XTOsiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="YTOsiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Csiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="XRsiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="YRsiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Scod" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="SGcod" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="SPcod" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Ccoc" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Scoc" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="SPcoc" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Crgn" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Srgn" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="SPrgn" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Sqcd" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="SPqcd" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Cqcc" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Sqcc" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="SPqcc" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="progression" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="num_layers" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="colour_conv" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="num_levels" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="xcb" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="ycb" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="style" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="wavelet" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="ppy" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="ppx" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Crgn" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Srgn" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="SPrgn" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Sqcd" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="SPqcd" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Cqcc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Sqcc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="SPqcc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="RSpoc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="CSpoc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="LYEoc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="REpoc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="CEpoc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Ppoc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Ztlm" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Stlm" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Ttlm" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Ptlm" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Zplm" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Nplm" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Iplm" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Zplm" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Iplm" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Zppm" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Nppm" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Ippm" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Zppt" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Ippt" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Nsop" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Xcrg" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Ycrg" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Rcom" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Ccom" type="xs:string"> <xs:attributeGroup ref="attrs.str" use="required" /> </xs:element> <!-- B.3.3 Example of XML Schema for JPEG 2000 Part 2 codestream (single/layered image) --> <!-- part 1 marker element --> <!-- ... --> <!-- part 2 marker element --> <xs:element name="SPcod"> <xs:complexType> <xs:attributeGroup ref="attrs.hex" use="required" /> <xs:sequence> <xs:element ref="num_levels" /> <xs:element ref="xcb" /> <xs:element ref="ycb" /> <xs:element ref="style" /> <xs:element ref="wavelet" /> <xs:element ref="sso" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="ppy" /> <xs:element ref="ppx" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="SPcoc"> <xs:complexType> <xs:attributeGroup ref="attrs.hex" use="required" /> <xs:sequence> <xs:element ref="num_levels" /> <xs:element ref="xcb" /> <xs:element ref="ycb" /> <xs:element ref="style" /> <xs:element ref="wavelet" /> <xs:element ref="sso" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="ppy" /> <xs:element ref="ppx" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="SPrgn"> <xs:complexType> <xs:attributeGroup ref="attrs.hex" use="required" /> <xs:sequence> <xs:element ref="shift" /> <xs:element ref="XArgn" /> <xs:element ref="YArgn" /> <xs:element ref="XBrgn" /> <xs:element ref="YBrgn" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="DCO"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Sdco" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="SPdco" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="VMS"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Cvms" /> <xs:element ref="Svms" /> <xs:element ref="Wvms" /> <xs:element ref="Rvms" /> <xs:element ref="Avms" /> <xs:element ref="Bvms" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="VMS"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Cvms" /> <xs:element ref="Svms" /> <xs:element ref="Wvms" /> <xs:element ref="Rvms" /> <xs:element ref="Avms" /> <xs:element ref="Bvms" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="DFS"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Sdfs" /> <xs:element ref="Idfs" /> <xs:element ref="Ddfs" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ADS"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Sads" /> <xs:element ref="IOads" /> <xs:element ref="DOads" /> <xs:element ref="ISads" /> <xs:element ref="DSads" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ATK"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Satk" /> <xs:element ref="Katk" /> <xs:element ref="Natk" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Oatk" /> <xs:element ref="Eatk" /> <xs:element ref="Batk" /> <xs:element ref="LCatk" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Aatk" /> </xs:sequence> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="CBD"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Ncbd" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="BDcbd" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="MCT"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Zmct" /> <xs:element ref="Imct" /> <xs:element ref="Ymct" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="SPmct" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="MCC"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Zmcc" /> <xs:element ref="Imcc" /> <xs:element ref="Ymcc" /> <xs:element ref="Qmcc" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Xmcc" /> <xs:element ref="Nmcc" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Cmcc" /> </xs:sequence> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Mmcc" /> </xs:sequence> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Wmcc" /> </xs:sequence> <xs:element ref="Tmcc" /> <xs:element ref="Omcc" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="MCO"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Nmco" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Imco" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="NLT"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Cnlt" /> <xs:element ref="BDnlt" /> <xs:element ref="Tnlt" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="STnlt" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="QPD"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="PLqpd" /> <xs:element ref="PPqpd" /> <xs:element ref="Sqpd" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="SPqpd" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="QPC"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Cqpc" /> <xs:element ref="PLqpc" /> <xs:element ref="PPqpc" /> <xs:element ref="Sqpc" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="SPqpc" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <!-- part 1 content element --> <!-- ... --> <!-- part 2 content element --> <xs:element name="sso" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="shift" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="XArgn" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="YArgn" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="XBrgn" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="YBrgn" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Sdco" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="SPdco" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Cvms" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Svms" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Wvms" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Rvms" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Avms" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Bvms" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Sads" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="IOads" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="DOads" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="ISads" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="DSads" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Satk" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Katk" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Natk" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Oatk" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Eatk" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Batk" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="LCatk" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Aatk" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Ncbd" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="BDcbd" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Zmct" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Imct" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Ymct" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="SPmct" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Zmcc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Imcc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Ymcc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Qmcc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Xmcc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Nmcc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Cmcc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Mmcc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Wmcc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Tmcc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Omcc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="MCO"> type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Nmco" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Imco" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Cnlt" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="BDnlt" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Tnlt" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="STnlt" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="PLqpd" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="PPqpd" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Sqpd" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="SPqpd" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Cqpc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="PLqpc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="PPqpc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Sqpc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="SPqpc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <!-- B.3.4 Example of XML Schema for JPEG 2000 Part 8 codestream (security) --> <!-- part 1 marker element --> <!-- ... --> <!-- part 8 marker element --> <xs:element name="INSEC"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="index" /> <xs:element ref="Rinsec" /> <xs:element ref="APinsec" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="SEC"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Zsec" /> <xs:element ref="Psec" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Tool" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Psec"> <xs:complexType> <xs:attributeGroup ref="attr.hex" use="required" /> <xs:sequence> <xs:element ref="Fpsec" /> <xs:element ref="Ntool" /> <xs:element ref="Imax" /> <xs:element ref="Ptrlcp" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Tool"> <xs:complexType> <xs:attributeGroup ref="attr.hex" use="required" /> <xs:sequence> <xs:element ref="type" /> <xs:element ref="index" /> <xs:element ref="IDtool" /> <xs:element ref="length" /> <xs:element ref="ZOI" /> <xs:element ref="LPid" /> <xs:element ref="Pid" /> </xs:sequence> </xs:complexType> </xs:element> <!-- IDtool for non-normative tools --> <xs:element name="IDtool"> <xs:complexType> <xs:attributeGroup ref="attr.hex" use="required" /> <xs:sequence> <xs:element ref="IDaid" /> <xs:element ref="IDransl" /> <xs:element ref="IDrans" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ZOI"> <xs:complexType> <xs:attributeGroup ref="attr.hex" use="required" /> <xs:sequence> <xs:element ref="NZzoi" /> <xs:element ref="Zone" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Zone"> <xs:complexType> <xs:attributeGroup ref="attr.hex" use="required" /> <xs:sequence> <xs:element ref="DCzoi" /> <xs:element ref="Pzoi" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Pzoi"> <xs:complexType> <xs:attributeGroup ref="attr.hex" use="required" /> <xs:sequence> <xs:element ref="Mzoi" /> <xs:element ref="Nzoi" /> <xs:element ref="Izoi" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> </xs:element> <!-- Pid for normative tools --> <xs:element name="Pid"> <xs:complexType> <xs:attributeGroup ref="attr.hex" use="required" /> <xs:sequence> <xs:element ref="NTid" /> <xs:element ref="NTdomain" /> <xs:element ref="NTgranularity" /> <xs:element ref="NTvalue" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="NTdomain"> <xs:complexType> <xs:attributeGroup ref="attr.hex" use="required" /> <xs:sequence> <xs:element ref="PD" /> <xs:element ref="Fpd" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="NTgranularity"> <xs:complexType> <xs:attributeGroup ref="attr.hex" use="required" /> <xs:sequence> <xs:element ref="PD" /> <xs:element ref="GL" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="NTvalue"> <xs:complexType> <xs:attributeGroup ref="attr.hex" use="required" /> <xs:sequence> <xs:element ref="Nv" /> <xs:element ref="Sv" /> <xs:element ref="data" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="NTid"> <xs:complexType> <xs:attributeGroup ref="attr.hex" use="required" /> <xs:choice> <xs:sequence> <xs:element ref="MEdecry" /> <xs:element ref="CTdecry" /> <xs:element ref="CPdecry" /> </xs:sequence> <xs:sequence> <xs:element ref="MEauth" /> <xs:element ref="Pauth" /> </xs:sequence> <xs:sequence> <xs:element ref="Hhash" /> <xs:element ref="SIZhash" /> </xs:sequence> </xs:choice> </xs:complexType> </xs:element> <xs:element name="CPdecry"> <xs:complexType> <xs:attributeGroup ref="attr.hex" use="required" /> <xs:choice> <xs:sequence> <xs:element ref="Mbc" /> <xs:element ref="Pbc" /> <xs:element ref="SIZbc" /> <xs:element ref="KTntid" /> </xs:sequence> <xs:sequence> <xs:element ref="KTntid" /> </xs:sequence> </xs:choice> </xs:complexType> </xs:element> <xs:element name="Pauth"> <xs:complexType> <xs:attributeGroup ref="attr.hex" use="required" /> <xs:choice> <xs:sequence> <xs:element ref="Mhash" /> <xs:element ref="Hhash" /> <xs:element ref="KTntid" /> <xs:element ref="SIZhash" /> </xs:sequence> <xs:sequence> <xs:element ref="CAcmac" /> <xs:element ref="Ccmac" /> <xs:element ref="KTntid" /> <xs:element ref="SIZcmac" /> </xs:sequence> <xs:sequence> <xs:element ref="Mds" /> <xs:element ref="Hds" /> <xs:element ref="KTntid" /> <xs:element ref="SIZds" /> </xs:sequence> </xs:choice> </xs:complexType> </xs:element> <xs:element name="KTntid"> <xs:complexType> <xs:attributeGroup ref="attr.hex" use="required" /> <xs:sequence> <xs:element ref="LKkt" /> <xs:element ref="KIDkt" /> <xs:element ref="granularity" /> <xs:element ref="data" /> </xs:sequence> </xs:complexType> </xs:element> <!-- part 1 content element --> <!-- ... --> <!-- part 8 content element --> <xs:element name="index" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Rinsec" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="APinsec" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Zsec" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Psec" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Tool" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Fpsec" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Ntool" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Imax" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Ptrlcp" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="type" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="index" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="IDtool" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="length" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="ZOI" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="LPid" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Pid" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="IDaid" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="IDansi" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="IDrans" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="NZzoi" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Zone" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="DCzoi" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Pzoi" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Mzoi" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Nzoi" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Izoi"type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="NTid" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="NTdomain" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="NTgranularity" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="NTvalue" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="PD" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Fpd" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="PD" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="GL" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Nv" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Sv" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="MEdecry" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="CTdecry" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="CPdecry" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="MEauth" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Pauth" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Hhash" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="SIZhash" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Mbc" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Pbc" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="SIZbc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="KTntid" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Mhash" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Hhash" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="SIZhash" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="CAcmac" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Ccmac" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="SIZcmac" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Mds" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="Hds" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="SIZds" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="LKkt" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="KIDkt" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="granularity" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element name="data" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <!-- B.3.5 Example of XML Schema for JPEG 2000 Part 10 codestream (3-D image) --> <!-- part 1 marker element --> <!--...--> <!-- part 10 marker element --> <xs:element name="NSI"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Ndim" /> <xs:element ref="Zsiz" /> <xs:element ref="ZOsiz" /> <xs:element ref="ZTsiz" /> <xs:element ref="ZTOsiz" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="ZRsiz" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="SPcod"> <xs:complexType> <xs:attributeGroup ref="attrs.hex" use="required" /> <xs:sequence> <xs:element ref="num_xlevels" /> <xs:element ref="num_ylevels" /> <xs:element ref="num_zlevels" /> <xs:element ref="xcb" /> <xs:element ref="ycb" /> <xs:element ref="zcb" /> <xs:element ref="style" /> <xs:element ref="xkernel" /> <xs:element ref="ykernel" /> <xs:element ref="zkernel" /> <xs:element ref="sso" /> <xs:element ref="reserved" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="ppz" /> <xs:element ref="ppy" /> <xs:element ref="ppx" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="SPcoc"> <xs:complexType> <xs:attributeGroup ref="attrs.hex" use="required" /> <xs:sequence> <xs:element ref="num_xlevels" /> <xs:element ref="num_ylevels" /> <xs:element ref="num_zlevels" /> <xs:element ref="xcb" /> <xs:element ref="ycb" /> <xs:element ref="zcb" /> <xs:element ref="style" /> <xs:element ref="xkernel" /> <xs:element ref="ykernel" /> <xs:element ref="zkernel" /> <xs:element ref="sso" /> <xs:element ref="reserved" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="ppz" /> <xs:element ref="ppy" /> <xs:element ref="ppx" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="SPrgn"> <xs:complexType> <xs:attributeGroup ref="attrs.hex" use="required" /> <xs:sequence> <xs:element ref="shift" /> <xs:element ref="XArgn" /> <xs:element ref="YArgn" /> <xs:element ref="ZArgn" /> <xs:element ref="XBrgn" /> <xs:element ref="YBrgn" /> <xs:element ref="ZBrgn" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="CRG"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="Xcrg" /> <xs:element ref="Ycrg" /> <xs:element ref="Zcrg" /> </xs:sequence> </xs:complexType> </xs:element> <!-- part 1 content element --> <!-- ... --> <!-- part 10 content element --> <xs:element name="Ndim" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Zsiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="ZOsiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="ZTsiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="ZTOsiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="ZRsiz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="num_xlevels" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="num_ylevels" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="num_zlevels" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="ycb" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="zcb" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="zkernel" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="reserved" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="ppz" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="ZArgn" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="ZBrgn" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element name="Zcrg" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <!-- B.4.6 Example of XML Schema for JPEG 2000 Part 11 codestream (wireless) --> <!-- part 1 marker element --> <!-- ... --> <!-- part 11 marker element --> <xs:element name="EPB"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Depb" /> <xs:element ref="LDPepb" /> <xs:element ref="Pepb" /> <xs:element ref="data" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="EPC"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Pcrc" /> <xs:element ref="DL" /> <xs:element ref="Pepc" /> <xs:sequence maxOccurs="unbounded"> <xs:element ref="id" /> <xs:element ref="Lid" /> <xs:element ref="Pid" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ESD"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Cesd" /> <xs:element ref="Pesd" /> <xs:element ref="data" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="RED"> <xs:complexType> <xs:attributeGroup ref="attrs.marker" use="required" /> <xs:sequence> <xs:element ref="Pred" /> <xs:element ref="data" /> </xs:sequence> </xs:complexType> </xs:element> <!-- part 1 content element --> <!-- ... --> <!-- part 11 content element --> <xs:element ref="Depb" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element ref="LDPepb" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element ref="Pepb" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element ref="Pcrc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element ref="DL" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element ref="Pepc" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element ref="id" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element ref="Lid" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element ref="Pid" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> <xs:element ref="Cesd" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element ref="Pesd" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element ref="Pred" type="xs:integer"> <xs:attributeGroup ref="attrs.int" use="required" /> </xs:element> <xs:element ref="data" type="hexbyte"> <xs:attributeGroup ref="attrs.hex" use="required" /> </xs:element> </xs:schema>