Warning, /libraries/binschema/src/pdf.xml is written in an unsupported language. File is not indexed.

0001 <!-- This document is a loose version of a way to describe parts of a PDF -->
0002 <mso xmlns="http://www.example.org/mso" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
0003         xsi:schemaLocation="http://www.example.org/mso mso.xsd">
0004         <struct name="PDF">
0005                 <type name="header" type="Header" />
0006                 <type name="body" type="Body" />
0007                 <type name="crossReferenceTable" type="CrossReferenceTable" />
0008                 <type name="trailer" type="Trailer" />
0009         </struct>
0010         <struct name="Whitespace">
0011                 <uint8 name="ws">
0012                         <limitation value="0x00|0x09|0x0A|0x0C|0x0D|0x20" />
0013                 </uint8>
0014         </struct>
0015         <struct name="Delimiter">
0016                 <uint8 name="delimiter">
0017                         <limitation value="'('|')'|'['|']'|'{'|'}'|'/'|'%'" />
0018                 </uint8>
0019         </struct>
0020         <struct name="Digit">
0021                 <uint8 name="digit">
0022                         <limitation value="'0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9'" />
0023                 </uint8>
0024         </struct>
0025         <struct name="Eol">
0026                 <hex>0D0A</hex>
0027         </struct>
0028         <struct name="Header">
0029                 <text>%PDF-1.3</text>
0030                 <type name="ws" type="Whitespace" minOccurs="1" maxOccurs="unbounded" />
0031         </struct>
0032         <struct name="Body">
0033                 <type name="objects" type="Object" minOccurs="0" maxOccurs="unbounded" />
0034         </struct>
0035         <struct name="CrossReferenceLine">
0036                 <type name="offset" count="10" type="Digit" />
0037                 <hex>20</hex>
0038                 <type name="generation" count="5" type="Digit" />
0039                 <hex>20</hex>
0040                 <uint8 name="state">
0041                         <limitation value="'n'|'f'" />
0042                 </uint8>
0043                 <hex>0D0A</hex>
0044         </struct>
0045         <struct name="CrossReferenceSection">
0046                 <type name="start" array="true" type="Digit" />
0047                 <hex>20</hex>
0048                 <type name="offset" array="true" type="Digit" />
0049                 <type name="ws" type="Whitespace" minOccurs="1" maxOccurs="unbounded" />
0050                 <type name="entries" type="CrossReferenceLine" minOccurs="1"
0051                         maxOccurs="unbounded" />
0052         </struct>
0053         <struct name="CrossReferenceTable">
0054                 <text>xref</text>
0055                 <type name="ws" type="Whitespace" minOccurs="1" maxOccurs="unbounded" />
0056                 <type name="sections" type="CrossReferenceSection" minOccurs="1"
0057                         maxOccurs="unbounded" />
0058         </struct>
0059         <struct name="Boolean">
0060                 <fixedchoice name="boolean">
0061                         <text>true</text>
0062                         <text>false</text>
0063                 </fixedchoice>
0064         </struct>
0065         <struct name="Integer">
0066                 <uint8 name="sign">
0067                         <limitation value="'+'|'-'" />
0068                 </uint8>
0069                 <type name="value" minOccurs="1" maxOccurs="unbounded" type="Digit" />
0070         </struct>
0071         <struct name="Real">
0072                 <uint8 name="sign">
0073                         <limitation value="'+'|'-'" />
0074                 </uint8>
0075                 <type name="integer" minOccurs="0" maxOccurs="unbounded" type="Digit" />
0076                 <text>.</text>
0077                 <type name="fraction" minOccurs="0" maxOccurs="unbounded" type="Digit" />
0078         </struct>
0079         <struct name="Number">
0080                 <choice name="value">
0081                         <type type="Integer" />
0082                         <type type="Real" />
0083                 </choice>
0084         </struct>
0085         <struct name="EscapedCharacter">
0086                 <text>\</text>
0087                 <uint8 name="character" />
0088         </struct>
0089         <struct name="ParenthesisStringCharacters">
0090                 <uint8 name="literal" minOccurs="1" maxOccurs="unbounded">
0091                         <limitation expression="!='\'" />
0092                         <limitation expression="!=')'" />
0093                         <limitation expression="!='('" />
0094                 </uint8>
0095         </struct>
0096         <struct name="ParenthesisString">
0097                 <text>(</text>
0098                 <type name="string" type="ParenthesisStringContent" array="true" />
0099                 <text>)</text>
0100         </struct>
0101         <struct name="ParenthesisStringContent">
0102                 <choice name="content">
0103                         <type type="EscapedCharacter" />
0104                         <type type="ParenthesisStringCharacters" />
0105                         <type type="ParenthesisString" />
0106                 </choice>
0107         </struct>
0108         <struct name="Hexadecimal">
0109                 <uint8 name="character">
0110                         <limitation
0111                                 value="'0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9'|'a'|'b'|'c'|'d'|'e'|'f'|'A'|'B'|'C'|'D'|'E'|'F'" />
0112                 </uint8>
0113         </struct>
0114         <struct name="HexadecimalStringContent">
0115                 <type type="Hexadecimal" name="a" />
0116                 <type name="ws" type="Whitespace" array="true" />
0117                 <type type="Hexadecimal" name="b" />
0118                 <type name="ws2" type="Whitespace" array="true" />
0119         </struct>
0120         <struct name="HexadecimalString">
0121                 <text>&lt;</text>
0122                 <type name="string" type="HexadecimalStringContent" array="true" />
0123                 <text>&gt;</text>
0124         </struct>
0125         <struct name="String">
0126                 <choice name="string">
0127                         <type type="ParenthesisString" />
0128                         <type type="HexadecimalString" />
0129                 </choice>
0130         </struct>
0131         <struct name="Name">
0132                 <text>/</text>
0133                 <uint8 name="name" array="true">
0134                         <limitation expression="!=0x00" />
0135                         <limitation expression="!=0x09" />
0136                         <limitation expression="!=0x0A" />
0137                         <limitation expression="!=0x0C" />
0138                         <limitation expression="!=0x0D" />
0139                         <limitation expression="!=0x20" />
0140                         <limitation expression="!='('" />
0141                         <limitation expression="!=')'" />
0142                         <limitation expression="!='['" />
0143                         <limitation expression="!=']'" />
0144                         <limitation expression="!='{'" />
0145                         <limitation expression="!='}'" />
0146                         <limitation expression="!='/'" />
0147                         <limitation expression="!='%'" />
0148                 </uint8>
0149         </struct>
0150         <struct name="ArrayEntry">
0151                 <choice name="entry">
0152                         <type type="Number" />
0153                         <type type="String" />
0154                         <type type="Dictionary" />
0155                         <type type="Array" />
0156                 </choice>
0157                 <type name="ws" type="Whitespace" minOccurs="1" maxOccurs="unbounded" />
0158         </struct>
0159         <struct name="Array">
0160                 <text>[</text>
0161                 <type name="ws" type="Whitespace" minOccurs="1" maxOccurs="unbounded" />
0162                 <type name="entries" type="ArrayEntry" array="true" />
0163                 <text>]</text>
0164         </struct>
0165         <struct name="Object">
0166                 <choice name="entry">
0167                         <type type="Number" />
0168                         <type type="String" />
0169                         <type type="Dictionary" />
0170                         <type type="Array" />
0171                 </choice>
0172         </struct>
0173         <struct name="DictionaryEntry">
0174                 <type name="key" type="Name" />
0175                 <type name="ws" type="Whitespace" minOccurs="1" maxOccurs="unbounded" />
0176                 <type name="value" type="Object" />
0177                 <type name="ws2" type="Whitespace" minOccurs="1" maxOccurs="unbounded" />
0178         </struct>
0179         <struct name="Dictionary">
0180                 <text>&lt;&lt;</text>
0181                 <type name="ws" type="Whitespace" minOccurs="1" maxOccurs="unbounded" />
0182                 <type name="entries" type="DictionaryEntry" array="true" />
0183                 <text>&gt;&gt;</text>
0184         </struct>
0185         <struct name="Stream">
0186                 <type name="info" type="Dictionary" />
0187                 <type name="ws" type="Whitespace" minOccurs="1" maxOccurs="unbounded" />
0188                 <text>stream</text>
0189                 <fixedchoice name="ws2">
0190                         <hex>0A</hex>
0191                         <hex>0D0A</hex>
0192                 </fixedchoice>
0193                 <uint8 name="stream" count="info['Length']" />
0194                 <fixedchoice name="endstream">
0195                         <hex>0A6E65736472746165</hex>
0196                         <hex>0D6E65736472746165</hex>
0197                         <hex>0D0A6E65736472746165</hex>
0198                         <text>endstream</text>
0199                 </fixedchoice>
0200         </struct>
0201         <struct name="Null">
0202                 <text>null</text>
0203         </struct>
0204         <struct name="Trailer">
0205                 <text>trailer</text>
0206                 <text>startxref</text>
0207                 <type name="ws" type="Whitespace" minOccurs="1" maxOccurs="unbounded" />
0208                 <type name="startxref" array="true" type="Digit" />
0209                 <text>%%EOF</text>
0210         </struct>
0211 </mso>