# 対応範囲
## Browser WebAssembly
`bindings/wasm`はPDF、DOCX、XLSX、PPTXと、同じOOXML parserで扱えるmacro-enabled variantを
Web Worker内で変換します。DOMへ文書SVGをinlineせず、ページSVGは`<img>` Blob URL、選択・検索は
Page IRから生成するboundedな透明テキスト位置レイヤーを使います。ブラウザ既定値は入力64 MiB、
ZIP展開part 32 MiB、1,000ページ、SVG全体128 MiB、テキスト位置50,000 span/8 MiBです。上限を
超えるテキスト位置は警告付きで省略します。暗号化文書を拒否し、macro・外部relationship・remote
resourceは実行/取得しません。JPEG 2000 PDF画像はこのbuildではdecodeせず原dataを残してwarningを
出します。Native Node.js/CLIのJPEG 2000 decode範囲には影響しません。
NativeのZIPベース形式(OOXML、OpenDocument、EPUB、XPSなどのパッケージ)は、
partを展開する前にcentral directoryが100,000エントリを超えていれば拒否します。
個別partの展開上限と各形式の累積入力上限も引き続き適用します。
## PDF
| FDF form data (`.fdf`; content sniffing) | Adobe Forms Data Format field dictionaries are parsed with the PDF object grammar after signature normalization. Fully-qualified field names, types, safe values, password masking, choice-option counts and action/attachment counts render as bounded rows. JavaScript, submit/launch actions, file specifications, embedded files and external URLs are omitted or redacted; no form submission or PDF page rendering runs. Limits: 64 MiB input, 500,000 objects, depth 64, 100,000 fields, 2 MiB/value and 32 MiB total values. Source: [Adobe FDF reference](https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/pdfreference1.2.pdf)
| XFDF XML form data (`.xfdf`, `.xfdf.xml`; content sniffing) | ISO 19444/Adobe XFDF fields and nested values render as bounded fully-qualified rows with sensitive-field masks, rich-text and annotation counts, and PDF target/ID counts. PDF references, actions, JavaScript, rich-text payloads, appearance data and external URLs are omitted or redacted; no form submission, annotation import or PDF rendering runs. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 96, 100,000 fields and 100,000 rows. Source: [ISO 19444-1 XFDF](https://www.iso.org/standard/74272.html)
| 項目 | 状態 |
|---|---|
| classic xref / xref stream / object stream | `lopdf`経由で対応 |
| page MediaBox / CropBox / Rotate / UserUnit | 対応。`UserUnit`はpage辞書直下だけを読み、物理寸法と全page geometryへ同倍率を適用 |
| path、fill、stroke、dash、line cap/join | 対応 |
| CTM、q/Q、Form XObject、Form BBox | 対応 |
| nested clip intersection | 親clipから順にSVG groupへ適用 |
| DeviceGray/RGB/CMYK、CalGray/CalRGB/Lab | 対応 |
| Indexed、ICCBased、Separation、DeviceNとtint transform | path、shading、画像で対応 |
| 1/2/4/8/16-bit packed image、Decode、ImageMask stencil | row paddingを含め8-bit PNGへ正規化。stencilは現在fill色のRGBAとして対応 |
| JPEG、JPX、Flate画像 | 対応。JPEG圧縮SMaskはbounded grayscale alphaへdecode。JPXは非subsampled・符号なし・均一精度の1/3 channel grayscale/RGB/CalGray/CalRGB画像(1–16 bit)をdimension/precision検査後にPNG化。`/SMaskInData 1`の単一embedded alphaはPNG透明度へ保持し、`2`ではparent image dictionaryの`/Matte`を使うDeviceGray/DeviceRGB/CalGray/CalRGBのpreblended sampleをunblendします。未指定/`0`ではembedded alphaを無視。別streamの`/SMask`はDeviceGrayの単純な画像maskに限り、`Matte`なし・nested maskなし・size上限内ならdecodeし、異なるmask寸法は共通pixel格子へnearest-neighbor resample。`/Mask` explicit mask、未対応のMatte/color space、`SMaskInData`と外部`/SMask`の併用はwarning付きで元のJPEG 2000 dataを埋め込み、SVGではPDF-level maskが失われる場合があります。raw codestream fallbackは`image/j2c`、boxed JP2は`image/jp2`を指定。`/BitsPerComponent` dictionary値ではなくcodestream精度を使う。JPX decode上限: base/mask各20M pixels、128 MiB decoded sample planes、64 MiB normalized/PNG、mask込みの出力格子も制限。仕様: [ISO 32000-1:2008 §7.4.9, §8.9.5.2, §11.6.5.3](https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf), [IANA image/j2c](https://www.iana.org/assignments/media-types/image/j2c) |
| `/Interpolate false` | `image-rendering="pixelated"`として対応 |
| unfiltered inline image | 対応 |
| filtered inline/external image(LZW、Flate、CCITT Group3/4等) | bounded native recoveryに対応。external CCITT DecodeParmsと許可されたdamaged Group3 rowも処理 |
| simple font / Type0 / ToUnicode | 対応 |
| `/Widths`、CID `/W`、`/DW`文字送り | 対応。1 code→1 Unicode scalarを証明できるrunはglyphごとのx originをpositioned `tspan`へ保持し、代替fontの累積advance誤差を回避 |
| text fill / stroke / fill+stroke | 対応 |
| text clip(rendering mode 4–7) | outline取得可能fontではglyph union clipとして対応 |
| embedded TrueType/OpenType/raw CFF Type2/Type1 outline | semantic SVG pathとして対応。PDF Encoding、font builtin Encoding、AGL、Form-local font scopeを解決。Arial等はeditable textを維持 |
| explicit embedded-font fidelity mode | `outline_embedded_pdf_text=true`で埋め込みfontをglyph path化。代替font差を回避する代わりに文字編集性を失うため既定off。fontのoutline・埋め込み権利確認warningを必ず出力 |
| Type3 font | CharProcs、FontMatrix、glyph-local resourcesをSVG groupへ展開。rendering mode 0に対応、その他modeはCharProc paint近似+警告 |
| separable/non-separable blend mode | SVG `mix-blend-mode`として対応 |
| isolated / non-isolated transparency group | SVG isolation有無を保って対応 |
| opaque Normal knockout group | source-overとの同値性を証明して対応 |
| partial-alpha path knockout | 後続shape unionをluminance mask化。非path effectは検出・警告 |
| Alpha/Luminosity soft mask Form、BBox、BC | SVG mask sceneとして対応 |
| soft-mask transfer function `/TR` | Functionを33点sampleし、luminance/alpha別SVG component-transfer filterとして対応 |
| Function Type 0/2/3/4 | sampled multilinear、exponential、stitching、calculator stack machineに対応 |
| Function shading Type 1 | 2入力fieldを適応vector cellへ分割 |
| axial/radial shading | containedはSVG gradient、noncontainedは逆変換scalar fieldの適応vector cell |
| free-form/lattice Gouraud mesh Type 4/5 | shared component Decode rangeを復元し、shadingごと最大3,000・page全体50,000の適応micro-triangle tessellation |
| Coons/tensor patch mesh Type 6/7 | patch reuse、bicubic評価、shadingごと最大3,000・page全体50,000の適応micro-triangle tessellation |
| Shading PatternType 2 | Matrix、BBox、Background、Extend、page alphaを保つgradient paint。fill/stroke/textに対応 |
| Tiling PatternType 1 | colored/uncolored、BBox、XStep/YStep、Matrix、pattern-local resource、CTM variantをSVG patternとして対応 |
| compatibility / inline-image syntax | BX/EX内の未知operatorを仕様どおり無視。BI/IDはliteral/hex/commentを除外したsyntax scanで検出 |
| ExtGStateとgraphics-state stack | `ca`/`CA`/`AIS`/`BM`/`SMask`に加え、`LW`/`LC`/`LJ`/`ML`/`D`を累積更新。`q/Q`でfont、size、spacing、scale、leading、rise、text rendering modeも保存・復元 |
| symbol font fallback | Wingdings由来の標準Unicode丸・菱形・check・arrowをmonochrome sans glyphへ限定正規化し、元文字列はaria labelへ保持 |
| 埋め込み画像の参照 | SVG 2の`href`のみ。`xlink:href`は出力しないため、librsvg 2.46未満やSVG 1.1専用ビューアでは画像が表示されない |
| annotation appearance / form fallback | `/AP /N` appearance streamのある非Link/Popup annotationはForm XObjectとして描画。Hidden/Invisible/NoView flagは省略。APが無いFreeText annotationは`Contents`と`DA`、APが無いtext Widgetは継承した`FT=Tx`/`V`/`DA`からbounded linesで補完し、password fieldの値はbulletでmaskする。APの無いchoice Widgetはsingle/multiselect `/V` と `/Opt` export/display pairをbounded textとして表示。checkbox/radio Widgetは`/AS` state(checkboxはfield `/V`にもfallback)からsimple box/circleとcheck/dotを描画し、radioで`/AS`が無ければoff表示。pushbutton WidgetはAPが無い場合に合成しない。font resource、rich-text `/RC`/`/RV`、callout、背景/枠appearanceは近似または省略。Link actionは出力せず、border幅と色を明示した場合に限りborderを描く。上限: 10,000 annotations/page、250,000 page nodes、2 MiB/form `V`/FreeText `Contents`/choice values、64 KiB `DA`、10,000 choice options/field、2 MiB choice option text。仕様: [ISO 32000-1:2008 §12.5.6.6 FreeText, §12.7.3.3 Variable Text, §12.7.4 Button/Choice Fields](https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf) |
| 暗号化PDF | ユーザーパスワードが必要なものは明示拒否。ユーザーパスワードが空の暗号化(権限フラグのみ)は他のビューア同様に復号して変換する。復号に失敗したページは「drew nothing」警告で報告 |
## Legacy Word Binary (`.doc`, Word `.dot` templates)
| 項目 | 状態 |
|---|---|
| CFB container / FIB | Word 97–2007 FIB versions are validated; the FIB selects `WordDocument` and `0Table`/`1Table`. A `.dot` is treated as a Word template only when it is a CFB file with a Word FIB; text Graphviz `.dot` keeps its diagram route. |
| Text locations | Reads the main-story character count, simple contiguous text (`fcMin`/`fcMac`) or the CLX `Pcdt`/`PlcPcd` piece table. Piece CP ranges, compressed/UTF-16 byte offsets, FIB counts, and stream bounds are checked before slicing. UTF-16LE is decoded directly; compressed bytes use the FIB language ID with a warning and Windows-1252 fallback when unknown. Field instructions are suppressed and stored field results are shown; fields are not recalculated. |
| Preview fidelity | Text is flowed into bounded A4 pages. Paragraph marks and explicit form-feed breaks are retained; table cell marks become text separators. Original page geometry, styles, tables, pictures, headers/footers, footnotes/endnotes, comments, textboxes, and embedded objects are not reconstructed. The report warns about the text-flow approximation and omitted content. |
| Safety limits | Input and `WordDocument` stream: 64 MiB; selected CLX range: 16 MiB; main story: 16M CPs; piece table: 1,000,000 pieces; extracted text: 48 MiB; rendered blocks: 200,000; CFB directory: 50,000 entries and 8 MiB combined path bytes. Encrypted or obfuscated files are rejected; macros and external objects are never executed or opened. |
| Specification | [Microsoft MS-DOC overview](https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-doc/8818694f-788d-4a1b-84ae-f6af18b8dffa), [FIB reading algorithm](https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-doc/acb08ace-f268-4879-a998-de592103a70e), [Retrieving text](https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-doc/01d5d8c4-cf9c-4ef9-80fd-439e763cfe01), [MS-CFB](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-cfb/50708a61-81d9-49c8-ab9c-43c98a795242) |
## Legacy PowerPoint Binary (`.ppt`)
| 項目 | 状態 |
|---|---|
| Live edits / persist directory | Reads `CurrentUserAtom`, follows the `UserEditAtom` chain, and applies `PersistDirectoryAtom` entries from oldest to newest so newer persist IDs replace stale offsets. It resolves the live `DocumentContainer`, the presentation `SlideListWithTextContainer`, and each ordered `SlidePersistAtom`; it does not scan dead top-level records for apparent slides. |
| Slide text | Reads UTF-16 `TextCharsAtom`, low-byte Unicode `TextBytesAtom`, and `OutlineTextRefAtom` links inside OfficeArt textboxes. It emits one A4 text-flow page per slide in the common case; long slides may flow to multiple pages. Text shape order follows the OfficeArt record sequence. |
| Preview fidelity | This is a text-only preview, not a slide renderer. Geometry, text formatting, themes/master inheritance, images/backgrounds, charts, tables, groups without direct text, animations, audio/video, notes, and embedded/linked objects are omitted. The report carries this limitation on each page. No macro is executed and no external resource or OLE payload is opened. |
| Safety limits | Input and selected streams: 64 MiB; CFB directory: 50,000 entries / 8 MiB combined path bytes; edit chain: 4,096; persist objects: 500,000; records: 1,000,000 at depth 64; slides: 10,000; extracted text: 32 MiB; output blocks: 500,000. The caller's `max_pages` bound still applies. Files marked encrypted by the Current User token or `encryptSessionPersistIdRef` are rejected. |
| Specification | [MS-PPT overview](https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-ppt/546cbcd8-473c-4425-be4e-ebbf7d4d7430), [PowerPoint Document Stream and live-record procedure](https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-ppt/1fc22d56-28f9-4818-bd45-67c2bf721ccf), [file structure and persist-directory example](https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-ppt/5bda8009-6612-4679-a6eb-6fb83cbcf195), [SlidePersistAtom](https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-ppt/48dce412-9692-4f93-aeb7-3d9fdd3a0a5a), [OfficeArt record hierarchy](https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-odraw/119fd7ce-1fc1-47aa-be05-0b00efb28c41), [OfficeArtClientTextbox](https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-ppt/f50070dd-a4dc-4edd-a446-c4fcc5c80ace), [TextCharsAtom](https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-ppt/a3c5c8d5-e530-4167-a242-7743bc99aeac), [TextBytesAtom](https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-ppt/80aae34b-2699-43fa-9e6a-c560ae790cd7) |
## Office Open XML Transitional / Strict
DOCX、XLSX、PPTXはTransitionalとISO/IEC 29500 Strictの主要WordprocessingML / SpreadsheetML / PresentationML namespace variantを読み込みます。Strictの`purl.oclc.org/ooxml` namespaceとrelationship typeは、既存のZIP part layout、local element names、relationship IDsへ解決して各format parserへ渡します。Strict/Transitional双方でmacroや外部relationshipは実行・取得しません。ZIP entry、XML bytes/events、cell/page等には同じ既存上限を適用します。実装確認にはStrict DOCX/XLSX/PPTX各fixtureを使用します。仕様: [Microsoft Open XML SDK: ISO Strict support](https://learn.microsoft.com/en-us/office/open-xml/about-the-open-xml-sdk), [ECMA-376 Office Open XML formats](https://ecma-international.org/publications-and-standards/standards/ecma-376/) |
Flat OPC (`.flatopc`, `.fopc`, `.flatopc.xml`; content sniffing) is the single-XML serialization of an Open XML package. `pkg:part` names and content types are validated, XML payloads are serialized without the `pkg:xmlData` wrapper, base64 payloads are decoded with whitespace handling, and the resulting in-memory ZIP is passed to the existing DOCX/XLSX/PPTX renderer. Package parts never reach the filesystem; macros, external relationships, URLs, entities and active content remain inert. Bounds: 128 MiB input, 128 MiB cumulative expanded parts, 100,000 parts, 16 MiB/part and 500,000 XML events. Source: [Microsoft WordprocessingDocument.FromFlatOpcDocument](https://learn.microsoft.com/en-us/dotnet/api/documentformat.openxml.packaging.wordprocessingdocument.fromflatopcdocument?view=openxml-3.0.1), [ECMA-376 package model](https://www.ecma-international.org/wp-content/uploads/OfficeXML-White-Paper-v2008-10-03.pdf) |
AASX (`.aasx`; content sniffing) is an OPC/ZIP package for Asset Administration Shell exchange. The converter validates the root `aasx-origin` relationship and follows only bounded `aas-spec` relationships to XML/JSON specification parts. It renders shell, submodel, concept-description, submodel-element, file/blob and relationship counts; supplementary CAD/manual files, thumbnails, identifiers, values, URLs, signatures and encryption material are omitted or redacted. Bounds: 128 MiB input and cumulative expanded metadata, 100,000 entries, 16 MiB/part, 500,000 XML events, 300,000 XML nodes and JSON depth/value limits. Source: [IDTA AASX Part 5](https://industrialdigitaltwin.io/aas-specifications/IDTA-01005/v3.1/index.html) |
## PPTX
| 項目 | 状態 |
|---|---|
| slide order / size | 対応 |
| per-master theme color / major-minor font | slide→layout→master→theme relationshipを解決し、theme partをcacheして対応 |
| master → layout → slide装飾・背景layer | 対応 |
| placeholder geometry / level text style / vertical anchor | idxを優先し、unique title/footer/date/slide-number typeへfallback。geometry欠落footer/date/slide番号はbounded既定位置へ配置 |
| rect / roundRect / ellipse / polygon / arrows / chevron / star / seals / braces / brackets / arc / can / cube / moon / donut / wave / flowchart / bentConnector2/3 / straightConnector / wedge rect/round/ellipse callout / borderCallout等 | 対応。主要presetはadjustmentを解決 |
| solid / linear-radial gradient / line / dash / rotation | 対応 |
| nested group transform | off/ext/chOff/chExt、rotation、flipをaffine合成してshape/image/textへ適用 |
| paragraphs / runs / bold / italic / alignment / bullet / wrap | 空白区切りwordを保持し、cell/shape幅を超える長語は文字単位に分割 |
| embedded raster / SVG image / EMF・WMF / crop / color effect | `blip`とOffice SVG extensionの`svgBlip` relationshipを解決してdata URI化。EMF・WMFは12MiB上限内でSVGへ変換し、失敗時だけ警告付きplaceholderへfallback。`srcRect`の正・負cropを画像座標+回転/group対応clipへ変換。duotone、grayscale、brightness/contrast、exact color-change transparencyをordered SVG filter化し、通常raster画像byteは再encodeしない |
| custom geometry | guide式、move/line/quad/cubic/arc/closeをeditable SVG pathへ変換。未解釈式だけbounding box+警告 |
| solid/gradient alpha | fill、stroke、text、gradient stopで対応 |
| preset pattern fill | `pct5`、`pct90`、`narHorz`、`narVert`、`wdUpDiag`、`wdDnDiag`、`dkUpDiag`、`openDmnd`を前景/背景色・alpha付きcompact vector tileへ変換 |
| cached bar / line / pie / doughnut / area / XY scatter chart | 簡易native SVG previewとして対応。カテゴリと疎なpoint indexを保持し、負値はzero axisをまたいで表示。areaはfill、doughnutはhole、XY scatterは数値x/yとmarker/line styleを反映。chartにlegendがある場合は右側へ最大16項目を配置。bubble、その他のchart type、combo chartは未対応placeholder。軸目盛り・ラベル、legendの指定位置、data labels、chart styling、3D効果は再現しない。仕様: [ECMA-376 Part 1](https://dev.ecma-international.org/publications-and-standards/standards/ecma-376/) |
| native table | column/row実寸、cell fill、run書式、alignment、clip、gridSpan/rowSpan、header/band fallbackをeditable SVGへ変換。row/column metricが0ならframe extentと有効metric平均から有限復元 |
| outer shadow / glow / effectRef | shape、picture、shape text、table textのdirect `outerShdw`/`glow`と、1-based theme `effectRef`を色・color transform・alpha・radius/distance/direction付きbounded SVG filterへ変換。idx 0とempty/direct clearを保持し、併用時は1 filterへ合成。`a14:hiddenEffects`は可視化しない |
| SmartArt cached diagramDrawing | frame/data/drawing relationship、shape/text/image、txXfrm rotation、theme color transformを解決して対応 |
| embedded video / audio | poster画像を静的SVG imageとして保持。poster欠落時はplaceholderを描画し、再生不可を警告 |
| OLE embedded object | 保存済みpreviewを保持。preview欠落時はframe placeholderを描画し、activation不可を警告 |
| SmartArt再layout | cached diagramDrawingがない場合は未対応 |
| inner shadow、reflection、soft edge、3D | 未対応 |
## XLSX
| 項目 | 状態 |
|---|---|
| workbook / sheet order | 対応 |
| shared string / inline string / cached formula value | 対応 |
| row height / column width / hidden rows-columns | 対応 |
| merged cells | 対応 |
| font / fill / borders / alignment | 対応 |
| general numeric alignment / number format | percent、桁区切り、通貨、科学表記、日付・時刻・経過時間、1900/1904 date systemに対応 |
| cell text clipping | 対応 |
| formula value | 保存済みcached valueを優先。欠落時はNumber/Text/Blank、文字列比較、current/cross-sheet参照、単一cell definedName、算術・範囲、SUM/AVERAGE/MIN/MAX/COUNT/COUNTA、COUNTIF(S)、SUMIF(S)、AVERAGEIF(S)、exact VLOOKUP、IF/ROUND/ABS等をbounded fallback評価 |
| conditional formatting | DXF font/fill、cellIs、expression(AND/OR/range比較/COUNTIF/CONCAT等)、containsText、contains/notContainsBlanks、2/3色scale、data barに対応。expression結果はsheet単位cache。standard fallbackがあるx14 extLstは重複解析しない |
| Drawing oneCell/twoCell/absolute image | hidden互換objectを除外し、anchor直下extだけを解決して対応 |
| Drawing basic shape / text box / horizontal-vertical line | markerが逆転/同一点ならshape-local xfrm off/extへfallback。0寸法auto-fit text boxはscript-aware自然寸法で復元 |
| cached bar / line / pie / doughnut / area / XY scatter chart | 簡易native SVG previewとして対応。カテゴリと疎なpoint indexを保持し、負値はzero axisをまたいで表示。areaはfill、doughnutはhole、XY scatterは数値x/yとmarker/line styleを反映。chartにlegendがある場合は右側へ最大16項目を配置。bubble、その他のchart type、combo chartは未対応placeholder。軸目盛り・ラベル、legendの指定位置、data labels、chart styling、3D効果は再現しない。仕様: [ECMA-376 Part 1](https://dev.ecma-international.org/publications-and-standards/standards/ecma-376/) |
| print area / manual page breaks | `_xlnm.Print_Area`とrow/column breakをregion分割し、1 sheetから複数SVG pageを生成 |
| pageSetup / fit-to-page | Letter/Legal/A3/A4/A5等、portrait/landscape、margin、scale、fitToWidth/Height、中央配置に対応 |
| print titles | `_xlnm.Print_Titles`の反復行・反復列をmanual break後の各SVG pageへ再配置 |
| large sheet auto tile | print area/pageSetupがないsheetを16,384ptまたは2,000 grid-cell単位へ自動分割。prefix座標を共有しPage IRをbounded化 |
## Excel Binary and Legacy XLS
| 項目 | 状態 |
|---|---|
| `.xlsb` | Excel Binary Workbook OPC package. ZIP entry count, names, individual/total expanded sizes, BIFF12 record lengths/counts, workbook relationships, sheet used ranges, cell coordinates/counts, inline/shared strings, and style-table sizes are preflighted before Calamine opens parts. Worksheet cells are read incrementally and rendered in 40-row×12-column pages. Limits: 64 MiB input, 128 MiB uncompressed package, 64 MiB/entry (16 MiB workbook/styles and 32 MiB shared strings), 8 MiB/record, 1,000 sheets, 500,000 dense cells/sheet, 2,000,000 dense cells total, 1,000,000 populated cells, 128 MiB expanded text. Hidden worksheets are included with a warning. Cached values only; formulas are not recalculated, and macros are never executed. Macro-sheet workbooks are unsupported. Sources: [Microsoft MS-XLSB](https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-xlsb/acc8aa92-1f02-4167-99f5-84f9f676b95a), [BrtWsDim bounds](https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-xlsb/81a65821-5dfa-43e1-9f82-92863b836f96), [Calamine Xlsb reader](https://docs.rs/calamine/0.36.1/calamine/struct.Xlsb.html) |
| SYLK / Symbolic Link (`.slk`) | Parses the required leading `ID` record plus bounded `B`, `C`, `F`, and `E` records. Populated one-based `X`/`Y` coordinates and `K` cached values render through the common 100-row × 32-column table pages; `E` formulas are displayed as inert annotations and are never evaluated. Advisory `B` bounds do not drive allocation. Formatting, print, shared-formula, and other metadata records are ignored with a warning. Limits: 64 MiB input, 1,000,000 lines, 1 MiB/line, 50,000 rows, 256 columns, 1,000,000 cells and 64 KiB/value. Sources: [Microsoft Office file format reference](https://learn.microsoft.com/en-us/office/compatibility/office-file-format-reference), [SYLK record overview](https://corepunch.github.io/open-realm/games/warcraft-3/file-formats/slk/) |
| DIF / Data Interchange Format (`.dif`) | Parses the required `TABLE`, `VECTORS`, `TUPLES`, and `DATA` chunks, then renders `BOT`/`EOD` tuples with numeric, string, boolean, NA and ERROR values as bounded table pages. Advisory vector/tuple counts are validated but do not drive unbounded allocation; formulas, metadata and external content are never evaluated. Limits: 64 MiB input, 1,000,000 lines, 1 MiB/line, 50,000 rows, 256 columns, 1,000,000 cells and 64 KiB/value. Sources: [DIF format overview](https://docs.fileformat.com/spreadsheet/dif/), [IBM DIF files](https://www.ibm.com/docs/en/personal-communications/15.0.0?topic=types-data-interchange-format-files) |
| FASTA / FASTQ sequence records (`.fa`, `.fasta`, `.fna`, `.faa`, `.fq`, `.fastq`) | FASTA definition lines and wrapped sequence records render as bounded tables with identifier, description, length, GC ratio, ambiguous-base count and a 512-character preview. FASTQ accepts wrapped sequence/quality sections, requires equal lengths, and reports printable quality ASCII min/max without guessing Phred-33/64. Sequence identifiers are inert text; no alignment, decoding, path resolution or external resource access occurs. Limits: 128 MiB input, 5,000,000 lines, 1 MiB/line, 100,000 records, 100 million total bases, 10 million bases/record and 512 preview characters. Sources: [NCBI FASTA format](https://www.ncbi.nlm.nih.gov/genbank/fastaformat), [NCBI SRA FASTQ guide](https://www.ncbi.nlm.nih.gov/sra/docs/submitformats/) |
| GFF3 / GTF genome annotations (`.gff`, `.gff3`, `.gtf`) | Parses bounded nine-column tab-separated feature rows. Validates 1-based start/end ranges, finite score, strand/phase fields and GFF3 `tag=value` or GTF quoted attributes; renders sequence ID, source/type, coordinates and attributes as inert tables. Directives and embedded `##FASTA` sequence tails are omitted, and hierarchy, external URLs and sequence analysis are never executed. Limits: 128 MiB input, 5,000,000 lines, 1 MiB/line, 100,000 features, 256 attributes/feature and 64 KiB attributes. Sources: [Sequence Ontology GFF3](https://github.com/The-Sequence-Ontology/Specifications/blob/master/gff3.md), [NCBI GFF3](https://www.ncbi.nlm.nih.gov/datasets/docs/v2/reference-docs/file-formats/annotation-files/about-ncbi-gff3/), [GENCODE GTF](https://www.gencodegenes.org/pages/data_format.html) |
| BED / bedGraph genomic intervals (`.bed`, `.bedgraph`, `.bg`) | Parses bounded UCSC BED3–BED12 whitespace-delimited intervals and four-column bedGraph values. Validates zero-based half-open `chromStart`/`chromEnd`, BED score/strand/RGB fields, BED12 block counts/lists and finite bedGraph data values. `track`/`browser` directives, reference-genome lookups and remote tracks remain inert. Limits: 128 MiB input, 2,000,000 lines, 1 MiB/line, 100,000 features, 12 columns, 1,200,000 cells. Sources: [UCSC BED FAQ](https://genome.ucsc.edu/FAQ/FAQformat), [UCSC bedGraph](https://www.genome.ucsc.edu/goldenPath/help/bedgraph.html) |
| VCF variant calls (`.vcf`) | Parses VCF v4.x metadata, the tab-delimited `#CHROM` header, eight fixed variant fields, optional `FORMAT` and sample columns, finite QUAL values, 1-based POS and inert INFO/allele text. `##reference` and other metadata URLs, genotype/phasing interpretation, normalization, embedded `##FASTA` sequences and external resources are never loaded. `.vcf` is content-disambiguated from vCard. Limits: 128 MiB input, 2,000,000 lines, 1 MiB/line, 100,000 variants, 256 columns, 2,000,000 cells and 64 KiB/field. Sources: [VCF v4.3 specification](https://github.com/samtools/hts-specs/blob/master/VCFv4.3.tex), [GDC VCF fields](https://docs.gdc.cancer.gov/Data/File_Formats/VCF_Format/) |
| SAM alignment text (`.sam`) | Parses optional `@` headers and bounded tab-delimited alignment rows with the 11 mandatory QNAME/FLAG/RNAME/POS/MAPQ/CIGAR/RNEXT/PNEXT/TLEN/SEQ/QUAL fields plus `TAG:TYPE:VALUE` optional tags. Validates flags, positions, MAPQ, CIGAR operators, printable SEQ/QUAL and matching sequence/quality lengths; reference genomes, CIGAR projection, genotype/phasing interpretation and external resources remain inert. Limits: 128 MiB input, 2,000,000 lines, 1 MiB/line, 100,000 alignments, 256 columns, 2,000,000 cells and 64 KiB/field. Source: [SAMv1 specification](https://samtools.github.io/hts-specs/SAMv1.pdf), [SAM optional tags](https://samtools.github.io/hts-specs/SAMtags.pdf) |
| WIG / Wiggle continuous signals (`.wig`, `.wiggle`) | Parses UCSC `fixedStep` and `variableStep` declarations and expands finite values into one-based, fully-closed `chromStart`/`chromEnd` rows. Validates positive `start`/`step`/`span`, strictly increasing variable positions, line/value bounds and coordinate overflow. `track`/`browser` directives and remote tracks remain inert. Limits: 128 MiB input, 2,000,000 lines, 1 MiB/line, 100,000 values and 64 KiB/value. Source: [UCSC Wiggle Track Format](https://mgc.cse.ucsc.edu/goldenPath/help/wiggle.html) |
| MAF multiple alignments (`.maf`) | Parses `##maf` headers, blank-line-separated `a` alignment blocks and seven-field `s` sequence rows. Validates zero-based starts, sizes, source sizes, strand, sequence characters and ungapped size; renders bounded block/source/coordinate/score/sequence-preview tables. Optional `i`, `e`, `q` and comments remain inert, with no reference lookup or coordinate lift. Limits: 128 MiB input, 2,000,000 lines, 1 MiB/line, 100,000 blocks, 500,000 sequence rows, 10 MiB/row, 64 MiB total sequence and 512 preview characters. Source: [UCSC MAF format](https://genome.ucsc.edu/FAQ/FAQformat) |
| Newick phylogenetic trees (`.nwk`, `.newick`, `.tree`) | Parses the first semicolon-terminated Newick tree with bounded recursive descent. Parentheses/comma topology becomes directed graph edges; quoted/unquoted labels, finite branch lengths and nested square-bracket comments are validated under depth/node/label limits. Additional trees are ignored with a warning. Taxonomy, sequence lookup, rooting and distance calculations are never performed. Limits: 64 MiB input, 100,000 nodes, depth 128 and 4 KiB/node label. Source: [PHYLIP Newick standard](https://phylipweb.github.io/phylip/newick_doc.html), [Newick tree format](https://phylipweb.github.io/phylip/newicktree.html) |
| Stockholm multiple-sequence alignment (`.sto`, `.stockholm`) | Parses Stockholm 1.0 headers, `//`-terminated alignment blocks, split sequence rows and bounded sequence names. `#=GF`, `#=GS`, `#=GC`, `#=GR` and comment annotations are validated as printable inert metadata; every sequence in an alignment must have the same aligned length. No HMM/profile construction, sequence lookup or external resource access occurs. Limits: 128 MiB input, 100,000 alignments, 500,000 rendered sequences, 10 MiB/sequence, 64 MiB total sequence and 4 KiB/name. Sources: [HMMER User's Guide](https://eddylab.org/software/hmmer/CURRENT/Userguide.pdf), [Stockholm format specification](https://sonnhammer.sbc.su.se/Stockholm.html) |
| CLUSTAL block alignments (`.aln`, `.clustal`, `.clustalw`) | Parses a CLUSTAL header, block-oriented sequence fragments, optional cumulative residue counts and `*`, `:`, `.`, `+` consensus lines. Fragments are concatenated by sequence name and equal aligned lengths are required; numbering/consensus is inert. No aligner, profile construction, sequence lookup or external resource access occurs. Limits: 128 MiB input, 2,000,000 lines, 500,000 sequences, 10 MiB/sequence, 64 MiB total sequence, 4 KiB/name and 512-character previews. Sources: [IMGT CLUSTAL format](https://imgt.org/IMGTindex/Clustal.php), [ClustalW output notes](https://www.genome.jp/tools/clustalw/clustalw_readme.html) |
| NEXUS phylogenetic trees (`.nex`, `.nexus`) | Validates the `#NEXUS` header and extracts the first `TREE`/`UTREE` statement in a `BEGIN TREES` block, including multiline statements and bracket comments, then delegates topology/branch validation to the bounded Newick parser. TAXA, TRANSLATE maps and other blocks are retained as inert warnings; only the first tree is rendered and no taxonomy or sequence lookup occurs. Limits: 128 MiB input, 2,000,000 lines and 1 MiB/line, in addition to Newick's node/depth/label limits. Sources: [NEXUS specification](https://www.phylo.org/sub_sections/nexus_document.pdf), [NEXUS format overview](https://plewis.github.io/nexus/) |
| GenBank flat-file records (`.gb`, `.gbk`, `.genbank`) | Parses bounded LOCUS records through `//` separators, extracts LOCUS length/molecule/topology, DEFINITION and ACCESSION text, counts fixed-column FEATURES entries, and validates ORIGIN sequence rows while rendering a 512-character preview. Feature qualifiers, accession links, sequence analysis and external resources remain inert; unterminated records are finalized with a warning. Limits: 128 MiB input, 5,000,000 lines, 1 MiB/line, 100,000 records, 1,000,000 features, 10 MiB/record sequence, 64 MiB total sequence and 64 KiB metadata fields. Sources: [NCBI GenBank sample record](https://www.ncbi.nlm.nih.gov/genbank/samplerecord/), [NCBI GenBank release format](https://www.ncbi.nlm.nih.gov/genbank/release/)
| EMBL-Bank flat-file records (`.embl`, `.emb`) | Parses two-character ID/AC/DE/FT/SQ tags through `//` separators, extracts identifier, accession, description, molecule/topology and declared sequence length, counts fixed-column FT features, and validates SQ sequence rows with cumulative counts. Qualifiers, DB cross-references, feature locations, sequence analysis and external resources remain inert; unterminated records are finalized with a warning. Limits: 128 MiB input, 5,000,000 lines, 1 MiB/line, 100,000 records, 1,000,000 features, 10 MiB/record sequence, 64 MiB total sequence and 64 KiB metadata fields. Sources: [ENA flat-file example](https://ena-docs.readthedocs.io/en/latest/submit/fileprep/flat-file-example.html), [DDBJ/ENA/GenBank Feature Table Definition](https://www.ddbj.nig.ac.jp/ddbj/feature-table.html) |
| UniProtKB/Swiss-Prot protein flat files (`.dat`, `.uniprot`, `.swissprot`) | Detects UniProt's `ID ... Reviewed;`/`Unreviewed;` signature so `.dat` remains disambiguated from Tecplot and generic text. Parses `ID`, `AC`, `DE`, `GN`, `OS`, `FT`, and `SQ` lines through `//` separators, renders review status, accessions, protein/gene/organism text, fixed-column feature counts, declared length and a bounded sequence preview. `DR`/`CC`/`RX` and other annotations remain inert; no UniProt REST/API, taxonomy, or cross-reference lookup occurs. Limits: 128 MiB input, 5,000,000 lines, 1 MiB/line, 100,000 records, 1,000,000 features, 10 MiB/record sequence, 64 MiB total sequence and 64 KiB fields. Sources: [UniProt flat file help](https://www.uniprot.org/help/uniprotkb), [UniProt linking and text format](https://www.uniprot.org/help/linking_to_uniprot) |
| RIS bibliography (`.ris`) | Parses the canonical six-character `XX - value` tags, requires `TY` first and `ER` last per record, and supports repeated authors/keywords plus six-space continuation lines for titles/abstracts and other text fields. Renders type, title, authors, year, journal, pages, DOI, URL, keywords and abstract previews as inert rows. DOI/URL, file paths, citation styles and external content are never resolved. Limits: 128 MiB input, 2,000,000 lines, 1 MiB/line, 100,000 records, 64 KiB/field, 512 authors/keywords per record and 64 MiB rendered text. Sources: [CASRAI RIS tag reference](https://casrai.org/guides/ris-file-format), [UK National Archives PRONOM RIS profile](https://www.nationalarchives.gov.uk/PRONOM/Format/proFormatSearch.aspx?id=2755&status=detailReport) |
| CSL-JSON bibliography (`.csl.json`, `.csl-json`, `.cite.json`; content sniffing) | Citation Style Language JSON arrays or `items` containers render ID, type, title, author/editor, publication year and DOI/URL presence. Styles/locales, abstract markup, DOI/URL resolution and external resources are never evaluated. Limits: 64 MiB input, depth 100, 300,000 JSON values, 100,000 items, 512 authors/item and 512-byte displayed fields. Source: [Official CSL schema repository](https://github.com/citation-style-language/schema) |
| SPICE/ngspice netlists (`.cir`, `.sp`, `.spice`, `.ckt`, `.net`) | Parses a title line, element instance cards, `+` continuation lines, comments, dot directives and `.END` without launching a simulator. Recognizes common device prefixes and bounded required node counts, validates node/value text and reports distinct node/element limits. `.include`, `.lib`, model/control directives and expressions remain inert; referenced files are never opened. Limits: 128 MiB input, 2,000,000 lines, 1 MiB/logical line, 500,000 elements, 1,000,000 nodes, 64 KiB field and 64 MiB rendered text. Sources: [ngspice User's Manual](https://ngspice.sourceforge.io/docs/ngspice-40-manual.pdf), [ngspice input-file structure](https://nmg.gitlab.io/ngspice-manual/circuitdescription/generalstructureandconventions/inputfilestructure.html) |
| `.xls` / `.xlt` / `.xla` | CFB `Workbook`/`Book` streamのBIFF worksheet valuesを読み、sheet順に40行×12列の表ページへ分割。sheet rangeは最大500,000セル、workbook全体2,000,000 dense cells / 1,000,000 cell records、256 sheets、2,000,000 BIFF records(最大8,224 bytes/record)、128 MiB expanded text、1ページあたり64 KiB/cellまで。入力とWorkbook streamは64 MiB。BIFF sheet offsets、DIMENSIONS、全cell coordinates、共有文字列参照をCalamine読込前に検証する。式はcached valueを使い、再計算しない。cell number/date formatting、merged cell geometry、chart、drawing、embedded objects、hidden/very-hidden sheetはwarning後にpageへ含める。VBAは未表示・未実行。仕様実装: [Calamine Excel reader](https://docs.rs/calamine/0.36.1/calamine/)、[Microsoft MS-XLS overview](https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-xls/b0bd153a-9fad-456e-ac69-af652e6ef021), [DIMENSIONS record bounds](https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-xls/5fd3837c-9f3d-4952-8a85-ad93ddb37ced) |
## DOCX
| 項目 | 状態 |
|---|---|
| multi-section page size / orientation / margins | sectPr block境界でpageを確定し、sectionごとのPageSetupへ切替 |
| paragraph / run / basic style | docDefaults→bounded basedOn chain→paragraph direct rPr→run direct rPrの順で継承 |
| mixed Japanese/Latin wrapping | 空白区切りwordを保持し、幅を超える長語だけ文字分割。ascii/hAnsiを先頭、eastAsiaをfallbackにしたfont stackを使用 |
| superscript / subscript | font縮小とbaseline shiftとして対応 |
| explicit and automatic page breaks | `pageBreakBefore`、段落途中の`w:br type="page"`、flow overflowに対応。break後のPAGE fieldも新page番号で評価 |
| table grid / cell fill / cell text | 対応 |
| inline image | 対応 |
| header / footer | section別default/first/even storyを選択・継承し、paragraph、image、tableを各pageへ繰返し対応 |
| PAGE field | 生成ページ番号をmaterialize |
| floating image(page/margin/paragraph offset) | 対応 |
| numbering.xml list | multi-level decimal、letter、Roman、bullet、lvlText、indentに対応 |
| DrawingML / VML text box | anchorはpage/margin/paragraph offset、inlineはflow heightと改ページへ反映。fill/stroke、clipped text、box内imageに対応 |
| arbitrary floating shape / wrap polygon | 未対応 |
| footnote / endnote | text referenceをsuperscript化し、本文領域を予約してseparator付きページ下部noteとして対応。note内Drawingは未対応 |
| comment | commentReferenceをsuperscript化し、comments.xml textをページnoteとして対応 |
| tracked change | final viewとして`ins`を採用し、`del/delText`を除外 |
| OMML math | fraction、sub/sup/subSup、radical、delimiterをsemantic linear runsへ変換。未知のmatrix/n-ary等だけ警告 |
| Word互換フォント組版と完全同一pagination | 未対応。決定的な近似layout |
## Microsoft Project XML
| 項目 | 状態 |
|---|---|
| input and identification | Project XML Data Interchange Schemaの`http://schemas.microsoft.com/project` root namespaceを持つXMLを認識し、`.mspdi`もaliasとして受け付ける。generic XMLはroot namespaceが一致するときだけProject XMLへrouteする。 |
| task fields | project/task name、UID、OutlineLevel、Summary、Start、Finish、PercentComplete、Milestone、PredecessorUIDを読み、landscape Gantt pageへ配置。25 task/pageで分割し、task名・進捗・時系列bar・milestone・同一ページ内predecessor arrowを描画する。dateTimeはRFC3339 timezoneをUTCへ正規化し、schemaのtimezone-less `YYYY-MM-DDTHH:MM:SS`はUTCとして扱う。 |
| omitted or approximated | calendars/work time、durationからの再計算、resource/assignment、cost、baseline、constraint、actual work、dependency type/lagの再計算は行わない。predecessor arrowは単純接続線で、ページをまたぐlinkは省略。Notes、Hyperlink、外部resourceは出力・取得しない。task lacking Start or Finish remains as a row without a bar. |
| security caps | `min(max_input_bytes,64 MiB)` input、1,000,000 XML events、depth 64、100,000 task records、500,000 predecessor links、32 MiB captured text、1 MiB/text field、`max_pages` output pages。DOCTYPEは拒否し、external entity/resourceを取得しない。 |
| specification | [Microsoft Project XML Data Interchange Schema Reference](https://learn.microsoft.com/en-us/office-project/xml-data-interchange/project-xml-data-interchange-schema-reference?view=project-client-2016), [Task Elements and XML Structure](https://learn.microsoft.com/en-us/office-project/xml-data-interchange/task-elements-and-xml-structure?view=project-client-2013), [Project XML Data Types](https://learn.microsoft.com/en-us/office-project/xml-data-interchange/introduction-to-project-xml-data?view=project-client-2013) |
## RTF
| 項目 | 状態 |
|---|---|
| text extraction | ANSI codepages(Windows-1250〜1258、CP932、GBK、EUC-KR、Big5等)、hex escapes、Unicode `\u` UTF-16 escapes、surrogate pairs、paragraph/line/tab controlsを読む。未対応codepageはWindows-1252 fallbackとwarning |
| destinations | font/color/style metadata、headers/footers、objects等の既知の非本文groupはbounded depth内でskip。`\pict`のPNG/JPEG hex/`\binN` bytesはsignature/size/pixelを検証して埋め込む。EMF/WMF/PICT/DIB、unknown picture types、objectsはwarning付きで省略 |
| fidelity | font/paragraph formatting、tables、exact page geometry、section pagination、picture anchoring/crop/wrapは近似。`\picwgoal`/`\pichgoal`のdeclared sizeは反映し、指定がない場合はpixel dimensionsを使う。embedded imageはcentered flow block。explicit `\page`はSVGページ境界として保持 |
| safety caps | `max_input_bytes`、256 group levels、10M tokens、200k output blocks、32 MiB extracted text、64 MiB `\binN` skip、10,000 pictures、8 MiB/image、32 MiB total image data、48 MiB data URI、40M pixels/image、100M total pixels。仕様: [Microsoft RTF 1.9.1](https://www.loc.gov/preservation/digital/formats/fdd/fdd000473.shtml) |
## XPS / OpenXPS
| 項目 | 状態 |
|---|---|
| package and ordering | XPS (`.xps`)、OpenXPS (`.oxps`)、Autodesk DWFx (`.dwfx`) のOPC ZIPから、root fixed-representation relationship、FixedDocumentSequence、FixedDocument、PageContentの順にページを解決。DWFxはAutodeskがXPS互換形式として扱うため同じreaderを使い、内部Partの参照だけを追い、外部取得はしない。 |
| rendered markings | 固定ページの略記Path geometry、FillRule、solid hexadecimal fill/stroke、StrokeThickness/dash/cap/join、Canvas/Path/Glyphs RenderTransformとOpacity、UnicodeString GlyphsをSVG pageへ変換。PathのImageBrushは内包PNG/JPEGを読み、Path boundsに合わせてclipする。XPSの1/96-inch座標はpoint単位に変換する。 |
| fidelity limits | Path curvesは折れ線近似。GlyphsはUnicode文字列をsystem fallback fontで描き、embedded fontとIndicesによる正確なglyph形状/advanceは使わない。ImageBrushのcrop/viewport mapping、gradient/tile/visual brush、ResourceDictionary/static resource、verbose PathGeometry segments、Clip/OpacityMaskは警告して近似または省略/未適用。PNG/JPEG以外のraster brushは省略。 |
| security caps | archive entry 100,000、fixed documents 10,000、pages 20,000、1ページ200,000 markings、100,000 path tokens/segment、500,000 points/path、2,000,000 points/page、decoded XML part 64 MiB、image pixels 40M/image・128 MiB image bytes/data URIs、text 32 MiB、XML event数は`max_xml_events`、Canvas/XML深さ256、XPS parts累積bytesは`max_input_bytes`、各ZIP partは`max_zip_entry_bytes`で制限。Package path traversalとDTDは拒否。外部relationship/resourceは取得しない(外部root relationshipは変換エラー)。 |
## TIFF / BigTIFF
| 項目 | 状態 |
|---|---|
| input and pages | `.tif` / `.tiff`をclassic TIFFとBigTIFFのmagicでも検出。main image directory chainの各画像を1 SVG pageにする。 |
| decoded color | 1/2/4/8/16/32/64-bit unsigned-integer grayscale、8/16/32/64-bit RGB/RGBA/CMYK、および8-bit CMYK-alphaをPNGへ変換して埋め込む。WhiteIsZero/BlackIsZeroをTIFF decoderで解釈し、16-bit以上のchannelは8-bitへ決定的に縮小。CMYKはsimple subtractive transformでRGB化し、TIFFのOrientationとインチ/cm解像度をページ寸法に反映。 |
| compression | decoderの有効codecはuncompressed、LZW、Deflate、PackBits、Fax4、JPEG。codecが対応しないcompressionやpixel typeはエラーとして報告。 |
| fidelity limits | TIFF 0.11 decoderがpalette、YCbCr、Lab、signed/浮動小数点sampleに対応しないため拒否する。ICC/color profileは変換せず、profileを含むページはwarningを記録。16-bit以上の縮小とCMYK conversionもpage warningに記録。TIFF imageはvector traceせず、自己完結PNGとして保持する。 |
| security caps | 入力は`max_input_bytes`、各directoryは20M pixels、全ページは100M pixels、decoder/intermediate bufferは各96 MiB、PNG raw outputは96 MiB、data URIは1ページ128 MiB・全体512 MiB、ページ数は`max_pages`で制限。planar sampleは全planeがdecode済みか確認し、decoderが返す不足planeやstride異常は出力しない。 |
## DICOM
| 項目 | 状態 |
|---|---|
| input and frames | DICOM Part 10 `.dcm` / `.dicom` fileを読込み、multi-frame pixel dataはframeごとにSVG pageを生成する。Patient/study attributesはページへ出力しない。Burned-in annotationはpixel dataの一部なので残り、de-identificationは行わない。 |
| Structured Report | DICOM SR SOP Classes (Basic Text, Enhanced, Comprehensive, Comprehensive 3D, Extensible, CAD, dose, agent and related reports) are rendered as bounded Content Sequence tables for TEXT/NUM/CODE/CONTAINER items, coded concepts, units and relationships. Referenced images/audio/waveforms, UIDs and patient/study attributes are omitted. SR content can contain PHI, so this is not de-identification. Limits: 128 MiB input, 1,000,000 structural tokens, 100,000 elements, depth 64 and 200,000 rows. Source: [DICOM PS3.3 Structured Report IODs](https://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_A.35.html) |
| Encapsulated PDF | Encapsulated PDF Storage SOP Class (`1.2.840.10008.5.1.4.1.1.104.1`) is accepted only when `MIMETypeOfEncapsulatedDocument` is `application/pdf`. The OB stream is capped at 64 MiB before object loading; optional `EncapsulatedDocumentLength` must match, allowing only one standard zero pad byte. A `%PDF-` signature is required in the first 1,024 bytes and the existing bounded PDF renderer handles the pages. DICOM attributes are omitted, but identifying content inside the PDF is retained; this is not de-identification. Other encapsulated document SOP classes/MIME types are unsupported. Sources: [Encapsulated PDF IOD](https://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_a.45.html), [Encapsulated Document Module](https://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.24.2.html) |
| DICOMDIR file sets | Reserved `DICOMDIR` File ID or `.dicomdir` file is parsed as a File-set index. Root/next/lower-level directory-record offsets are followed and checked against actual Directory Record Sequence item boundaries. Active `IMAGE` record File IDs are validated against the PS3.10 character/component rules, resolved relative to the DICOMDIR parent folder, canonicalized and refused if they escape that folder. Missing/unsupported referenced files are skipped with summary warnings; Patient/Study/Series directory labels are never emitted. Limits: 100,000 records, 20,000 image references and 512 MiB total referenced inputs; DICOMDIR itself must use Explicit VR Little Endian. Sources: [DICOM PS3.10 File IDs and DICOMDIR](https://dicom.nema.org/medical/dicom/current/output/chtml/part10/chapter_7.html), [PS3.10 File ID character set](https://dicom.nema.org/medical/dicom/current/output/html/part10.html) |
| pixel models | 8/16-bit integer grayscaleまたは3-sample RGB/YBR_FULL/YBR_FULL_422をPNGへ埋め込む。dicom-pixeldataのModality LUT/Rescale Slope/InterceptとVOI/window levelを適用できる場合は適用し、Photometric Interpretation MONOCHROME1も反転する。16-bit sourceは8-bit display imageへ変換する。ICC profile、Patient Orientation、Pixel Spacingは適用しない。 |
| transfer syntaxes | Uncompressed Implicit VR Little Endian, Explicit VR Little Endian, retired Explicit VR Big Endian, JPEG Baseline/Extended/Lossless, JPEG 2000 Part 1 lossless (`1.2.840.10008.1.2.4.90`) and general (`.91`) via the pure-Rust OpenJPEG port, and RLE Lossless. JPEG 2000 codestream SIZ dimensions, component count, precision, signedness and subsampling are checked against DICOM attributes before decoding. JPEG-LS, JPEG 2000 YBR_RCT/YBR_ICT color conversion, Part 2, HTJ2K, deflated data sets, video, and other unsupported transfer syntaxes are rejected. DICOMDIR is indexed separately as a media file set rather than a standalone image. Sources: [DICOM PS3.5 data structures and transfer syntaxes](https://dicom.nema.org/medical/dicom/current/output/chtml/part05.html), [JPEG 2000 transfer syntax](https://dicom.nema.org/medical/dicom/current/output/chtml/part05/sect_A.4.4.html), [PS3.3 Image Pixel Description](https://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_c.7.6.3.3.html), [PS3.3 VOI/window rules](https://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.11.html), [OpenJPEG Rust port](https://docs.rs/openjp2/0.6.1/openjp2/), [dicom-object reader](https://docs.rs/dicom-object/0.10.0/dicom_object/), [dicom-pixeldata decoder](https://docs.rs/dicom-pixeldata/0.10.0/dicom_pixeldata/) |
| security caps | Input is `min(max_input_bytes,128 MiB)`; file meta 1 MiB/256 elements; pre-pixel dataset 100,000 elements/500,000 tokens/depth 64, 8 MiB/value and 32 MiB total values; encapsulated PDF OB 64 MiB; one frame 20M pixels, all frames 100M pixels, decoded sample buffer 128 MiB, max 1,024 frames and `max_pages`, PNG 64 MiB/frame and 512 MiB combined data-URI bytes. DICOM dimensions and decoded sample size are checked before decoding; JPEG 2000 compressed-frame dimensions, component count, sample precision, signedness and subsampling are preflighted from the SIZ segment before its decoder allocates image planes. |
## Chemical structure files (MOL/SDF)
| 項目 | 状態 |
|---|---|
| V2000/V3000 connection tables | `.mol` is one molecule; `.sdf`/`.sd` renders each `$$$$`-separated molecule as its own page. V2000 counts/atom/bond/property blocks are validated. Core V3000 CTAB atom/bond blocks are parsed, including 80-column continuation lines, nonsequential atom IDs, atom `CHG`/`MASS`, bond `CFG`, and endpoint validation. 2D coordinates are fit to page; nonzero z coordinates project onto XY with a warning. |
| depiction | Draws single/double/triple/aromatic bonds, simple up/down single-bond wedge/hash stereo, implicit carbon vertices, explicit element labels, formal charge and isotope mass. Coordinates and bond graph are shown as written; no valence repair, chemical layout, hydrogen completion, reaction interpretation, or chemistry is computed. SDF data fields are never displayed or evaluated. |
| V2000 reaction files | `.rxn` renders one reaction diagram with up to two reactants and two products. Each `$MOL` block is parsed as a bounded V2000 molecule and placed in a separate panel; input component order is preserved, plus signs separate multiple components, and an arrow connects the sides. Reaction conditions, agents, reaction-center semantics and chemical products are not validated. V3000 RXN is unsupported. |
| Protein Data Bank coordinates | `.pdb`, `.ent` fixed-column ATOM/HETATM records render one page per MODEL. Optional CONECT records become simple bonds and supplied element labels are displayed; 3D coordinates are projected onto XY. Alternate locations other than blank/A, crystallographic metadata/symmetry, secondary structure, biological assembly semantics, and bonds absent from CONECT are omitted or warned. Limits: 64 MiB input, 1,000,000 lines, 100,000 atoms/model, 500,000 atoms total, 200,000 bonds/model, 1,000 models and `max_pages`. Specification: [wwPDB PDB format](https://www.wwpdb.org/documentation/file-format-content/format33/sect9.html) |
| unsupported features | V3000 Sgroups/templates/collections, query atom/bond semantics beyond literal placeholder labels, radicals, atom mapping, and cis/trans bond stereochemistry are not interpreted; warnings identify omitted data. Compressed `.gz`, MOL2, and SMILES are not read. `.rxn` accepts V2000 only and is limited to two reactants and two products. |
| resource limits | Input: `min(max_input_bytes, 64 MiB)`; 1,000,000 lines, 1 MiB/line, V3000 physical line 80 bytes, 10,000 records/pages, 8 MiB/record, 20,000 atoms/record, 100,000 bonds/record, 200,000 atoms and 500,000 bonds total, 1,000,000 total output SVG nodes, and coordinates within ±1,000,000. Sources: [CTfile Formats V2000/V3000 specification](https://unpkg.com/molfile@0.0.5/reference/MDL_SDF.pdf), [BIOVIA V2000/V3000 guidance](https://3dswym.3dexperience.3ds.com/post/biovia-laboratory-informatics/can-i-store-molfiles-of-chemical-structures-in-my-database_FXvWcYPER3KN7sxun8F6SA). |
## CBZ
| 項目 | 状態 |
|---|---|
| package and ordering | `.cbz` ZIP archiveのimage memberをファイル名のnatural orderで並べ、各ページを独立したSVGにする。archive内のpathは抽出もfilesystemへの書込みもしない。ComicInfo.xmlなどのmetadataは読まない。 |
| rendered images | 内包PNG/JPEGをsignatureで判定し、元のimage bytesをdata URIとしてSVGへ埋め込む。ほかの画像signatureはwarning付きで省略。EXIF orientation、ICC/color profile、image DPIは適用せず、page寸法はpixel数をpointとして扱う。 |
| security caps | ZIP entryは100,000、画像entry名は合計8 MiB、個別画像は`min(max_zip_entry_bytes, 96 MiB)`、画像pixel数は40M/page・合計100M pixels、累積画像bytesは`min(max_input_bytes, 384 MiB)`、合計data URI bytesは512 MiB、page countは`max_pages`で制限。CRC/read errorは変換エラーとして返す。 |
## SVG / SVGZ input
| 項目 | 状態 |
|---|---|
| input formats | Plain SVG (`.svg`) and gzip-compressed SVGZ (`.svgz`). Gzip is selected by its signature, and extensionless compressed SVG can also be sniffed. |
| decompression bounds | Compressed file bytes and decompressed SVG bytes are each bounded by `max_input_bytes`; gzip CRC/decompression failures return errors. |
| rendering | Imports supported basic SVG vector elements into the internal page model. This is a bounded preview importer, not a browser-complete CSS/filter/animation engine. Active or external document references are rejected. |
## drawio
| 項目 | 状態 |
|---|---|
| `mxfile` / 複数`<diagram>` | `<diagram>`1件を1ページとして対応 |
| 圧縮されたdiagram本体 | `encodeURIComponent`+raw deflate+base64を展開。展開後サイズは`max_zip_entry_bytes`で制限 |
| 素の`mxGraphModel`文書 | 対応。`mxGraphModel`を含まないXMLは入力エラーとして拒否 |
| `object` / `UserObject`ラッパー | id、labelを内側の`mxCell`へ適用 |
| mxStyle文字列 | `;`区切りのkey=valueと先頭のshape名を解析。keyは大文字小文字を無視 |
| 基本図形・フローチャート図形 | rectangle(rounded含む)、ellipse、doubleEllipse、rhombus、triangle、hexagon、parallelogram、trapezoid、step、process、cylinder、cloud、document、multiDocument、note、card、internalStorage、cube、tape、actor、or、xor、dataStorage、delay、display、manualInput、offPageConnector、loopLimit、collate、extract、merge、cross、singleArrow、doubleArrow、swimlane、text、line、callout、message、umlLifeline、umlFrameに対応 |
| コンテナ系 | `group`と`waypoint`は子要素の位置だけを決め、自身は描画しません。`partialRectangle`は塗りと、`top`/`right`/`bottom`/`left`で有効な辺だけを描きます。`table`/`tableRow`は矩形として描きます |
| `=`を含まないスタイル語 | mxGraphと同じく、名前付きスタイルとして解決できるものだけをshapeとして扱い、解決できない語は無視します(`shape=`で明示された未対応shapeだけ警告します) |
| `shape=mxgraph.flowchart.*` / `mxgraph.basic.*` | 末尾名が上記に対応するものへマップ |
| shape library(`mxgraph.aws4.*`等) | `stencil_paths`(CLIは`--stencils`)にdrawioのstencil XMLファイルまたはそのディレクトリを渡すと、mxStencilを解釈して本物の図形を描画します。path/rect/roundrect/ellipse、fill/stroke/fillstroke、save/restore、色・線幅・破線・alpha、`aspect="fixed"`の等倍センタリングに対応 |
| インラインstencil(`shape=stencil(...)`) | 対応。図面が自前で持つ図形なので、外部ファイルは不要 |
| `resIcon`/`grIcon` | 対応。タイルの色はスタイルから、内側のアイコンは指定されたstencilから描きます |
| drawioがJavaScriptで実装するshape | 主要なものに対応します。BPMN(event/gateway2/shape/taskのoutline・background・symbol 17種)、floorplanのwall/wallCorner/wallU/window/door系/stairs、UMLのcomponent・folder(package)・startState・endState、table/tableRow、partialRectangle、waypoint、group、`mxgraph.gcp2.doubleRect`、AWSのresourceIcon/productIcon/group、AWS 3Dの箱と地上コネクタ(arrowNE/SE/SW/NW、arrowlessNE、flatDoubleEdge、dashedArrowlessEdge)、mockupのsearchBox/comboBox/iconGrid/simpleIcon、infographicのribbonSimple/cylinder/banner/bannerSingleFold/barCallout/shadedTriangle/shadedPyramid/pyramidStep、lean_mappingのoutside_sources/inventory_box/manufacturing_process/schedule/data_box/push_arrow/physical_pull、basicのpartConcEllipse/arc/pie/rectCallout/roundRectCallout、floorplanのroom/stairsRest/doorBypass、sysmlのactFinal/flowFinal/isControl/objFlowL/objFlowR/itemFlowLeft/itemFlowRight/paramDgm/port1、ios7uiのhorLines、rackGeneralのcontainer、bootstrapのrrect/horLines/checkbox/radioButton、各ライブラリ共通のtop/bottom/left/rightButton・rrect・marginRect・uRect・anchor(anchorは非描画)、ios7uiのphone/appBar/pageControl/downloadBar/slider/onOffButton/iconGrid、lean_mappingのtimeline2/fifo_lane/truck_shipment、mockupのmarkup.line/buttons.button/forms.checkbox、basicのdrop/obtuse_triangle/polygon(polyCoords・polyCurves・polylineに対応)、archimate3のapplication/tech/service/actor(archiTypeの枠+appType・techTypeのバッジ11種)、rackGeneralのrackCabinet3/plate/horCableDuct/shelf/neatPatch、erのentity/has(dblFrame対応)、c4のperson、mockupのcontainers.browserWindow、arrows2のtwoWayArrow/stylisedArrow/jumpInArrow、dfdのdataStoreID、sysmlのaccEvent/callBehAct、bpmnのdata(transferType・isCollection対応)、mockupのwindow/scrollBar/spinner/checkboxGroup/columnChart/videoPlayer/pin/rating/userMale/callout、eipのmessageChannel/deadLetterChannel、networksのbus、networks2のicon(タイル+network2Iconのstencil)、iosのiPin/iBgStriped/iBgMap/iLocBar、ios7uiのicon/actionDialog、androidのstatusBar、bootstrapのimage/rating/leftButtonStriped、infographicのcircularCallout2、electricalのlogic_gate、pid2miscのcolumn、pid2valvesのvalve、sysmlのactParamNode/itemFlow、lean_mappingのtimeline、接頭辞なしのisoRectangle/isoCube2/curlyBracket/umlState/smileyFace/ext。drawioの例示リポジトリ613件では、`mxgraph.world`とAWS 3Dのグリフ以外に未描画のshapeはありません。なお、これらのshapeが`mainText`などstyle側に持つ文字列は描画しません(cellのvalueは描画します) |
| AWS 3Dのサービス図形 | 箱と陰影は忠実に描きますが、上に載る白いグリフはdrawio側のコードにあるため描けません。その旨を警告に明示します |
| 矢尻 | classic/block/open/oval/diamond(thin変種含む)、async/openAsync、box、dash、cross、circle、circlePlus、halfCircle、ER記法6種(ERone/ERmandOne/ERmany/ERoneToMany/ERzeroToOne/ERzeroToMany)に対応。ER記法の距離は`size + strokeWidth + 1`基準でmxMarkerと同じです |
| ベンダーアイコン本体 | 同梱しません。ライセンスと容量の都合で、利用者が用意したstencilファイルを読みます |
| `mxgraph.world.*`(国・地域の地図) | 非対応。drawioのオープンソース版にはこのstencilもsidebarも含まれず、オンライン版限定のため、利用者が`--stencils`で補うこともできません |
| `perimeter=` | `ellipse`/`rhombus`/`triangle`/`hexagon`/`step`/`parallelogram`/`trapezoid`/`center`/`lifeline`/`backbone`に対応。指定がない場合は描画中のshapeの輪郭に合わせます |
| `overflow=hidden` | ラベルを図形の枠でクリップします(ページ寸法も広げません)。`fill`/`width`は図形の幅で折り返します |
| `sketch=1`/`comic=1` | 未対応。手描き風の揺らぎは付かず、通常の直線・曲線で描きます |
| fill / stroke / dashed / dashPattern / opacity | 対応。`fillOpacity`、`strokeOpacity`、`strokeWidth`を含む |
| `gradientColor` / `gradientDirection` | 2 stopのlinear gradientとして対応 |
| `shadow` | mxGraphと同じ、(2, 3)ずらしの灰色コピーとして対応 |
| `direction` / `rotation` / `flipH` / `flipV` | 図形中心まわりの回転・反転として対応。`direction`のnorth/southはwidth/heightを入れ替え |
| グループ入れ子の座標 | 親vertexのoriginを最大64段まで累積。`visible="0"`は自身と子孫を非表示 |
| HTMLラベル | `<br>`、`<div>`/`<p>`、`<b>`/`<i>`、`<font>`のcolor/face/size、`style`のcolor/font-size/font-weight/font-style、文字実体参照に対応。それ以外のタグは除去してテキストを残す |
| `whiteSpace=wrap`と`align`/`verticalAlign`/`spacing*` | 文字体系を見た幅推定による単語単位の折り返しとして対応 |
| `labelPosition` / `verticalLabelPosition` | ラベル枠を図形1つ分ずらす(アイコン下のキャプション)形で対応 |
| `labelBackgroundColor` / `labelBorderColor` | 対応 |
| コネクタ(直線・`curved=1`・`orthogonalEdgeStyle`) | 対応。`elbowEdgeStyle`と`entityRelationEdgeStyle`は直交ルートとして扱います |
| 固定接続点(`exitX`/`exitY`/`exitDx`、`entryX`/`entryY`/`entryDx`) | 対応。辺上の点は進入方向を決める側面として解釈 |
| 経由点(`Array as="points"`)と`sourcePoint`/`targetPoint` | 対応 |
| 直交ルーターの一致 | 近似。`mxEdgeStyle.orthBuffer`の10 px分だけ図形から離れてから曲がり、経由点がない場合は辺の中央から出て図形間の中点で折れます。mxGraphのroute pattern表そのものではありません |
| エッジラベルの位置(`relative`な`x`とoffset) | 経路長に沿った位置として対応 |
| swimlane | title barとlane本体の分割線、`swimlaneFillColor`、縦向きtitleに対応。lane内の折り畳みは未対応 |
| 背景色(`mxGraphModel background`) | 対応 |
| ページ寸法 | `pageWidth`/`pageHeight`ではなく描画内容のbounding box+10 pxの余白でcrop。モデル1 px = 0.75 pt |
| 座標・長さの上限 | モデルが宣言する座標と長さは原点から±1,000,000 pxに、ページも同じ範囲に収めます。超える場合はcropした旨を警告に出します |
| mxlibrary(シェイプライブラリ)/その他のXML | 変換対象外。何のファイルかを名指ししてエラーにします |
| 埋め込み画像(`image=data:`) | PNG/JPEG/GIF/WebPのdata URIに対応。`shape=image`はセル全体、それ以外は`imageWidth`/`imageHeight`/`imageAlign`/`imageVerticalAlign`に従うアイコンとして配置。`;base64`が省略されたdrawio形式も正規化 |
| URL参照の画像 | 未対応。ローカル変換で外部取得は行わず、警告を出して図形だけ描画 |
| SVGのdata URI画像 | 未対応。出力SVGへ検査していない別文書を埋め込まないため、警告を出して図形だけ描画 |
| `.drawio.png` / `.drawio.svg`の埋め込みメタデータ | 未対応 |
## CAD / CAM / CAE / Simulation (IFC / KiCad PCB / DXF / Gerber / HP-GL / G-code / Excellon / STL / glTF / COLLADA / X3D / STEP / OBJ / Abaqus / LS-DYNA / MEDIT / Nastran / SU2 / OpenFOAM / Tecplot / EnSight / PLOT3D / VRML / Gmsh / VTK)
| 項目 | 状態 |
|---|---|
| KiCad PCB `.kicad_pcb` | UTF-8 S-expression board files are bounded to 64 MiB input, 1,000,000 parsed nodes, depth 128, 250,000 combined render items, 1,000,000 geometry points, 4 MiB visible text, and coordinates within ±1,000,000 mm. The parser accepts current `footprint` and older `module` records. It draws segments/arcs, vias, common circle/rect/oval/roundrect pads, board/footprint lines/rectangles/circles/polygons, Edge.Cuts, selected text and saved `filled_polygon` zone results. Coordinates are read in millimeters. It does not run DRC, recompute zones/thermals, open 3D model or image paths, or render custom pads, arbitrary curves, text boxes or groups. Non-unit affine-scaled or explicitly flipped footprints are omitted; bottom-side footprints are mirrored about X. Text variables remain literal and rotated text remains horizontal; drill offsets are centered. Spec: [KiCad board file format](https://dev-docs.kicad.org/en/file-formats/sexpr-pcb/), [S-expression syntax and millimeter coordinates](https://dev-docs.kicad.org/en/file-formats/sexpr-intro/). |
| OpenSCAD source (`.scad`; content sniffing) | Source is scanned as inert CAD code. Module/function declarations, primitive solids, transforms, boolean operations, assignments and import/use/include/surface references render as bounded metadata; definition names are shown without bodies. Expressions, loops, geometry, external libraries, URLs and referenced files are never evaluated or opened. Limits: 128 MiB input, 2,000,000 lines, 1 MiB/line, 100,000 rows and 512-byte displayed fields. Source: [OpenSCAD Language Reference](https://files.openscad.org/documentation/manual/The_OpenSCAD_Language.html) |
| AMF 1.2 (`.amf`; content sniffing) | ISO/ASTM 52915 XML object/mesh documents render object-local vertices and volume triangles through the existing bounded shaded OBJ renderer. Declared units remain metadata; materials, textures, color, lattice, slices, metadata payloads and external references are omitted. Limits: 128 MiB input, 500,000 XML events, 300,000 nodes, 2,000,000 vertices, 200,000 triangles and the shared OBJ renderer limits. Source: [ISO/ASTM 52915:2020](https://www.iso.org/standard/74640.html) |
| PLMXML (`.plmxml`, `.plm.xml`; content sniffing) | Siemens PLM XML product/assembly documents render ProductDef, Part, Structure, Instance, Representation, ConstructionGeometry, Attribute and ExternalReference counts as inert metadata. XT/Parasolid geometry, IDs, attribute values, URLs and external files are never opened. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [Siemens PLMXML schema](https://media.plm.automation.siemens.com/open/plm-xml/docs/v7.0.2/documentation/plmxml_PLMXML.html) |
| STEP-XML / AP242 XML (`.stepxml`, `.stpx`, `.step.xml`; content sniffing) | ISO 10303-28 XML representations of EXPRESS data render common product, product-definition, assembly-occurrence, representation, geometric-item, point, direction, property and external-reference counts. EXPRESS evaluation, external schema fetches, IDs, URLs and referenced CAD geometry remain inert. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [ISO 10303-28:2007](https://www.iso.org/standard/40646.html) |
| QIF (`.qif`, `.qif.xml`; content sniffing) | Quality Information Framework XML documents render Product, ProductDefinition, MeasurementPlan/InspectionPlan, MeasurementResults/QMResults, FeatureMeasurement, Characteristic, Datum, InspectionTraceability and ExternalFileReference counts as inert metadata. Measured values, tolerances, IDs, URLs and external CAD/inspection payloads are omitted; schema includes and resource files are never fetched. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Sources: [QIF overview](https://qifstandards.org/overview/), [NIST QIF publication](https://www.nist.gov/publications/quality-information-framework-integrating-metrology-processes) |
| B2MML / ISA-95 manufacturing XML (`.b2mml`, `.b2mml.xml`; content sniffing) | B2MML documents render ProductionSchedule/Performance/Request/Response, ProductDefinition, Material, Equipment, Personnel, ProcessSegment, Capability, Maintenance, Transaction and ExternalReference counts. Operations, values, credentials, URLs and external resources are omitted; no production or transaction operation runs. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [B2MML schema repository](https://github.com/werdnav/b2mml-validation) |
| CIP4 JDF/JMF/XJDF (`.jdf`, `.jdf.xml`, `.jmf`, `.xjdf`; content sniffing) | Job Definition/Messaging Format XML renders JDF/JMF/XJDF node, resource pool/link, process, product, device, media, layout, run-list, audit and file/URL link counts. Device commands, workflow execution, credentials, URLs and linked files are never executed or fetched. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [CIP4 JDF/XJDF](https://www.cip4.org/print-automation/jdf?file=files%2Fcip4-2022%2FDocuments%2FSpecifications%2FJDF+Specification+1.7.pdf) |
| TMX 1.4b (`.tmx`, `.tmx.xml`; content sniffing) | Translation Memory eXchange validates the bounded `tmx`/`header`/`body`/`tu`/`tuv`/`seg` structure and renders version, translation-unit, variant, segment and language counts. Segment text, IDs, notes, properties, DTDs, skeleton files and external resources are omitted or redacted and never loaded. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128, 10,000 languages and 200,000 rows. Sources: [TMX 1.4b specification](https://www.ttt.org/oscarStandards/tmx/tmx14b.html), [Microsoft translation-memory overview](https://learn.microsoft.com/en-us/globalization/localization/translation-memories) |
| TBX / MARTIF (`.tbx`, `.tbx.xml`; content sniffing) | ISO 30042 TermBase eXchange and legacy MARTIF roots render terminology-entry, term, language-set, description, administrative, note, transaction and reference counts. Terms, definitions, IDs, URLs, DTD/XCS/Schematron resources and proprietary values are omitted or redacted; no terminology service is contacted. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128, 10,000 languages and 200,000 rows. Sources: [ISO 30042 TBX](https://www.iso.org/standard/62510.html), [TBX developer resources](https://www.tbxinfo.net/developer-resources/) |
| gbXML 8.x (`.gbxml`, `.gbxml.xml`; content sniffing) | Green Building XML building/energy-model documents render Campus, Building, Space, Zone, Surface, Opening, Construction, Material, Schedule, system and occupant counts. IDs, coordinates, geometry, material properties, schedules, formulas, URLs, weather resources and external schema locations remain inert. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Sources: [gbXML current schema](https://www.gbxml.org/Schema_Current_GreenBuildingXML_gbXML), [gbXML overview](https://www.gbxml.org/About_GreenBuildingXML_gbXML) |
| HL7 FHIR XML (`.fhir.xml`, `.fhirxml`; content sniffing) | FHIR resource and Bundle structure renders recognized resource types, bundle entries, contained/narrative/extension counts. Clinical values, names, identifiers, coded displays, narrative XHTML, references, profiles and contained payloads are omitted or redacted; schemas, terminology services and URLs are never fetched. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128, 100,000 resources and 100,000 rows. |
| Adobe IDML (`.idml`; content sniffing) | InDesign Markup Language ZIP packages follow `designmap.xml` and bounded Stories, Spreads, MasterSpreads and Resources XML parts in memory. Package, layout, story, paragraph, character, hyperlink, table, graphic, image, font and swatch counts render as inert metadata. IDs, story text, links, image/font bytes and external resources are never extracted, resolved or executed. Limits: 256 MiB input/expanded XML, 100,000 entries, 32 MiB/entry, 20,000 XML parts, 500,000 XML events, 300,000 nodes, depth 128 and 200,000 rows. Source: [Adobe IDML File Format Specification](https://community.adobe.com/havfw69955/attachments/havfw69955/indesign/632652/1/idml-specification.pdf) |
| XPDL 2.x (`.xpdl`, `.xpdl.xml`; content sniffing) | Workflow Process Definition Language packages render workflow-process, activity, transition, participant, application, data-field, pool/lane, connector and external-reference counts. IDs, expressions, scripts, application parameters, URLs and external packages remain inert; no workflow engine runs. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [WfMC XPDL](https://wfmc.org/xpdl/) |
| ONIX for Books 3.x (`.onix`, `.onix.xml`, `.onix3`; content sniffing) | EDItEUR ONIX messages render release, Product, ProductIdentifier, DescriptiveDetail, CollateralDetail, PublishingStatus, SupplyDetail, contributor, language, subject, measure, price, text and supporting-resource counts. ISBNs, titles, descriptions, prices, URLs, codelist values and commercial payloads remain inert; DTD/XSD/schema locations are never fetched. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [ONIX for Books specification](https://www.hanmoto.com/pub/onix/ONIX_for_Books_Format_Specification_3.0.2.html) |
| OAI-PMH 2.0 (`.oaipmh`, `.oai-pmh`, `.oai.xml`; content sniffing) | Open Archives Initiative response envelopes render verb, record, header, metadata, set, metadata-format, error and resumption-token counts. Identifiers, dates, repository URLs, metadata payloads and token values remain inert; HTTP verbs, paging and harvesting never run. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [OAI-PMH specifications](https://www.openarchives.org/pmh/) |
| HL7 CDA R2 (`.cda`, `.cda.xml`, `.ccd.xml`; content sniffing) | Clinical Document Architecture validates the `ClinicalDocument` envelope and renders section, entry, observation, act, encounter, procedure, organizer, author, participant, assigned-entity, narrative and template counts. Patient data, identifiers, narrative XHTML, coded values, references, stylesheets and external documents remain inert; this is not de-identification. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [HL7 CDA](https://hl7.org/cda/) |
| ISO 20022 (`.iso20022.xml`, `.pain.xml`, `.pacs.xml`, `.camt.xml`; content sniffing) | Financial-message XML recognizes ISO 20022 namespaces and renders document/header/message, payment, transaction, party, account, amount, date and remittance structure counts. Account numbers, names, addresses, amounts, currencies, dates, identifiers, remittance text, URLs and private financial values remain inert; schemas and payment operations are never executed. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [ISO 20022 message catalogue](https://www.iso20022.org/catalogue-messages) |
| SBML Level 2/3 (`.sbml`, `.sbml.xml`; content sniffing) | Systems Biology Markup Language models render level/version, model, compartment, species, reaction, parameter, rule, event, unit, function and annotation counts. Species/parameter values, MathML equations, IDs, annotations and package resources remain inert; no equation evaluation or simulation runs. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [SBML specifications](https://sbml.org/documents/specifications/) |
| CellML 1.x/2.0 (`.cellml`, `.cellml.xml`; content sniffing) | CellML models render component, variable, unit, connection/map, import, encapsulation, reset, MathML and annotation counts. Variable values, equations, IDs, metadata and imported models remain inert; no MathML evaluation or simulation runs. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [CellML specifications](https://www.cellml.org/specifications) |
| OCEL 2.0 XML (`.xmlocel`, `.ocel.xml`; content sniffing) | Object-Centric Event Log XML renders event-type, event, object-type, object, attribute, relationship and attribute-type counts. Event/object IDs, timestamps, type values, attributes and relationships remain inert; schema validation and process-mining operations never run. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [OCEL XML specification](https://ocel-standard.org/specification/formats/xml/) |
| EnergyPlus IDF (`.idf`, `.energyplus.idf`; content sniffing) | EnergyPlus Input Data File object records are parsed through comments and semicolon terminators. Object-type, object and field counts render as inert metadata; schedules, formulas, paths, IDD lookups, macros, external weather files and simulation never run. Limits: 128 MiB input, 2,000,000 lines, 1 MiB/line, 200,000 objects, 2,000,000 fields and 200,000 rows. Source: [EnergyPlus documentation](https://energyplus.readthedocs.io/en/stable/quick_start/quick_start.html) |
| EnergyPlus EPW (`.epw`, `.energyplus.epw`; content sniffing) | EnergyPlus Weather File eight-header-row and hourly-column structure renders bounded header, row, year and missing-sentinel counts. Location, timestamps, temperature, radiation, wind and station values remain inert; weather conversion and simulation never run. Limits: 128 MiB input, 2,000,000 lines, 1 MiB/line, 100 columns, 2,000,000 hourly rows and 200,000 rows. Source: [EnergyPlus weather documentation](https://energyplus.readthedocs.io/en/v23.2.0/tips_and_tricks/tips_and_tricks.html) |
| RINEX 2–4 GNSS (`.rnx`, `.rinex`, `.obs`, `.nav`, `.gnav`; content sniffing) | Receiver Independent Exchange Format validates the version/type and `END OF HEADER`, then counts observation-type headers, epochs, satellite rows, navigation-like records and continuations. Station names, coordinates, timestamps and measurements remain inert; receiver processing and geodetic calculations never run. Limits: 256 MiB input, 5,000,000 lines, 1 MiB/line, 2,000,000 epochs, 20,000,000 satellite rows and 200,000 rows. Source: [International GNSS Service RINEX](https://igs.org/wg/rinex/) |
| ACIS SAT ASCII (`.sat`; content sniffing) | Autodesk/ACIS SAT text models render bounded body, solid, lump, shell, face, loop, coedge, edge, vertex, surface and transform entity counts. Coordinates, NURBS coefficients, topology links, attributes and colors remain inert; binary SAB, tessellation and Boolean operations never run. Limits: 256 MiB input, 2,000,000 lines, 1 MiB/line, 500,000 entities and 200,000 rows. Source: [Autodesk SAT import/export](https://help.autodesk.com/cloudhelp/2023/ENU/AutoCAD-Core/files/GUID-46B2F3E3-F933-4411-94D7-DC4E11D3EC60.htm) |
| SED-ML Level 1 (`.sedml`, `.sedml.xml`, `.sed-ml.xml`; content sniffing) | Simulation Experiment Description Markup Language renders level/version, model, simulation, task, repeated-task, data-description/generator, output/plot/report, change, range, variable, parameter and algorithm counts. Model paths, algorithm URIs, MathML, XPath changes and output data remain inert; no model or simulation engine runs. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [SED-ML](https://sed-ml.org/) |
| SBGN-ML (`.sbgn`, `.sbgnml`, `.sbgn.xml`; content sniffing) | Systems Biology Graphical Notation maps render language, glyph, arc, label, port, bounding-box, clone-marker, state, terminal, callout and submap counts. IDs, labels, coordinates, biological semantics, layout engines and external resources remain inert. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. |
| COMBINE/OMEX archive (`.omex`, `.omex.zip`, `.combine`; content sniffing) | Bounded ZIP packages require `manifest.xml` and render archive, content, SBML, CellML, SED-ML, metadata, XML/JSON and external-reference counts. Manifest locations, model IDs, URLs and member payloads remain inert; no archive extraction, model execution or simulation runs. Limits: 256 MiB input/expanded metadata, 100,000 entries, 32 MiB/entry, 256 MiB cumulative expansion, 500,000 XML events, 300,000 nodes and 200,000 rows. Source: [COMBINE Archive Specification](https://raw.githubusercontent.com/combine-org/combine-specifications/main/specifications/files/omex.version-1.pdf) |
| XDMF 3.0 (`.xdmf`, `.xmf`; content sniffing) | XDMF XML renders version, domain/grid, topology, geometry, attribute, DataItem, time, reference and function counts. HDF5/Binary arrays, coordinates, topology values, function expressions and external paths remain inert; no mesh loader or HDF5 reader runs. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [XDMF model and format](https://www.xdmf.org/index.php/XDMF_Model_and_Format) |
| VTK PVD collection (`.pvd`; content sniffing) | VTK `Collection` XML renders dataset, timestep, group, part, file and remote-reference counts. Referenced `.vtu`/`.vtp`/`.vti` files and URLs remain inert; no sidecar or time-series data is opened. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [VTK file formats](https://docs.vtk.org/en/latest/vtk_file_formats/index.html) |
| Fire Dynamics Simulator FDS (`.fds`; content sniffing) | NIST FDS namelist blocks render bounded block-type and line counts. CHID, paths, coordinates, fire parameters, devices, meshes, CSV/SMV output and solver settings remain inert; FDS/MPI/CFD never runs. Limits: 128 MiB input, 2,000,000 lines, 1 MiB/line, 500,000 blocks and 200,000 rows. Source: [FDS-SMV manuals](https://pages.nist.gov/fds/manuals.html) |
| AbiWord AWML (`.abw`; content sniffing) | Native AbiWord XML documents render bounded section, paragraph, character, table/cell, image, bookmark, hyperlink, field and equation counts. Paragraph text, styles, fields, links and embedded objects remain inert; DTDs, external files and scripts are never loaded. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. |
| NeuroML 2 (`.nml`, `.neuroml`, `.neuroml.xml`; content sniffing) | Neuroscience XML renders bounded cell, morphology, segment, segment-group, network, population, projection, connection, synapse, input, channel and include counts. Parameters, coordinates, equations, IDs, LEMS definitions and imported models remain inert; no simulation runs. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [NeuroML specification](https://docs.neuroml.org/Userdocs/Specification.html) |
| BioPAX Level 3 (`.biopax`, `.biopax.xml`; content sniffing) | BioPAX RDF/XML validates an RDF root with BioPAX namespace and renders pathway, interaction, physical-entity, protein, small-molecule, complex, reaction, control, cross-reference and ontology-import counts. RDF IDs, labels, links, OWL imports, external URIs and pathway inference remain inert. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [BioPAX](https://www.biopax.org/) |
| W3C XML Schema XSD (`.xsd`, `.xsd.xml`, `.schema.xsd`; content sniffing) | XML Schema documents render element/attribute declarations, complex/simple types, groups, compositors, derivation facets, annotations and include/import/redefine/override counts. Schema documentation, values, schema locations and instance validation remain inert; dependencies are never fetched. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [W3C XML Schema 1.1 Structures](https://www.w3.org/TR/xmlschema11-1/) |
| W3C XSLT (`.xsl`, `.xslt`, `.xsl.xml`; content sniffing) | XSLT stylesheets render version, template, apply/call-template, variable/param, loop/condition, key, include/import, output, script and function counts. Match/select XPath, document access, extension functions, scripts and transformation output remain inert; no stylesheet execution occurs. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [W3C XSLT 3.0](https://www.w3.org/TR/xslt-30/) |
| XProc 3.0 (`.xpl`, `.xproc`, `.xproc.xml`; content sniffing) | XML pipeline declarations render step, input/output, option, variable, pipe, conditional, loop, group, error, file-operation, HTTP-operation and import/include counts. Step names, XPath, file paths, HTTP URLs and payloads remain inert; no pipeline operation runs. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [XProc 3.0](https://spec.xproc.org/3.0/xproc/) |
| WADL (`.wadl`, `.wadl.xml`; content sniffing) | Web Application Description Language renders resource, resource-type, method, request, response, representation, parameter, grammar, include, link and documentation counts. Endpoint URLs, schemas, credentials and HTTP requests remain inert. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [W3C WADL submission](https://www.w3.org/submissions/wadl/) |
| OpenSearch Description (`.osdd`, `.opensearch`, `.opensearchdescription.xml`; content sniffing) | OpenSearch descriptors render URL, query, language, encoding, image, descriptor and rights counts. URL templates, search terms, images, contact values and network requests remain inert. Limits: 64 MiB input, 500,000 XML events, 300,000 nodes, depth 96 and 100,000 rows. Source: [OASIS OpenSearch description](https://docs.oasis-open.org/search-ws/v1.0/opensearch-v1.0.html) |
| SAML 2.0 metadata (`.saml`, `.saml.xml`, `.saml-metadata.xml`; content sniffing) | EntityDescriptor/EntitiesDescriptor metadata renders IdP/SP role, endpoint, key, certificate, attribute, organization, contact and signature counts. Entity IDs, URLs, certificates, bindings and authentication material remain inert; no discovery or authentication runs. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [OASIS SAML metadata](https://docs.oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf) |
| XACML 3.0 (`.xacml`, `.xacml.xml`, `.policy.xml`; content sniffing) | Access-control Policy/PolicySet XML renders policy, rule, target, condition, match, attribute, value, obligation, advice, reference and function counts. Policy IDs, conditions, attribute values and function URIs remain inert; no PDP/PEP decision or policy combining runs. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [OASIS XACML 3.0](https://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-os-en.html) |
| XSL-FO 1.1 (`.fo`, `.xslfo`, `.xsl-fo.xml`, `.fo.xml`; content sniffing) | XSL Formatting Objects render layout-master, page-sequence, flow, region, block/inline, table/row/cell, graphic, link, bookmark, page-number, list and footnote counts. Properties, text, coordinates, external graphics and links remain inert; no FO formatter or PDF/PostScript output runs. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [W3C XSL 1.1](https://www.w3.org/TR/xsl/) |
| KiCad legacy Eeschema schematic (`.sch`) | Parses the legacy `EESchema Schematic File Version` header, `$Comp` blocks, mil-coordinate wire segments, `Text Label`/`Text Notes` entries and `Connection ~` junctions. Components are drawn as deterministic labeled rectangles and wires/labels retain their source geometry after page fitting. Cache libraries, project files, images, external symbols, hierarchical sheet semantics, pin-level connectivity and DRC/ERC are omitted or warned; gEDA/Eagle `.sch` variants are not claimed by the KiCad signature. Limits: 64 MiB input, 2,000,000 lines, 1 MiB/line, 250,000 components/labels, 1,000,000 wires, 8 MiB visible text and ±100,000,000 mil coordinates. Spec: [KiCad legacy file format](https://dev-docs.kicad.org/en/file-formats/legacy-4-to-6/legacy_file_format_documentation.pdf), [legacy schematic compatibility](https://docs.kicad.org/9.0/en/eeschema/eeschema.pdf) |
| KiCad 6+ S-expression schematic (`.kicad_sch`) | Reuses the bounded KiCad S-expression arena to validate the `kicad_sch` root, then extracts common `symbol` instances with `lib_id` and `Reference`/`Value` properties, `wire`/`bus` point lists, local/global/hierarchical labels, graphical text, and junctions. Embedded `lib_symbols`, pin-level connectivity, hierarchical instances, images, 3D models and ERC/DRC are not evaluated; source coordinates remain inert mm values and the output is a deterministic simplified drawing. Limits inherit the arena's input/node/depth/quoted-text bounds plus 500,000 rendered items, 16 MiB visible text and ±100,000,000 mm coordinates. Spec: [KiCad S-expression schematic format](https://dev-docs.kicad.org/en/file-formats/sexpr-schematic/), [KiCad S-expression introduction](https://dev-docs.kicad.org/en/file-formats/sexpr-intro/) |
| LTspice ASCII schematic (`.asc`, LTspice `Version` signature) | Decodes UTF-8/ASCII and BOM-marked UTF-16, validates the `Version`/`SHEET` header, and extracts `WIRE`, `FLAG`, `SYMBOL`/`SYMATTR`, `TEXT`, `LINE`, `RECTANGLE`, and basic `CIRCLE` records into a fitted drawing. `.asy` symbol libraries, model/include paths, hierarchy, pin semantics and simulation commands are never opened or executed. `.asc` files with an ESRI `NCOLS`/`NROWS` signature remain routed to the ESRI ASCII Grid reader. Limits: 128 MiB input, 2,000,000 lines, 1 MiB/line, 500,000 items, 16 MiB text and ±100,000,000 coordinates. Sources: [LTspice schematic reference](https://analogdevicesinc.github.io/ltspice-reference/ai_ref/SCHEMATIC-REFERENCE.html), [KiCad LTspice importer notes](https://dev-docs.kicad.org/en/import-formats/ltspice/index.html) |
| Autodesk EAGLE XML schematic (`.sch`, EAGLE `<eagle>` signature) | Parses bounded XML `parts`, `instances`, `plain`/`net` wires, `label` and `text` elements, validating coordinates and XML depth/events before drawing a deterministic component/wire approximation. The `.sch` extension is claimed only when the EAGLE root signature is present; KiCad legacy and other `.sch` variants remain separate. Library package geometry, scripts, external files, pin connectivity and DRC/ERC are omitted; DTD external entities are not loaded. Limits: 128 MiB input, 2,000,000 XML events, depth 256, 250,000 components/labels, 1,000,000 wires and 16 MiB text. Sources: [KiCad EAGLE import format](https://dev-docs.kicad.org/en/import-formats/eagle/index.html), [KiCad import-format documentation](https://dev-docs.kicad.org/en/import-formats/) |
| DXF バージョン | ASCII DXFはAutoCAD Release 12(AC1009)から AutoCAD 2018+(AC1032)まで。Binary DXFはAutoCAD Binary DXF sentinel、Release 14以降の16-bit group codeとRelease 14以前の1-byte group codeに対応 |
| Binary DXF value | Autodeskのgroup-code type tableに従い、NUL終端text、little-endian bool/int16/int32/int64/double、length-prefixed binary chunkをASCII pair streamへbounded decode。extended group code escape `0xFF`、malformed/truncated value、未知group-code typeは検出して拒否。Binary input/expanded ASCIIは各256 MiB、最大2,500,000 pairs、1 MiB/string。仕様: [Binary DXF sentinel/value encoding](https://help.autodesk.com/cloudhelp/2019/ENU/AutoCAD-DXF/files/GUID-FC1C3C69-DBC2-49E4-893A-000D6538C0FE.htm)、[group-code value types](https://help.autodesk.com/cloudhelp/2019/ENU/AutoCAD-DXF/files/GUID-2553CF98-44F6-4828-82DD-FE3BC7448113.htm)。 |
| DXF テキストエンコーディング | UTF-8 に加え、AutoCAD 標準の ANSI/Windows-1252/ISO-8859-1(度記号 `°` や欧州記号等)への自動フォールバック |
| DXF レイヤー・色 | ACI(AutoCAD Color Index 1〜255)および 24-bit TrueColor(グループコード 420)対応。レイヤーごとの色・可視状態(非表示・フライズ)を反映 |
| DXF 線種 | CONTINUOUS(実線)、DASHED(破線)、DOT(点線)、DASHDOT(一点鎖線)等を SVG stroke-dasharray へ変換 |
| DXF エンティティ | LINE、POINT、CIRCLE、ARC、ELLIPSE、LWPOLYLINE(バルジ係数からの正確な円弧パス生成)、SPLINE、SOLID、3DFACE、TEXT、MTEXT(制御コード整形) |
| DXF ブロック(BLOCK / INSERT) | ブロック定義の保持と INSERT 参照展開。ブロック内ブロックの再帰参照(安全上限深度 16)と局所アフィン変換行列の合成 |
| Gerber RS-274X | アパーチャ定義(円形 C、矩形 R、長円 O、多角形 P)、フラッシュ(D03)、線分/円弧補間(D01/D02)、G36/G37 ポリゴン輪郭ベタ塗り、基板外形プレビューと銅箔配線レイヤー(Copper Layer) |
| HP-GL / HP-GL/2 | ペン選択(SP0〜8)、絶対/相対座標プロット(PA, PR, PD, PU)、円弧(AA)、円(CI)、ペン幅設定(PW)と 8 色ペンパレット |
| G-code (RS-274D / CNC) | 急速送り(G00: 青色破線)、直線切削送り(G01: オレンジ実線)、円弧切削(G02/G03: 時計回り/反時計回り、I/J 相対中心および R 半径指定)、スピンドル・冷却・送り速度解析、CAM シミュレータ背景描画 |
| Excellon Drill | 工具径定義(TxxCxx)、工具選択、穴座標(小数点表記および固定長 2:4 インチ / 3:3 ミリ)、FR-4 基板背景と銅ランド環状リング+穴抜き描画、Gerber との座標系適合 |
| STL 3D Slicer | ASCII STL および Binary STL(80バイトヘッダー、三角形数、法線+頂点)両対応。指定 Z 断面(既定:中間 Z 平面)における全三角形との水平平面交差計算、線分端点接続による閉断面輪郭 SVG 抽出(Slice-to-SVG) |
| IFCZIP (`.ifczip`) | Reads one root-level `.ifc` model from a bounded ZIP archive without extracting files. Sidecar entries may be present but are not inflated, extracted, or followed. Exactly one root model is required. Compressed input and declared expanded archive size are each limited to `min(max_input_bytes, 64 MiB)`; ZIP entry count is 10,000, cumulative names 8 MiB, and the model entry is limited to `min(max_input_bytes, max_zip_entry_bytes, 64 MiB)`. Normal IFC-SPF entity and geometry limits also apply. Source: [buildingSMART IFCZIP implementation agreement](https://standards.buildingsmart.org/documents/Implementation/IFC_Implementation_Agreements/CV-2x3-154.html) |
| BCFZIP / BCF-XML (`.bcfzip`; content sniffing) | buildingSMART BIM Collaboration Format packages render `bcf.version`, project name, topic title/status/priority, and bounded comment/viewpoint/document-reference/component counts from `markup.bcf`. Snapshot images, IFC/model payloads, document URLs, GUID payloads, extensions and collaboration actions are omitted or redacted; no archive extraction, external dereference, network operation or issue mutation runs. The markup root is validated as `Markup`. Limits: 128 MiB compressed input, 128 MiB cumulative expanded metadata, 100,000 entries, 16 MiB/entry, 500,000 XML events, 300,000 nodes, depth 96 and 100,000 rows. Source: [buildingSMART BCF](https://technical.buildingsmart.org/standards/bcf/) |
| STEP (ISO 10303-21) | 機械設計標準 Part 21(AP203/AP214/AP242)ASCII 形式。CARTESIAN_POINT, DIRECTION, VECTOR, LINE, VERTEX_POINT, EDGE_CURVE 等のトポロジーをパースし、3D 等角投影(Isometric)ワイヤーフレーム図面を描画 |
| Industry Foundation Classes (`.ifc`, IFC-SPF) | Recognizes a Part 21 IFC schema header; previews IFC4 `IfcTriangulatedFaceSet`/`IfcPolygonalFaceSet` plus `IfcExtrudedAreaSolid` using `IfcRectangleProfileDef`, `IfcCircleProfileDef`, or `IfcArbitraryClosedProfileDef` backed by a closed 2D `IfcPolyline`. The solid position, parameterized profile's 2D position, extrusion direction/depth and product/local placements are applied. A circle is tessellated to 64 segments; arbitrary caps use bounded polygon triangulation. Follows `IfcProduct` → `IfcProductDefinitionShape` → `IfcShapeRepresentation`, and resolves nested `IfcMappedItem` → `IfcRepresentationMap` geometry reuse. Mapping uses inverse `MappingOrigin` followed by the 3D Cartesian target operator (translation, rotation, mirroring, uniform positive scale); direction axes follow `IfcBaseAxis`. Mapped meshes expand per instance under global source/expanded mesh limits; mapped-item depth is capped at 32 and cycles are rejected. Nonuniform/2D mapping operators warn and are omitted. One-based face coordinates and optional `PnIndex` are validated. Convex planar polygons use fan triangulation; simple concave faces up to 256 vertices use bounded ear clipping. Self-intersecting/non-planar faces, concave faces above that limit, and polygon holes are omitted with warnings. B-rep, CSG, tapered/hollow/rounded/other profiles, grid placements, textures/material colors, product properties, spatial hierarchy, units and georeferencing are not evaluated. IFC2x3 and other schemas are recognized but require the same supported geometry. No external part or URI is opened. Bounds: `min(max_input_bytes, 64 MiB)`, 500,000 entities, 8 MiB/entity, 4,000,000 parsed values, nesting depth 64, mapped-item depth 32, 500,000 source and generated profile points, 200,000 source and expanded triangles, 1,000,000 expanded vertices, 20,000,000 polygon edge checks, 64 MiB intermediate mesh, 4,096 profile polyline vertices and 500,000 polyline point references. Sources: [IfcTriangulatedFaceSet](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcTriangulatedFaceSet.htm), [IfcPolygonalFaceSet](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcPolygonalFaceSet.htm), [IfcIndexedPolygonalFace](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcIndexedPolygonalFace.htm), [IfcExtrudedAreaSolid](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcExtrudedAreaSolid.htm), [IfcRectangleProfileDef](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcRectangleProfileDef.htm), [IfcCircleProfileDef](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcCircleProfileDef.htm), [IfcArbitraryClosedProfileDef](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcArbitraryClosedProfileDef.htm), [IfcPolyline](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcPolyline.htm), [IfcAxis2Placement2D](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcAxis2Placement2D.htm), [IfcMappedItem](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcMappedItem.htm), [IfcRepresentationMap](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcRepresentationMap.htm), [IfcCartesianTransformationOperator3D](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcCartesianTransformationOperator3D.htm), [IfcBaseAxis](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcBaseAxis.htm), [IfcLocalPlacement](https://standards.buildingsmart.org/IFC/RELEASE/IFC4/FINAL/HTML/schema/ifcgeometricconstraintresource/lexical/ifclocalplacement.htm), [triangulated-item example](https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/annex_e/basic-geometric-shape/triangulated-item.html) |
| IFCXML (`.ifcxml`; namespace/content sniffing) | Reads buildingSMART IFCXML documents using the supported geometry subset above: IFC4 triangulated/polygonal faces, rectangle/circle/closed-polyline `IfcExtrudedAreaSolid`, product/local placements and mapped tessellations. XML entity IDs and `href`/`ref` links are resolved only within the parsed document; DTDs and external URIs are never loaded. IFCXML lists are whitespace-separated; decimal-comma numeric tokens used in official examples are normalized. Limits match IFC-SPF with 1,000,000 XML nodes, `max_xml_events`, depth 64 and 64 MiB text/attribute budget. Sources: [IFCXML serialization schema](https://standards.buildingsmart.org/IFC/RELEASE/IFC4/FINAL/HTML/annex/annex-a/default/ifcXML4.xsd.htm), [official IFCXML extruded-solid example](https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/annex/annex-e/extruded-solid.ifcxml.htm), [official IFCXML tessellated-beam example](https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/annex/annex-e/beam-straight-i-shape-tessellated.ifcxml.htm) |
| Wavefront OBJ | 3D モデル標準形式(`v` 頂点, `vn` 法線, `f` ポリゴン面)。Painter's Algorithm(デプスソート)およびランバート拡散反射光シェーディングによる立体陰影付きベクターポリゴン描画 |
| 3D PLY (Polygon File Format) | ASCII / Binary Little Endian / Binary Big Endian PLY 1.0。ヘッダー宣言順・scalar型を使ってx/y/zを読み、未描画scalar propertyは安全にskip。`vertex_indices` listの複数整数幅に対応。面が無いvertex-only point cloudはisometric投影でbounded SVG point pathとして描画し、separate RGB `red/green/blue` (`uchar`/`ushort`, normalized or byte-range float) colorsを保持。512色を超えるpoint colorsは512色paletteへquantize。surface meshのvertex color, normalsは描画しない。上限: 100万頂点、20万face、point cloud 20万点/32 MiB SVG path、faceあたり10万index、全体400万index、header/record行各1 MiB。未知element、頂点list、面の追加propertyは拒否。meshは等角投影とランバート拡散反射光シェーディング。SVGからの逆変換(2.5D厚み押し出しASCII PLY出力) |
| Plain XYZ ASCII point clouds (`.xyz`) | Supports comma/whitespace-separated homogeneous numeric rows with optional named column headers. Recognized case-insensitive fields are X/Y/Z, intensity/I/reflectance/scalar, RGB channel aliases, and normal-axis aliases; duplicate recognized columns and partial RGB/normal groups are rejected. Unrecognized header columns are ignored, but every row must retain the same number of fields. Without a header, 3/4/6/7/9/10 fields mean XYZ, XYZI, XYZRGB, XYZI-RGB, XYZN, and XYZI-RGB-normal. `#` and `//` comment rows are skipped; quoted CSV fields are not supported. Integer RGB is `[0,255]`; decimal RGB in `[0,1]` is normalized and black remains black. Intensity is linearly mapped over the observed finite range. Coordinates are retained as stored; units, CRS and scanner transforms are not inferred. Normals are ignored; non-finite or ±1e12-exceeding XYZ rows are skipped. Content sniffing is limited to extensionless 3-field whitespace rows or recognized named headers. Bounds: 128 MiB input, 1 MiB/line, 5,000,001 lines, 5,000,000 data rows, 128 columns, 50,000,000 row fields, 200,000 output points, 32 MiB PLY intermediate. Sources: [Leica Cyclone 3DR import formats/configurable ASCII columns](https://rcdocs.leica-geosystems.com/cyclone-3dr/2026.1/ImportC), [Autodesk ReCap supported point-cloud formats](https://help.autodesk.com/view/RECAP/ENU/?contextId=supported_file_formats) |
| PCL Point Cloud Data (`.pcd`) | PCD v0.5〜0.7 header、ASCII、little-endian interleaved binary、LZF `binary_compressed`に対応。`FIELDS`/`SIZE`/`TYPE`/`COUNT`でfield layoutを検証し、`WIDTH * HEIGHT == POINTS`、XYZ scalar field、decoded payload lengthを確認。compressed payloadはPCD規格どおりfield-majorへ展開。XYZとpacked `rgb`/`rgba` float/integerまたはseparate 8/16-bit RGB fieldsを描画し、512色を超える場合は512色paletteへquantize。intensity/normal等のnon-coordinate fieldsはwarning後に省略。NaN/Inf・±1e12超の点はwarning付きでskipし、非default `VIEWPOINT`は適用せずwarning。上限: 128 fields、16,384 scalar values/point、1 MiB/point record/header line、1 MiB total header、1 MiB point step、200,000 points、128 MiB decoded payload、32 MiB generated PLY text。仕様: [PCL PCD file format](https://pointclouds.org/documentation/tutorials/pcd_file_format.html)、[PCL packed RGB layout](https://github.com/PointCloudLibrary/pcl/blob/master/common/include/pcl/impl/point_types.hpp) |
| ASTM E57 (`.e57`) | Uses the pure-Rust E57 1.0 reader. Verifies the 48-byte header, exact physical file length, XML extent and CRC-protected 1 KiB pages as XML and point data are read. One output page per cloud. Applies each cloud's quaternion/translation pose and converts spherical coordinates to Cartesian when needed. Retains normalized RGB or uses normalized intensity as grayscale; points with invalid/non-finite or ±1e12-exceeding Cartesian coordinates are omitted. Deterministic sampling caps output at 200,000 points across all clouds while the source decode budget is capped at 20 million records. Bounds: `min(max_input_bytes, 2 GiB)` input, 50 MiB XML/text, `min(max_xml_events, 1,000,000)` XML events, 250,000 XML nodes, depth 64, 10,000 point clouds, 128 prototype attributes per cloud and 32 MiB PLY intermediate per cloud. Images/blob content, CRS reprojection, grouping/index packets, return/timestamp/row-column and numeric extension attributes are not rendered; string-valued point attributes are unsupported and rejected; no external resource paths are followed. Sources: [ASTM E2807 Version 1.0 overview](https://store.astm.org/standards/e2807), [E57 reader API and CRC handling](https://docs.rs/e57/0.11.13/e57/struct.E57Reader.html), [E57 Test Data collection and license](https://e57-3d-imgfmt.sourceforge.net/data.html) |
| Leica PTS ASCII point clouds (`.pts`) | One point-count line followed by one whitespace-separated XYZ/intensity (4-field) or XYZ/intensity/RGB (7-field) record per point. A homogeneous record width is required. All-integer intensity columns use the legacy Leica range `[-2048, 2047]` mapped to grayscale by `(value + 2048) / 4096`; decimal intensity columns use `[0, 1]`. RGB integer channels use `[0, 255]`; fractional decimal RGB in `[0, 1]` is normalized. Leica's reserved `(0, 0, 0)` no-color value uses a blue fallback. Zero coordinates, including the origin, are valid. One page is rendered. Deterministic sampling caps output at 200,000 points. Scanner pose, scan-grid order, and additional scalar attributes are not represented. Bounds: 128 MiB input, 1 MiB/line, 5,000,001 lines, 5,000,000 points/35,000,000 numeric fields, 200,000 output points, 32 MiB generated PLY. Sources: [Leica Cyclone PTS export](https://rcdocs.leica-geosystems.com/cyclone-3dr/2026.0/ExportC), [Leica REGISTER 360 PTS export description](https://rcdocs.leica-geosystems.com/cyclone-register-360/latest/third-party-file-export), [Hexagon's Leica PTS/PTX format note](https://nexus.hexagon.com/community/cfs-filesystemfile/__key/communityserver-discussions-components-files/735/PTX-File-Format.pdf), [Leica-supported point-cloud imports](https://rcdocs.leica-geosystems.com/cyclone-3dr/2026.1/ImportC) |
| Leica PTX structured point clouds (`.ptx`) | ASCII PTX supports multiple consecutive scan sections; each has grid column/row counts, 4×3 sensor metadata, 4×4 cloud transformation and one 4/7/10-value row per grid cell. The 4×4 cloud matrix is applied with bounded orthonormalized axes. RGB is retained from 7/10-field records; Leica's reserved `(0, 0, 0)` no-color value uses a blue fallback. Four-field intensity-only scans render intensity as grayscale; normals and scanner pose/grid objects are not drawn. Zero XYZ cells are treated as no-return and omitted. A scan becomes one page. Deterministic grid-cell sampling caps total preview points at 200,000. Bounds: 128 MiB input, 1 MiB/line, 5,000,000 lines, 10,000 scans, 2,000,000 total grid cells, 24,000,000 numeric fields, 200,000 output points and 32 MiB PLY intermediate/scan. Sources: [Hexagon's PTX format description](https://nexus.hexagon.com/community/cfs-filesystemfile/__key/communityserver-discussions-components-files/735/PTX-File-Format.pdf), [Leica PTX import/export support](https://rcdocs.leica-geosystems.com/cyclone-3dr/2025.2/ImportC), [Leica PTX export and registration-transform description](https://rcdocs.leica-geosystems.com/cyclone-register-360/2023.0/third-party-file-export), [CloudCompare PTX reader implementation](https://raw.githubusercontent.com/CloudCompare/CloudCompare/master/plugins/core/IO/qCoreIO/src/PTXFilter.cpp) |
| ASPRS LAS/LAZ point clouds (`.las`, `.laz`) | LAS 1.0–1.4 public headers and point formats 0–10; uncompressed LAS and LASzip-compressed LAZ through `las` 0.11.1. Scaled/offset XYZ coordinates are sampled deterministically to at most 200,000 marks; uncompressed LAS uses indexed seeks, while sequential LAZ decoding is capped at 20 million points. Optional 16-bit RGB is normalized to 8-bit and quantized by the shared point renderer above 512 color groups. CRS transformation, waveform, classification, intensity, GPS time, NIR, and extra-byte attributes are omitted and reported. Preflight bounds input to 2 GiB, the VLR area to 16 MiB, the first EVLR to 8 MiB, point records to 4 KiB, and generated PLY text to 32 MiB. Sources: [ASPRS LAS 1.4 R15](https://www.asprs.org/wp-content/uploads/2021/04/LAS_latest.pdf), [las crate reader](https://docs.rs/las/0.11.1/las/reader/index.html) |
| 3MF (3D Manufacturing Format) | OPC ZIPのroot StartPart relationshipを解決してprimary modelを読む(relationshipがない旧ファイルのみ`3D/3dmodel.model`へfallback)。build itemが参照するobjectだけを選び、component hierarchyを展開してrow-major affine component/build transformを順に適用する。`unit`(micron/mm/cm/inch/foot/meter、default mm)をmmへ換算してから等角投影。negative-determinant transformsではtriangle windingを反転。build sectionがない旧producer fileのみ、warning付きで未参照のtop-level object resourceをfallback表示。未対応のrequired extensionは拒否し、recommended extensionはwarningを記録。material/property colorとoverlapping solid unionは評価しない。Limits: 100,000 objects/components/build items、1,000,000 source/expanded vertices、200,000 source/expanded triangles、64 component depth、1,000,000 expansion visits、XML event/ZIP-entry/total-input limits。SVGからの逆変換(2.5D厚み押し出し3MF OPC ZIP出力)。仕様: [3MF Consortium Core Specification, build instructions/matrices/components](https://github.com/3MFConsortium/spec_core/blob/master/3MF%20Core%20Specification.md) |
| glTF 2.0 (`.gltf`, `.glb`) | JSON glTFとGLBのdefault scene、node matrix/TRS hierarchyをたどり、triangle list/strip/fanとline primitivesをY-up→renderer Z-upへ変換してOBJ shaded mesh pathで描画し、規格のmeter座標をpreview用mmにscale。BufferはGLB BIN、base64 `application/octet-stream`/`application/gltf-buffer` URI、入力ディレクトリ配下の相対local fileのみ。remote/traversal buffersは拒否。POSITIONはnon-normalized FLOAT VEC3、indicesはU8/U16/U32 scalarのみ。materials/textures/vertex colors, morph targets, skins, animations, sparse accessors, optional extensionsは未評価またはwarning。限界: 64 buffers、10,000 scenes、100,000 nodes/meshes/bufferViews/accessors、200,000 primitives、128 MiB/buffer/256 MiB total、1,000,000 expanded vertices、200,000 triangles、500,000 lines、256 MiB generated OBJ。仕様: [Khronos glTF 2.0](https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html) |
| COLLADA (`.dae`) | XML geometryの`source` position arrays、`vertices` POSITION input、triangle/polylist primitiveをboundedに抽出してOBJ shaded mesh rendererで描画。materials、textures、animations、controllers、external references、node transformは再構築せずwarning。Limits: 64 MiB input、1,000,000 XML events、depth256、100,000 sources、10,000,000 source values、2,000,000 generated vertices、500,000 faces。仕様: [Khronos COLLADA](https://www.khronos.org/collada/) |
| X3D XML (`.x3d`) | `Coordinate` point listsと`IndexedFaceSet`/`IndexedLineSet`のindexをboundedに抽出し、OBJ shaded mesh rendererで描画。Transform、Material、Texture、Normal、Color、Animation、外部URLは再構築せずwarning。Limits: 64 MiB input、1,000,000 XML events、depth256、2,000,000 vertices、500,000 faces/lines。仕様: [Web3D standards](https://www.web3d.org/standards) |
| IGES (Initial Graphics Exchange Specification) | 80カラム ASCII 固定レコード形式。グローバルセクション、ディレクトリ (D) およびパラメータ (P) セクション解析。Entity 110 (Line), 100 (Circular Arc), 106 (Coplanar Copious Data / B-spline) の3D等角投影、SVGからの逆変換(ANSI IGES 5.3 80カラムASCII出力) |
| MEDIT mesh (`.mesh`, `.medit`, `.meshb`) | ASCII `MeshVersionFormatted` 1–5 and binary meshb versions 1–4 (little/big endian). Reads `Dimension` 2/3 and linear Vertices, Edges, Triangles, Quadrilaterals, Tetrahedra, Pyramids, Prisms, Hexahedra. Binary keyword chains use bounded monotonic offsets, versioned 32/64-bit pointers/counts/indices and v1 float32 vs v2–4 float64 coordinates. Comments and Corners/Ridges/Required* marker sections are skipped; binary non-rendered/high-order/solution keywords are skipped with one warning. All 1-based connectivity must reference an existing vertex. 3D is projected onto XY. Limits: 256 MiB input, 5M ASCII lines/keyword sections, 1 MiB line, 1M vertices/elements, 2M wireframe primitives. Sources: [INRIA MEDIT guide](https://sed-bso.gitlabpages.inria.fr/formations/MdB-Medit/MdB-Medit.html), [libMeshb reference implementation and sample meshes](https://github.com/LoicMarechal/libMeshb) |
| OFF polygon mesh (`.off`, COFF/NOFF/CNOFF headers) | ASCII Object File Format: zero-based vertices and planar polygon faces are validated then passed through the bounded shaded OBJ renderer. Optional vertex colors/normals and face colors are ignored with a warning. Binary, 4D, point-only/edge-only, and hole-bearing polygon variants are not supported. Limits: 256 MiB input/intermediate, 1,000,000 vertices, 200,000 faces, 100,000 vertices/face, 4,000,000 total face indices. Specification: [Geomview Manual, OFF files](https://geomview.sourceforge.io/docs/geomview.pdf), [CGAL OFF support](https://doc.cgal.org/latest/Stream_support/IOStreamSupportedFileFormats.html) |
| Tecplot ASCII (`.dat`, `.tec`, `.tecplot`, `.tp`) | Reads bounded `TITLE`/`VARIABLES`/`ZONE` data for POINT or BLOCK packed finite-element zones (FETRIANGLE, FEQUADRILATERAL, FETETRAHEDRON, FEBRICK) and ordered I/J grids. X/Y coordinates are required; an additional numeric variable is an inert scalar field. Zone metadata, advanced packing, and solver/macros are omitted or warned. Limits: 128 MiB input, 5,000,000 lines, 256 variables/zones, 16,000,000 numeric values, 1,000,000 nodes/cells. Sources: [Tecplot data format guide](https://tecplot.azureedge.net/products/360/2024r1m1/360-data-format.html), [Tecplot ASCII overview](https://polyxios.org/stable/formats/tecplot.html) |
| EnSight Gold ASCII (`.case`, `.geo`) | Reads one bounded ASCII Gold case manifest and one canonicalized local geometry sidecar. Supports parts with coordinates, optional node/element IDs, extents, and common linear `bar2`, `tria3`, `quad4`, `tetra4`, `penta6`, `pyramid5`, and `hexa8` blocks. Variable files and solver metadata remain inert; binary cases, multiple models, `nsided`/`nfaced`, external paths, and sidecar escapes are rejected or warned. Limits: 128 MiB per file, 5,000,000 lines, 1 MiB/line, 100,000 parts, 1,000,000 nodes/elements, and 8,000,000 connectivity references. Source: [Ansys EnSight Gold casefile format](https://ansyshelp.ansys.com/public/Views/Secured/corp/v261/en/ensight_um/UM-C9xmlidEnSightGoldCaseFileFormat.html) |
| PLOT3D formatted ASCII (`.p3d`, `.plot3d`, `.p3`) | Reads single- or multi-block structured grid dimensions and formatted X/Y(/Z) coordinate arrays. I-fastest/J/K indexing is preserved; 2D blocks render quadrilateral cells and 3D blocks render only six boundary surfaces. Unformatted Fortran records, IBLANK masks, solution `.q` fields and solver metadata are not decoded. Limits: 128 MiB input, 5,000,000 lines, 1 MiB/line, 1,024 blocks, 100,000 points per side, 1,000,000 points and 16,000,000 numeric values. Sources: [NASA PLOT3D file format](https://www.grc.nasa.gov/www/wind/valid/plot3d.html), [NASA OVERGRID PLOT3D notes](https://www.nas.nasa.gov/publications/software/docs/chimera/pages/overgrid.html) |
| VRML97 text mesh (`.wrl`, `.vrml`) | Extracts bounded `Coordinate { point [...] }` arrays and nearby `IndexedFaceSet`/`IndexedLineSet` `coordIndex` records, validates finite XYZ values and zero-based indices, and delegates to the shaded OBJ mesh renderer. TextureCoordinate points, transforms, appearances, scripts, routes, and external URLs are ignored; no active content or resource is loaded. Limits: 128 MiB input, 20,000,000 tokens, 2,000,000 points, 500,000 faces/lines, 8,000,000 index references, 128 bracket nesting, and 256 MiB generated mesh text. Specification: [VRML97 node reference](https://www.web3d.org/documents/specifications/14772/V2.0/part1/nodesRef.html) |
| SU2 native mesh (`.su2`) | Reads bounded UTF-8/ASCII 2D/3D meshes with `NDIME`, `NELEM`, `NPOIN`, and `NMARK`. Supports linear VTK type IDs for lines, triangles, quadrilaterals, tetrahedra, hexahedra, prisms, and pyramids; optional legacy node/element ids are ignored after validation. 2D cells render as filled mesh faces and marker lines; 3D volume cells expand to deduplicated edges and project onto XY, with marker faces reduced to their outlines. Boundary marker edges are highlighted in orange; names and solver boundary-condition settings are reported but not displayed. Unsupported and higher-order element types are summarized, malformed connectivity and non-finite coordinates are rejected, and no CFD solver runs. Bounds: 128 MiB input, 2,000,000 lines, 1 MiB/line, 1,000,000 points/cells, 8,000,000 connectivity references, 10,000 markers, and 2,000,000 rendered primitives. Spec: [SU2 Mesh File](https://su2code.github.io/docs_v7/Mesh-File/) |
| OpenFOAM polyMesh (`.foam` case marker) | Reads ASCII `constant/polyMesh/points`, `faces`, `owner`, `neighbour` and `boundary` sidecars. If an uncompressed path is missing, it tries the matching `.gz` sibling, matching OpenFOAM's compressed stream lookup; gzip members are CRC-checked and boundedly decompressed. Binary mesh payloads remain unsupported. Each canonicalized sidecar must remain inside the case root; only fixed filenames are opened and dictionary directives are never followed. All face edges render as an isometric wireframe and boundary patch edges are highlighted orange. Patch names, owner/neighbour cell values, fields, time directories and solver settings are not rendered. Compressed raw case input and decompressed sidecar totals are each limited to `min(max_input_bytes, 256 MiB)`; each raw or expanded file is capped at 128 MiB. Other bounds: 1,000,000 points/faces/cells, 100,000 vertices/face, 8,000,000 face indices, 100,000 patches, 24,000,000 parser tokens and 2,000,000 rendered edges. Sources: [OpenFOAM mesh description](https://www.openfoam.com/documentation/user-guide/4-mesh-generation-and-conversion/4.1-mesh-description), [writeCompression uses gzip](https://www.openfoam.com/documentation/user-guide/6-solving/6.1-time-and-data-inputoutput-control), [OpenFOAM input streams try the `.gz` suffix](https://api.openfoam.com/2606/classFoam_1_1ifstreamPointer.html). |
| OpenFOAM field files (`.foamfield`, `.foam-field`; content sniffing) | Standalone ASCII FoamFile `volScalarField`/`volVectorField`/surface-field inputs render class/object/location, uniform or nonuniform entry count, finite local min/max (vector magnitude) and boundary patch count. Value arrays, dimensions, patch dictionaries, directives, case paths and solver execution are omitted. Limits: 128 MiB input, 20,000,000 tokens, 1,000,000 entries, 100,000 patches and 512 KiB strings. Source: [OpenFOAM field files](https://doc.openfoam.com/2606/quickstart/) |
| ASAM OpenDRIVE (`.xodr`, `.opendrive`, `.opendrive.xml`, `.open-drive.xml`; content sniffing) | Road `planView` reference lines render `<line>` and constant-curvature `<arc>` geometry as a bounded planar map. Local metre coordinates are normalized for display; `<spiral>`, `<poly3>`, `<paramPoly3>`, lanes, profiles, signals, objects, links and simulator behavior remain inert. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 96, 100,000 roads, 200,000 geometries and 500,000 positions. Source: [ASAM OpenDRIVE](https://www.asam.net/standards/detail/opendrive/) |
| ASAM OpenCRG (`.crg`, `.opencrg`; content sniffing) | Clear-text OpenCRG header sections render keyword and line-count rows. ASCII/binary road-surface payloads and `$ROAD_CRG_FILE` references are omitted; no tire, vehicle or surface evaluation runs. Limits: 64 MiB input, 1,000,000 lines, 1 MiB/line and 100,000 sections. Source: [ASAM OpenCRG](https://www.asam.net/standards/detail/opencrg/) |
| ASAM OpenSCENARIO XML (`.xosc`, `.openscenario`, `.openscenario.xml`, `.open-scenario.xml`; content sniffing) | FileHeader revision, ScenarioObject entities, Story/Act/Maneuver/Event/Action hierarchy, parameter/catalog-reference counts and RoadNetwork presence render as inert tables. Catalogs, road files, controllers, expressions, triggers and simulator behavior are not resolved or executed. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 96 and 200,000 rows. Source: [ASAM OpenSCENARIO XML](https://www.asam.net/standards/detail/openscenario-xml/) |
| ASAM OpenLABEL 1.0 JSON (`.openlabel.json`, `.openlabel`, `.open-label.json`; content sniffing) | Annotation collection counts for objects, actions, events, contexts, relations, frames, streams, tags, ontologies, resources and coordinate systems render with schema and nested object-data summaries. Sensor payloads, coordinates, annotation values, ontology URLs and external resources are omitted; no sensor or network operation runs. Limits: 64 MiB input, depth 100, 300,000 JSON values, 100,000 entries and 2 MiB strings. Source: [ASAM OpenLABEL](https://www.asam.net/standards/detail/openlabel/) |
| OGC CityGML 2.0/3.0 (`.citygml`, `.citygml.xml`, `.citygml.gml`; content sniffing) | CityModel thematic objects (Building, Road, Railway, WaterBody, Relief, Vegetation) render with LoD, Envelope, CRS and XLink counts. Geometry, textures, attributes, XLinks and external resources remain inert; no CRS transformation or 3D operation runs. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 96 and 200,000 rows. Source: [OGC CityGML](https://www.ogc.org/standards/citygml/) |
| OGC CityJSON 1.x/2.0 (`.cityjson`, `.city.json`, `.cityjson.json`; content sniffing) | CityObject type/geometry/LoD counts, vertex and boundary-index counts, and transform/metadata presence render as bounded tables. Coordinates, semantics, materials, textures, attributes, extensions and external resources are not expanded or transformed. Limits: 64 MiB input, depth 100, 300,000 JSON values, 100,000 objects, 500,000 vertices, 200,000 geometries/rows and 2 MiB strings. Source: [OGC CityJSON](https://www.ogc.org/standards/cityjson/) |
| OASIS STIX 2.1 JSON (`.stix.json`, `.stix-json`, `.stix`; content sniffing) | STIX bundles and objects render bounded type/id, created/modified timestamps, label counts and relationship/reference counts. Descriptions, indicator patterns, hashes, URLs, marking content and custom properties are omitted; no TAXII/API/network operation runs. Limits: 64 MiB input, depth 100, 300,000 JSON values, 100,000 objects, 200,000 rows and 2 MiB strings. Source: [OASIS STIX 2.1](https://docs.oasis-open.org/cti/stix/v2.1/os/stix-v2.1-os.html) |
| OASIS TAXII 2.1 JSON (`.taxii.json`, `.taxii-json`, `.taxii`; content sniffing) | Envelope, manifest, collection, discovery, status and error resources render bounded IDs, object/version counts and capability/status metadata. STIX payloads, URLs, descriptions, authorization data and TAXII endpoints are omitted; no HTTP client or network operation runs. Limits: 64 MiB input, depth 100, 300,000 JSON values, 100,000 entries, 200,000 rows and 2 MiB strings. Source: [OASIS TAXII 2.1](https://docs.oasis-open.org/cti/taxii/v2.1/os/taxii-v2.1-os.html) |
| Gmsh 有限要素メッシュ | ASCII MSH 2.x / 4.0 / 4.1、little/big endian binary MSH 2.2と4.0/4.1。binary 4.0のplatform-dependent `unsigned long`幅4/8をstrict section-boundary validationで判定し、必須`$Entities`、mixed node-tag/coordinate records、int32 element/node tagsを読む。binary 4.1はsize_t width 4/8、tag range headers、separate tag/coordinate arraysを読む。ASCII/binaryとも4.x entity block、sparse node/element tag、parametric node coordinatesを読み、line/triangle/quad/tetrahedron/hexahedron/prism/pyramidと対応高次要素のcorner meshを等角投影。3D volume cellはwireframe edgesに展開。`NodeData` / `ElementData`の最初のviewを読み、複数componentはEuclidean magnitudeで着色。binary 4.0 `ElementNodeData`は非対応、4.1はwarning付きskip。`PartitionedEntities` / `Periodic` / `GhostElements` / `Parametrizations`は未対応。仕様: [Gmsh MSH file format and 4.1 revision notes](https://gmsh.info/doc/texinfo/gmsh.html#MSH-file-format) |
| Abaqus input deck (`.inp`) | UTF-8/ASCII mesh-only deckの`*NODE` / `*ELEMENT`を描画。flat meshと、part-levelまたはinstance-levelで定義されたmeshのassemblyを処理し、part meshはinstanceごとに複製してtranslationの後にright-handed axis-angle rotationを適用。対応要素はC3D4/5/6/8/10/15/20、CPS/CPE/CAX 3/4/6/8、S3/4/6/8、M3D3/4、B21/22/31/32、T2D2/3、T3D2/3。midside nodeは無視してstraight corner edgeを出し、3D座標はXY投影。loads、materials、sections、field output、setsはrenderしない。unsupported element blockとexternal `*INCLUDE`はwarning、`*SYSTEM`と非Cartesian node system、keyword-line continuation、Abaqus import/restart instanceは拒否。`max_input_bytes`、1 MiB/line、500万lines、100万node/element record、100,000 part/instance、100万expanded nodes、200万wireframe primitiveで制限。仕様: [assembly and instance positioning](https://docs.software.vt.edu/abaqusv2025/English/SIMACAEMODRefMap/simamod-c-partassy.htm)、[official element index](https://docs.software.vt.edu/abaqusv2025/English/SIMACAEELMRefMap/simaelm-c-expelementindex.htm) |
| ANSYS Mechanical APDL coded database (`.cdb`) | Portable ASCII `NBLOCK`/`EBLOCK` blocked mesh records and basic unblocked `N`/`EN` cards are rendered as a bounded XY-projected wireframe. The parser validates fixed-width integer/coordinate fields, node/element references, duplicate IDs, terminators, line lengths and global point/cell limits. Only mesh records are read; APDL commands, `CDREAD`/`/INPUT`, loads, materials, components, solver settings and include paths remain inert and no command is executed. Nonzero Z coordinates warn because 3D is projected onto XY. Limits: `max_input_bytes`, 5,000,000 lines, 1 MiB/line, 1,000,000 nodes/elements and 256 fields. Source: [ANSYS CDWRITE/CDB file format](https://ansyshelp.ansys.com/public/Views/Secured/corp/v261/en/pdf/ANSYS_Mechanical_APDL_Programmers_Reference.pdf), [NBLOCK/EBLOCK import restrictions](https://ansyshelp.ansys.com/public/Views/Secured/corp/v251/en/opti_stats_ug/sos_file_format_specs_ansys_mechanical_import_ansys_mechanical_input_files.html) |
| Nastran Bulk Data (`.bdf`, `.nas`, `.nastran`) | UTF-8/ASCII deckのGRIDと対応構造要素を読み、1ページmesh previewを作成。comma/free-field、空白区切りのfree-field、small-field(8文字)・large-field(16文字)固定幅、parent recordに隣接するcontinuationを扱う。離れた位置にあるラベル付きcontinuationは未対応。対応要素はCTRIA/CTRIA3/CTRIAR/CTRIA6/CTRIAX6、CQUAD/CQUAD4/CQUADR/CQUAD8、CSHEAR、CTETRA、CHEXA、CPENTA、CPYRA/CPYRAM、CROD/CBAR/CBEAM/CTUBE/CBUSH/CONROD。高次要素のmidside nodeは省略しcorner meshを表示。Z座標はXYへ投影。nonzero GRID CPは拒否し、外部 `INCLUDE` は読み込まずwarning、対応family内の未対応要素cardもwarning。analysis control、load、material、property、resultsはrenderしない。入力/line/field/node/element/primitive数に上限を適用。仕様: [MSC Nastran Bulk Data formats and continuation entries](https://documentation-be.hexagon.com/bundle/MSC_Nastran_2020_NonLinear_-SOL_400-_User_Guide/raw/resource/enus/MSC_Nastran_2020_NonLinear_%28SOL_400%29_User_Guide.pdf)、[MSC Nastran Getting Started Guide](https://documentation-be.hexagon.com/bundle/MSC_Nastran_2022.1_Getting_Started_Guide/raw/resource/enus/MSC_Nastran_2022.1_Getting_Started_Guide.pdf) |
| Nastran Output2 (`.op2`) | Bounded binary preflight reads conservative record-length/trailer framing and recognizes common table labels such as GEOM1, OUGV1, OES1, OQG1 and XSOP2DIR. Model geometry, element connectivity, result vectors, precision variants, subcase semantics, external paths and solver operations are not decoded. Limits: 2 GiB input, 16 MiB prefix scan, 64 MiB record, 100,000 framed records and 1,000 recognized table labels. Source: [Autodesk Nastran Output2 reference](https://help.autodesk.com/cloudhelp/2023/ENU/NSTRN-Reference/files/GUID-3B8181DF-75C6-43AD-AF05-30341AFE842A.htm) |
| Siemens JT (`.jt`) | The fixed 80-character JT Version header and byte-order marker render as bounded metadata. TOC/LSG segments, tessellation, Parasolid XT B-Rep, PMI, attributes, compression and external resources are not decoded. Limits: 2 GiB input and 96-byte header read. Source: [Siemens JT File Format Reference](https://www.plm.automation.siemens.com/en_us/Images/JT-v10-file-format-reference-rev-B_tcm1023-233786.pdf) |
| IPC-2581 PCB exchange (`.ipc2581`, `.ipc-2581`, `.cvg`; content sniffing) | XML Content, LogisticHeader, HistoryRec, BOM, ECAD, AVL, board/layer/component/net/route/padstack/package/stackup/feature structure is summarized as bounded counts. Coordinates, material values, tool paths, inspection values, binary attachments, external references, manufacturing/assembly/test operations are never rendered or executed. Limits: 128 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [IPC-2581C](https://www.ipc.org/TOC/IPC-2581C-toc.pdf) |
| LS-DYNA Keyword (`.k`, `.key`) | UTF-8 keyword deckの`*NODE`、`*ELEMENT_SHELL`、`*ELEMENT_BEAM`と対応するsolid element cards/optionsを読み、1ページmesh previewを作成。標準形式とcomma区切りfree formatに対応し、`+` long formatは拒否。shellはtriangle/quad、beamは端点line、solidは4-node tetra/5-node degenerate pyramid/6-node wedge/8-node hexとTET10/15、PENTA21/40、HEX20/27/64をcorner meshとして描画。20-node solidは`*ELEMENT_SOLID_H20` / `_T20`などoption keywordで種別が明示された場合に対応し、base cardだけでは曖昧なため拒否。midside nodeとbeam orientation nodeは表示せず、3DはXY投影。解析、materials、sections、loads、resultsはrenderしない。外部 `INCLUDE` は読み込まずwarning、他の`*ELEMENT_` / `*NODE_` keywordもwarning。`*NODE`の座標system optionやstructured LS-DYNA inputは未対応。入力/line/field/node/element/primitive数に上限を適用。仕様: [LS-DYNA Keyword Manual Volume I (R14)](https://ansyshelp.ansys.com/public/Views/Secured/Doc_Assets/Release/v242/LS-DYNA_Manual_Volume_I_R14.pdf)、[mesh keyword definitions](https://ansyshelp.ansys.com/public/Views/Secured/corp/v252/en/lsdyna_ug/exd_ag_lsdyna_mesh_def.html)、[official keyword shell example](https://lsdyna.ansys.com/shell/) |
| I-DEAS Universal/UFF mesh (.unv) | ASCII datasets 15/2411 (nodes) and 2412 (elements); datasets may appear in either order. Reads fixed-width records, Fortran D exponents, and global-coordinate nodes. Renders rods/beams, linear or selected higher-order triangles/quads, tetrahedra, prisms, and hexahedra; higher-order elements use corner nodes and volume cells expand to outline edges. Z is projected to XY. Non-global coordinate systems are rejected; groups, properties, units, scalar/result datasets, and non-mesh datasets are omitted or warned. Bounds: 128 MiB input, 2,000,000 lines, 1 MiB/line, 1,000,000 nodes/elements, 128 node IDs/element, 16,000,000 connectivity IDs, 2,000,000 rendered primitives. References: [University of Cincinnati UFF 2411/2412 dataset library](https://www.ceas3.uc.edu/sdrluff/all_files.php), [ANSYS UNV dataset support](https://ansyshelp.ansys.com/public/Views/Secured/corp/v261/en/mech_addon/ds_results_nvh_unv_file_restrictions.html), [libMesh ASCII reader](https://github.com/libMesh/libmesh/blob/master/src/mesh/unv_io.C) |
| VTK スカラー場シミュレーション | VTK Legacy ASCIIと固定幅big-endian Binary(`UNSTRUCTURED_GRID`の`CELL_TYPES`/`CELL_DATA`、`POLYDATA`のVERTICES/LINES/POLYGONS/TRIANGLE_STRIPS)およびVTK XML UnstructuredGrid (`.vtu`)、PolyData (`.vtp`)、ImageData (`.vti`)、RectilinearGrid (`.vtr`)、StructuredGrid (`.vts`)。Legacyは最初のpoint/cell `SCALARS`配列、XMLはactive point/cell `Scalars`を読み、選択されたmulti-component scalar arrayはEuclidean magnitudeでJet表示(domain-specific equivalent stressではない)。Legacyのvector/tensor等、XMLのactiveでないmulti-component arrayは警告して省略。binary Legacyはbig-endian char/unsigned_char、short/unsigned_short、int/unsigned_int、float/doubleに対応し、platform-width依存型は拒否。tetrahedron/hexahedron/wedge/pyramidと2次要素はcorner wireframeに展開し、1D edge scalarも色分け。structured datasetはPiece Extentからimage origin/spacing/direction、rectilinear coordinate axes、または明示StructuredGrid pointsを使って格子を生成。XMLはinline ASCII、base64 inline binary/appended arrays、raw appended binary(uncompressed / `vtkZLibDataCompressor`)とLittle/Big Endian、UInt32/UInt64 block headerに対応。LZ4/LZMA compressor、parallel XML (`.pvtu` / `.pvtp` / `.pvti` / `.pvtr` / `.pvts`)は未対応。入力bytes、raw appended payload(192 MiB)、Legacy lines/XML events、1M points、1M raw cells、2M rendered primitives、8M values per array、16M values totalを上限化 |
| 安全上限 | DXFは最大5,000,000行・500,000 entity・polylineあたり100,000頂点。STLは2,000,000三角形、STEP/OBJは500,000 entity。IFCは64 MiB、500,000 entity、4,000,000 parsed value、500,000 point、200,000 face/triangle、64 MiB intermediate mesh。SU2は128 MiB・2,000,000行・1,000,000 point/cell。OpenFOAMはcase全体256 MiB、各mesh file128 MiB、1,000,000 point/face、8,000,000 connectivity index、2,000,000 rendered edge。EnSightはcase/geometry各128 MiB・100,000 part・1,000,000 node/element・8,000,000 connectivity。Gmsh/VTK/Nastran/LS-DYNA/UNVは最大1,000,000 node・raw cell、2,000,000 rendered primitive。Nastran/LS-DYNAは最大5,000,000行、UNVは2,000,000行、各最大1 MiB、128 field/card。形式固有のXML、array、展開byte上限も適用 |
### Web / 電子書籍 / Office文書 / メール / カレンダー / 連絡先 / テキスト / 翻訳カタログ / 字幕 / bibliography / Notebook / dataset (HTML / MHTML / DocBook / DITA / HWPX / XMind / NIfTI / FITS / MRC / SQLite / CIF / MOL2 / RDF Turtle / JSON-LD / EPS/PostScript / EPUB / FB2 / ODT / ODS / ODP / VSDX / VDX / EML / EMLX / MSG / MBOX / ICS / VCS / vCard / Markdown / AsciiDoc / reStructuredText / Org-mode / gettext PO/POT / XLIFF / BibTeX / ARFF / SRT / WebVTT / TTML / Jupyter / Quarto)
| 項目 | 状態 |
|---|---|
| HTML (`.html`, `.htm`) | セマンティックマルチページ組版。`<h1>`〜`<h6>`見出し、`<p>`段落、`<ul>`/`<ol>`/`<li>`箇条書き、`<pre>`/`<code>`コードブロック、`<table>`テーブル(自動列幅配分・ゼブラ行・ヘッダー背景)、`<hr>`区切り線、日本語/CJK禁則処理(句読点の行頭禁止)対応自動行折り返しとページオーバーフロー時の自動次ページ分割。標準HTML void tagはbounded normalization後にparse。入力ファイルと同じディレクトリ以下にある相対PNG/JPEG `img src`のみ埋め込み、`src`がない場合は`srcset`の最初の候補を選ぶ(responsive選択は近似)。symlink解決後もbase directory内に限定する。画像は中央寄せフローとして描画し、CSS寸法・回り込み・inline配置は近似。外部、範囲外、SVG等の画像はwarning付きで省略。画像参照最大10,000件、各画像8 MiB/4,000万画素、読込合計32 MiB、描画合計1億画素/48 MiB data URIまで。inputは`max_input_bytes`、normalizationは512 MiB、parserは`max_xml_events`で制限 |
| EPUB (`.epub`) | ZIPパッケージから`META-INF/container.xml`とOPFのmanifest/spineを読み、Spine順にXHTMLを連続レンダリング。各章の相対パスから参照するパッケージ内PNG/JPEGの`img src`を埋め込み、`src`がない場合は`srcset`の最初の候補を選ぶ。外部参照、CSS背景、SVG、data URI、ほかの形式は省略し、スタイルと固定レイアウトを再現しない。画像参照は最大10,000件、各画像8 MiB/4,000万画素、画像データ読込合計32 MiB、描画画像合計1億画素/48 MiBのdata URIまで。container、OPF、各章の展開サイズとXML event数を制限し、章の累積読込量は`min(max_zip_entry_bytes, max_input_bytes)`まで。欠落・外部参照・解析できない章は警告に記録。仕様: [W3C EPUB 3.3](https://www.w3.org/TR/epub-33/) |
| FictionBook 2 (`.fb2`, `.fb2.zip`) | FictionBook XMLの`description`からbook title/authorを抽出し、最初のmain `body`の`section`、`title`、`p`、subtitle、poem verse、tableを順序どおりSVGへ組版。`.fb2.zip`は安全なエントリ名を検証した単一FB2だけを選ぶ。`binary` base64 resourceは署名・content-type・PNG/JPEG dimensionsを検証し、`xlink:href="#id"`の画像だけを埋め込む。notes body、外部URL、未対応binary、macro/stylesheet実行は省略またはwarning。上限: 128 MiB input、`max_xml_events`、XML深さ256、64 MiB rendered text、10,000画像参照、8 MiB/image、32 MiB decoded bytes、40M pixels/image、100M total pixels、48 MiB data URI。仕様: [FictionBook 2 XML schema](https://github.com/gribuser/fb2/blob/master/FictionBook.xsd), [FictionBook body/section](https://repository.data2type.de/FictionBook/v_2.1/html/el.FictionBook_FictionBook_body_section.html) |
| PalmDOC/MOBI (`.mobi`, `.prc`, `.azw`) | Palm Databaseのrecord offset/件数、PalmDOC header、UTF-8/Windows-1252 text encodingを検証し、compression 1(無圧縮)と2(PalmDOC LZ77)を bounded decode。MOBI record 0のtitleを表示し、decoded HTML-like bodyをsafe HTML subsetで組版。非DRMのAZW互換recordも同じ範囲で扱う。Huff/CDIC compression、DRM/encryption、image record、CSS/外部URL/script/link、KF8固有構造、exact reader layoutは未対応またはwarning。上限: 256 MiB input、100,000 records、100,000 text records、128 MiB decoded text、1 MiB decoded/text record。仕様: [MOBI/PalmDOC format notes](https://wiki.mobileread.com/wiki/MOBI), [Library of Congress MOBI assessment](https://www.loc.gov/preservation/digital/formats/fdd/fdd000472.shtml) |
| MIME e-mail (`.eml`) | RFC 5322/MIME parserでSubject/From/To/Cc/Dateと最初のHTMLまたはplain-text bodyを表示。RFC 3676 `format=flowed` plain textはquote depthと`delsp`を考慮してsoft line breakを結合。HTMLはsafe subsetとして組版し、Content-ID参照のPNG/JPEG partを埋め込む(per-image 8 MiB / 40M pixels、total 32 MiB / 100M pixels / 48 MiB data URI)。さらに同じまたは外側の`multipart/related`内ではContent-Location URIとHTML sourceがexact matchするPNG/JPEG partを埋め込む。Content-Locationは文字列完全一致のみ(RFC base URI / `<base>`相対解決は未対応)。CSSとinline image layoutは近似し、外部image/resourceは取得しない。参照されない画像とほかの添付は出力せずwarning。入力上限`min(max_input_bytes, 64 MiB)`、1 MiB/line、100万行、100,000 header field、20,000 MIME part、32 MiB decoded body text。仕様: [RFC 5322 Internet Message Format](https://www.rfc-editor.org/info/rfc5322/)、[RFC 2045 MIME](https://www.rfc-editor.org/info/rfc2045/)、[RFC 2557 MHTML URI matching](https://www.rfc-editor.org/info/rfc2557/)、[RFC 3676 flowed text](https://www.rfc-editor.org/info/rfc3676/) |
| Apple Mail message (`.emlx`) | 先頭のASCII decimal byte countでRFC 5322/MIME message byte rangeだけを分離し、同じsafe mail rendererへ渡す。後置Apple plistは完全に無視し、メタデータwarningのみ記録。declared message lengthと`min(max_input_bytes, 64 MiB)`を検証。suffixをMIME本文へ混ぜず、plistを実行・解析しない。参考: [Library of Congress EMLX description](https://wwws.loc.gov/preservation/digital/formats/fdd/fdd000615.shtml)、[PRONOM EMLX identification](https://www.nationalarchives.gov.uk/pronom/fmt/2055) |
| Outlook message (`.msg`) | MS-OXMSGのCompound File Binaryをbounded readerで開き、Subject、SenderName/EmailAddress、DisplayTo/Cc/Bcc、およびHTMLまたはplain-text bodyを表示。`PidTagInternetCodepage`/`PidTagMessageCodepage`を使って対応するANSI text/HTMLをdecodeし、未知のcodepageはwarning付きでWindows-1252へfallback。HTMLはsafe subsetだけを組版し、script/style、remote/inline image、transport header、attachment payloadは省略し、外部resourceは取得しない。入力上限`min(max_input_bytes, 64 MiB)`、50,000 CFB entry、1,024 bytes/path、8 MiB cumulative path text、16 MiB/property streamおよび累積text property。仕様: [Microsoft Outlook Item (.msg) File Format](https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxmsg/)、[MS-OXMSG top-level structure](https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxmsg/1a69e000-f391-4c03-9d43-32d5f554bca7)、[PidTagInternetCodepage](https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxprops/d085093c-cc1f-4b74-9cbd-1cab36fba951) |
| MBOX mailbox (`.mbox`) | RFC 4155 default From_ separatorのsender/day/month/day/time/year形を検証してメッセージを分割し、1通を1つ以上の連続SVG pageへ出力。本文や添付は`.eml`と同じ処理。未対応separator/形式は拒否し、separatorに見える本文行の曖昧性はMBOXの形式限界。入力上限`min(max_input_bytes, 64 MiB)`、1 MiB/line、100万行、10,000 messages。仕様: [RFC 4155 application/mbox](https://www.rfc-editor.org/info/rfc4155/) |
| iCalendar (`.ics`) | RFC 5545 VCALENDARのVEVENT/VTODO/VJOURNAL/VFREEBUSYを各コンポーネント1ページ(長文は複数ページ)へ組版。CRLF+WSPの折り畳みをUTF-8 byte列のままunfoldしてからdecodeし、text escape、SUMMARY/DESCRIPTION、開始/終了/期限、場所、参加者、状態、URLを表示。RRULE/RDATE/EXDATEは表示しても繰り返しを展開せず、TZID/VTIMEZONEは時刻を変換しない。VALARM/ATTACHや未知propertyは警告付きで省略し、URLは取得しない。上限: 64 MiB input、1 MiB物理/論理行、100万物理line、50万論理line、32 MiB property value、250,000 properties/file、100,000 components、20,000 properties/component、64段component nesting。仕様: [RFC 5545 iCalendar](https://www.rfc-editor.org/info/rfc5545/) |
| vCalendar 1.0 (`.vcs`) | VERSION:1.0のVCALENDARからVEVENT/VTODOを各1ページへ組版し、共通bounded calendar rendererを使う。時間値は元のまま表示し、alarm、繰り返し評価、timezone変換、外部URL取得はしない。未知のreminder/propertyはwarning付きで省略。上限: `min(max_input_bytes,64 MiB)`、1 MiB physical/unfolded line、100万physical/50万logical line、250,000 properties、`min(max_pages,100,000)` components、20,000 properties/component、32 MiB text。仕様: [Versit vCalendar 1.0 profile (OMA)](https://www.openmobilealliance.org/release/vObject/V1_0-20071002-A/OMA-TS-vObjectOMAProfile-V1_0-20071002-A.pdf)、[vCalendar 1.0 specification copy](https://cs.brown.edu/courses/cs190/old.spr1998/projects/acms/vCalendar_specs.pdf) |
| vCard contact (`.vcf`, `.vcard`) | vCard 2.1/3.0/4.0の複数contactを各1ページへ組版。UTF-8/指定CHARSET、vCard 2.1のRFC 822-style WSP folding、vCard 3.0/4.0のCRLF+WSP folding、2.1のquoted-printable soft line/escape、FN/N、会社、役職、email、電話、住所、生年月日、note、URL等を表示。未指定/未対応charsetはwarning付きWindows-1252 fallback。写真・logo・sound・key・agent内容と未描画propertyはwarning付きで省略し、URIは取得しない。上限: `min(max_input_bytes, 64 MiB)`、1 MiB physical/unfolded line、100万physical/50万logical line、250,000 properties/file、`min(max_pages, 100,000)` cards、20,000/card、100 parameters/property、32 MiB text。仕様: [RFC 6350 vCard 4.0](https://www.rfc-editor.org/info/rfc6350/)、[RFC 2426 vCard 3.0](https://www.rfc-editor.org/info/rfc2426/)、[OMA vObject profile for vCard 2.1](https://www.openmobilealliance.org/release/vObject/V1_0-20071002-A/OMA-TS-vObjectOMAProfile-V1_0-20071002-A.pdf) |
| MHTML web archive (`.mht`, `.mhtml`) | RFC 2557 multipart/related MIMEを解析し、RFC 2387の`start` parameterが指すroot(省略時は最初のbody part)を安全に選び、HTML rootをsafe HTML subsetで1つ以上のSVG pageへ組版。HTML tag/CSSの対応範囲はHTMLと共通。`img src`がない場合は`srcset`の最初の候補を使う。同じまたは外側のmultipart/related内でURI解決後のHTML sourceと一致するContent-IDまたはContent-LocationのPNG/JPEG partだけを検証後に埋め込む。CID URLはContent-IDにのみ一致させ、Content-Locationの`cid:`値とは照合しない。相対URIはHTML rootの`<base href>`、MIME Content-Base/Content-Locationのancestor chain、最後に`thismessage:/`をbaseとして解決(URIは8 KiBまで)。8 MiB/image、32 MiB/decoded image bytes、48 MiB/data URI bytes、40M pixels/image、100M total pixelsで制限。未知format、script/style/unmatched resources/other attachmentsは警告付きで省略し、外部取得はしない。入力上限`min(max_input_bytes, 64 MiB)`、32 MiB/root HTML、20,000 MIME part、`max_xml_events`。仕様: [RFC 2387 multipart/related root](https://www.rfc-editor.org/info/rfc2387/)、[RFC 2557 MHTML URI resolution and matching](https://www.rfc-editor.org/info/rfc2557/) |
| OpenDocument Text (`.odt`, `.ott`, `.fodt`) / OpenOffice Writer XML (`.sxw`, `.stw`, `.sxg`) | ZIP型ODT/OTT/SXW/STW/SXGはmimetype、`content.xml`、`styles.xml`を検証し、FODTは単体XMLとして処理。見出し、段落、箇条書き、表に加え、boundedなnamed/automatic paragraph/text styleと`parent-style-name` chainからfont family/absolute size/bold/italic/colorを解決し、`text:span` inline formattingを保持。旧OpenOffice `application/vnd.sun.xml.writer*` mimetypeも受理する。style count 100,000、parent chain 32、rendered text 32 MiB、rich text runs 200,000を上限化。font-face aliasを利用可能なfamilyへ解決。paragraph spacing/alignment/relative sizeやtable-cell stylesはwarning/近似。package内およびXML inline `office:binary-data` の検証済みPNG/JPEGをフロー埋め込みするが、anchor/wrapping/frame寸法や表内画像は近似またはalt textに縮退し、外部リンク・未対応形式はwarning付きで省略。画像参照最大10,000件、各画像8 MiB/4,000万画素、合計32 MiB/1億画素/48 MiB data URIまで。仕様: [ODF 1.3 Packages](https://docs.oasis-open.org/office/OpenDocument/v1.3/OpenDocument-v1.3-part2-packages.html), [OpenOffice XML](https://www.openoffice.org/xml/general.html) |
| OpenDocument Spreadsheet (`.ods`, `.ots`, `.fods`) / OpenOffice Calc XML (`.sxc`, `.stc`) | ZIP型ODS/OTS/SXC/STCはmimetypeと`content.xml`を検証し、FODSは単体XMLとして処理。旧OpenOffice `application/vnd.sun.xml.calc*` mimetypeも受理する。シート順、ヘッダー行、繰り返し行/セル、文字列・数値・日付等のキャッシュ済み値をSVG表に組版。パッケージ内およびXML inline `office:binary-data` の検証済みPNG/JPEG画像は表の後にフロー配置するため、セルアンカー、フレーム寸法、重なり順は近似。外部リンク、未対応画像、チャート・ベクター図形は警告して省略。画像参照は最大10,000件、各画像8 MiB/4,000万画素、合計32 MiB/1億画素/48 MiB data URIまで。数式は再計算せずキャッシュ値のみ表示し、スタイルも未対応。仕様: [ODF 1.3 Schema](https://docs.oasis-open.org/office/OpenDocument/v1.3/csd03/part3-schema/OpenDocument-v1.3-csd03-part3-schema.html), [OpenOffice XML](https://www.openoffice.org/xml/general.html) |
| OpenDocument Presentation (`.odp`, `.otp`, `.fodp`) / OpenOffice Impress XML (`.sxi`, `.sti`) | ODP/OTP/SXI/STIは`mimetype`とXML partを上限付きで読み、FODPは単体XMLとして処理。旧OpenOffice `application/vnd.sun.xml.impress*` mimetypeも受理する。スライド順とページ寸法、長方形・楕円・円・線、基本graphic/text style、編集可能テキストをSVGへ出力。package内およびflat XML内の`office:binary-data`にある検証済みPNG/JPEGを`draw:frame`の寸法へ埋め込み、1画像8 MiB/40M pixels、合計32 MiB decoded bytes/100M pixels/48 MiB data URI/10,000 image refsを上限化。外部image、SVG/その他形式、chart、table、OLEはwarning付きで省略。group transform、文字折り返し、master background、animation、厳密なfont metricsは近似または未対応。上限: `max_input_bytes` / `max_zip_entry_bytes` / `max_xml_events`、XML深さ256、1万枚、20万shape、text 32 MiB・20万行 |
| OpenDocument Graphics (`.odg`, `.otg`, `.fodg`) | ODG/OTGは`mimetype`付きZIP、FODGはflat XMLとして処理。`office:drawing`内のpage順、サイズ、基本graphic/text style、長方形・楕円・円・線、editable textをSVGへ描画。package内およびflat XML内`office:binary-data`の検証済みPNG/JPEG imageもODPと共通の制限付きで描画し、外部imageと複雑な効果は省略してwarning。 |
| Visio drawing/XML (`.vsdx`, `.vsdm`, `.vstx`, `.vstm`, `.vdx`) | VSDX/VSDM/VSTX/VSTMはOPC/ZIP内のdocument→pages→page relationshipをたどり、VDXは単一XML内のPage順で処理。ページ寸法(PageSheet)と直接定義されたShapeSheetをSVGへ変換。MoveTo/LineTo系のpath、矩形・楕円・decisionのfallback形状、BeginX/BeginY/EndX/EndYで定義される直線connector、直接styleとtextに対応。座標はVisio local/page座標からpointへ変換し、Angle/FlipX/FlipYを反映。master/style inheritance、group/subshape、曲線やconnector routing、arrowhead、foreign object/embedded image、背景ページ、formula再計算、data connectionは処理しないか警告付きで省略/近似。外部relationshipは取得せず、macroを実行しない。上限: package 100,000 entries、part 32 MiB、展開XML合計512 MiB、10,000ページ、100,000 top-level shapes/page、16 MiB text/page、100,000 rendered text lines/page、XML深さ256。仕様: [Microsoft Visio format overview](https://learn.microsoft.com/en-us/office/client-developer/visio/introduction-to-the-visio-file-format-vsdx)、[MS-VSDX file structure](https://learn.microsoft.com/en-us/openspecs/sharepoint_protocols/ms-vsdx/30536deb-d7b2-4b72-b59c-e80b34b87c6e)、[Page XML](https://learn.microsoft.com/en-us/openspecs/sharepoint_protocols/ms-vsdx/bf3c0a23-fab6-49a1-9f9d-3aac4c8757eb)、[coordinate system](https://learn.microsoft.com/en-us/openspecs/sharepoint_protocols/ms-vsdx/99f006f5-c67e-4e29-8a19-134ae611fd8f)、[1D shapes](https://learn.microsoft.com/en-us/openspecs/sharepoint_protocols/ms-vsdx/b46925c2-f141-485f-b022-7e47584972e8) |
| Legacy Visio binary (`.vsd`, `.vss`, `.vst`, `.vsw`) | 旧VisioのCompound File Binaryを厳格なサイズ・entry・path上限内で検証し、VisioDocument streamとstorage/stream一覧をbounded metadataとして描画。ShapeSheet、図形geometry、text/style、macro、OLE/ActiveX、external linkは解釈・取得せず不活性。上限: 256 MiB input、50,000 entries、20,000 rows、path 1,024 bytes/8 MiB total。仕様: [Microsoft Visio format overview](https://learn.microsoft.com/en-us/office/client-developer/visio/introduction-to-the-visio-file-format-vsdx) |
| Apple iWork packages (`.pages`, `.numbers`, `.key`) | ZIP-backed Pages/Numbers/Keynote packages are validated through the shared bounded ZIP reader. Known Index/Metadata/QuickLook markers and package sizes render as inert metadata; IWA protobuf records, text, formulas, slide geometry, previews, media, scripts, external links, and application operations are never decoded or opened. `.key` is content-disambiguated from LS-DYNA Keyword by ZIP signature. Limits: 512 MiB input, 100,000 entries, and shared ZIP entry limits. Source: [Apple package support](https://support.apple.com/en-ca/119883) |
| Autodesk DWG (`.dwg`) | The fixed six-byte ASCII version code (`AC1002`…`AC1032`) and bounded file size render as inert header metadata. Compressed sections, entities, blocks, layers, proxy graphics, thumbnails, VBA/ActiveX content, external references and plotting/solver operations are not decoded or executed. Limits: 2 GiB input; only the six-byte header is read. Sources: [Autodesk drawing version codes](https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/drawing-version-codes-for-autocad.html), [Open Design DWG specification](https://www.opendesign.com/files/guestdownloads/OpenDesign_Specification_for_.dwg_files.pdf) |
| Rhino OpenNURBS 3DM (`.3dm`) | The stable `3D Geometry File Format` start marker and bounded file size/header bytes render as inert metadata. NURBS/mesh chunks, layers, materials, textures, annotations, plug-in data, scripts and external resources are not decoded or opened. Limits: 2 GiB input and 64 KiB header read. Sources: [Rhino File3dm](https://developer.rhino3d.com/api/RhinoCommon/html/Methods_T_Rhino_FileIO_File3dm.htm), [OpenNURBS initiative](https://www.rhino3d.com/features/developer/opennurbs/) |
| Microsoft Access ACE/Jet (`.accdb`, `.accde`, `.accdr`, `.mdb`, `.mde`, `.mda`, `.mdt`, `.accdt`, `.ade`) | The first-page `Standard ACE DB`, `Standard Jet DB`, or `MSISAM Database` marker is validated with bounded page/file metadata. Tables, rows, indexes, queries, forms, reports, relationships, attachments, linked databases, VBA/data macros, OLE/ActiveX, passwords, encryption and external paths are never opened or executed. Limits: 2 GiB input and 4 KiB header read. Sources: [Access file format overview](https://support.microsoft.com/en-us/access/which-access-file-format-should-i-use), [Access database formats](https://support.microsoft.com/en-us/access/deploy-an-access-application) |
| Dassault 3DXML (`.3dxml`) | ZIP-backed 3DXML packages validate a local `Manifest.xml` → `Root` relationship and bounded ProductStructure metadata. `Reference3D`, `Instance3D`, `ReferenceRep`, `InstanceRep`, representation and geometry-marker counts render as inert rows; binary 3DRep tessellation, exact/NURBS geometry, materials, textures, external files and viewer automation are never decoded or opened. Limits: 512 MiB input, shared ZIP entry limits, 32 MiB XML parts, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Sources: [Dassault 3D XML announcement](https://www.3ds.com/newsroom/press-releases/dassault-systemes-delivers-3d-xml-specifications-and-player), [3DXML structure guide](https://xeokit.github.io/sdk/docs/api/documents/formats.threedxml.3DXML_Format_Guide.html) |
| Markdown / plain text (`.md`, `.markdown`, `.mdown`, `.mkd`, `.mkdn`, `.mdwn`, `.mdx`, `.txt`, `.text`) | ATX/setext見出し、箇条書き、番号付きリスト、フェンス付きコード、引用、水平線、Markdown表、標準段落のマルチページ自動組版(単独テーブル時は表専用レイアウトへ自動切替)。単独行と段落内の``のPNG/JPEG imageを入力ディレクトリ配下から読み、HTMLと同じサイズ/URI/pixel上限付きで中央フローブロックとして埋め込むためinline位置・回り込みは近似。見出し・リスト・引用・表・コード内は代替テキストに縮約。リモート/範囲外pathは取得せず警告する。上限: 1,000,000行、1 MiB/行、10,000 image refs、8 MiB/image、32 MiB image bytes、40M pixels/image、100M total pixels、48 MiB data URI。`.txt`と`.text`はMarkdown記法を含まない通常の段落文としても変換 |
| JATS Journal Article XML (`.jats`, `.nxml`) | NISO JATS article XMLのarticle-meta title/author、abstract、section/title、paragraph、caption、simple tableを順序どおり組版。`graphic`/`inline-graphic`の`xlink:href`は入力ディレクトリ配下のPNG/JPEGだけを検証して中央寄せflow画像として埋め込む。外部URL、MathML評価、script、publisher extension、複雑な表組み・厳密なjournal layoutは省略またはwarning。上限: 128 MiB input、`max_xml_events`、XML深さ256、64 MiB rendered text、200,000 table cells、10,000 image refsとshared image byte/pixel/URI budgets。仕様: [NISO JATS](https://www.niso.org/standards-committees/jats)、[JATS graphic](https://jats.nlm.nih.gov/publishing/tag-library/1.4/element/graphic.html) |
| TEI P5 scholarly text (`.tei`, `.tei.xml`; content sniffing) | TEI `teiHeader` title/author/dateと`text/body`のdiv/div1–7、head、paragraph、note、list、figure、table-cell countsをboundedな行として組版。target、URL、facsimile、identifier、外部image、script、DTD/entityは省略し、外部resourceやdocument codeは実行しません。上限: 64 MiB input、1,000,000 XML events、500,000 nodes、深さ128、200,000 rows。仕様: [TEI P5 Guidelines](https://www.tei-c.org/release/doc/tei-p5-doc/en/html/) |
| ALTO OCR/layout XML (`.alto`, `.alto.xml`; content sniffing) | Library of Congress ALTO layout records render bounded Page, TextLine, String content and word-confidence rows. Source-image filenames, URLs, styles, alternatives and processing metadata are omitted; images, scripts and external resources are never opened. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 96 and 200,000 rows. Source: [ALTO standard](https://www.loc.gov/standards/alto/) |
| METS archive XML (`.mets`, `.mets.xml`; content sniffing) | METS `fileSec`/`fileGrp`/`file` MIME and size metadata plus `structMap` logical/physical `div` hierarchies and `fptr`/`mptr` counts render as inert rows. FLocat/MDRef URLs, embedded payloads, ALTO/image files, scripts and external resources are omitted and never followed. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 96 and 200,000 rows. Source: [Library of Congress METS](https://www.loc.gov/standards/mets/) |
| MARCXML (`.marcxml`, `.marc.xml`; content sniffing) | MARC 21 XML collection/record elements render leader, controlfield, datafield, subfield code and safe value rows with record/field counts. 856 and other URL values are omitted, identifiers and extension payloads remain inert, and no catalog/schema/network operation runs. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 96 and 200,000 rows. Source: [Library of Congress MARCXML](https://www.loc.gov/marc/marcxml.html) |
| MODS 3.x XML (`.mods`, `.mods.xml`; content sniffing) | MODS collections/records render title/subtitle, personal/corporate names, publisher/date, genre, subject, identifier and location structure. Authority/value/location URLs, notes, arbitrary extension values and external resources are omitted or redacted; no catalog/schema/network operation runs. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 96 and 200,000 rows. Source: [Library of Congress MODS](https://www.loc.gov/standards/mods/) |
| MARC21 ISO 2709 binary (`.marc`, `.iso2709`; content sniffing) | Validates the 24-byte leader, directory, field area, record terminators and offsets, then renders control fields, data-field indicators and subfield codes/values. 856/URL values and unrecognized payloads are omitted; no catalog/schema/network operation runs. `.mrc` remains the MRC/CCP4 microscopy-volume route. Limits: 64 MiB input, 100,000 records, 500,000 fields, 1,000,000 subfields and 200,000 rows. Source: [MARC 21 record structure](https://www.loc.gov/marc/specifications/specrecstruc.html) |
| PREMIS 2.x/3.0 preservation XML (`.premis`, `.premis.xml`; content sniffing) | PREMIS object, event, agent and rightsStatement types, safe dates/names and relationship counts render as inert rows. Checksums, URIs, rights text, detailed event payloads, external resources and preservation actions are omitted or redacted; no application or network operation runs. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 96 and 200,000 rows. Source: [Library of Congress PREMIS](https://www.loc.gov/standards/premis/) |
| IIIF Presentation 2.1/3.0 JSON (`.iiif.json`, `.iiif-manifest.json`, `.manifest.json`; content sniffing) | Manifest/Collection labels, Canvas order/labels/dimensions, painted image counts, annotation counts, ranges and metadata-entry counts render as inert rows. Manifest IDs, image/service URLs, thumbnails, annotation bodies and external resources are omitted and never fetched. Limits: 64 MiB input, depth 100, 300,000 JSON values, 100,000 Canvases, 300,000 annotations and 200,000 rows. Source: [IIIF Presentation API 3.0](https://iiif.io/api/presentation/3.0/) |
| EAD2/EAD3 finding-aid XML (`.ead`, `.ead.xml`; content sniffing) | EAD repository/title metadata and nested archival components (`c`/`c01`–`c12`) render with levels, titles, dates and counts. Digital-object URLs, identifiers, scope text, external images, scripts and entities are omitted; no archival resource is opened. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [Library of Congress EAD](https://www.loc.gov/ead/) |
| EAC-CPF authority XML (`.eac-cpf`, `.eac-cpf.xml`, `.eac`; content sniffing) | EAC-CPF entity type, identity name entries, existence-date/description counts and CPF/resource/function relation counts render as inert rows. Authority IDs, URIs, biographies, relation targets and external resources are omitted or redacted; no authority lookup or network operation runs. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 96 and 200,000 rows. Source: [EAC-CPF Tag Library](https://eac.staatsbibliothek-berlin.de/schema/v3/EAC-CPF3-TL-eng.html) |
| Dublin Core XML (`.dc.xml`, `.dublin.xml`, `.dublin-core.xml`; content sniffing) | DCMI title, creator, subject, publisher, date, type, format and language elements render with field counts. Identifier/relation/rights/description payloads and URLs are omitted or redacted; no OAI-PMH, catalog, schema or network operation runs. Limits: 32 MiB input, 500,000 XML events, 300,000 nodes, depth 80 and 100,000 rows. Sources: [DCMI XML guidelines](https://www.dublincore.org/specifications/dublin-core/dc-xml-guidelines/), [DCMES 1.1](https://www.dublincore.org/specifications/dublin-core/dces/2003-06-02/) |
| ISO 19115/19139 geographic metadata XML (`.iso19115`, `.iso19115.xml`, `.iso19139`, `.gmd.xml`; content sniffing) | Identification title/date/topic, hierarchy/language, CRS codes, geographic bounding boxes, quality/distribution sections and link/contact counts render as inert rows. Abstract/lineage text, identifiers, contact payloads and online-resource URLs are omitted or redacted; no network retrieval or CRS transformation runs. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 96 and 200,000 rows. Sources: [ISO 19115-1](https://www.iso.org/standard/53798.html), [ISO 19115-3 XML implementation](https://www.iso.org/standard/80874.html) |
| OASIS UBL 2.x business XML (`.ubl`, `.ubl.xml`; content sniffing) | Namespaced Invoice, Order, CreditNote, DebitNote, Catalogue, transport and related roots render document type/version, dates/currency and bounded line/party/payment/tax/total/reference counts. Party/addresses, identifiers, item descriptions, amounts, account data, attachments and URLs are omitted or redacted; no schema fetch, script, payment/procurement operation or network access runs. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 100,000 rows. Source: [OASIS UBL 2.4](https://docs.oasis-open.org/ubl/UBL-2.4.html) |
| XBRL 2.1 instance XML (`.xbrl`, `.xbrl.xml`, `.xbrli`; content sniffing) | XBRL `xbrl` instances render bounded fact names/values, context periods, units, decimals/precision, tuple and dimension counts, and schema/linkbase/footnote counts. Entity identifiers, taxonomy labels, URLs and linkbase payloads are omitted or redacted; no taxonomy/schema/linkbase fetch, formula evaluation, validation or network operation runs. Financial values may be confidential and this is not de-identification. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128, 100,000 contexts/units and 200,000 facts. Source: [XBRL 2.1](https://www.xbrl.org/Specification/XBRL-2.1/REC-2003-12-31/XBRL-2.1-REC-2003-12-31%2Bcorrected-errata-2013-02-20.html) |
| LandXML 1.2 civil/survey XML (`.landxml`, `.landxml.xml`; content sniffing) | Version/date/units, named TIN surfaces with point/face counts, alignment segments, survey points, parcels and pipe networks render as bounded inert rows. Coordinate payloads, boundary/design geometry, external schema URLs and survey metadata are omitted; no terrain calculation, stationing, external reference or network operation runs. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Sources: [Autodesk LandXML support](https://help.autodesk.com/cloudhelp/2022/ENU/Civil3D-UserGuide/files/GUID-4D10ABA5-5EA0-41A8-BB61-C3F446CE7C6B.htm), [Trimble LandXML overview](https://help.fieldsystems.trimble.com/trimble-access/2022.00/en/Map-files-LandXML.htm) |
| MathML 3 presentation XML (`.mathml`, `.mathml.xml`, `.mml`; content sniffing) | MathML tokens and common fraction/script/root/fence/table structures render as bounded formula text and element-count rows. `annotation`/`annotation-xml`, `mglyph` images, URLs, semantic metadata and scripts are omitted; no symbolic algebra or active content runs. Limits: 32 MiB input, 500,000 XML events, 300,000 nodes, depth 96, 24 MiB text and 20,000 rows. Source: [W3C MathML 3](https://www.w3.org/TR/MathML/) |
| Adobe XMP metadata XML (`.xmp`, `.xmp.xml`; content sniffing) | XMP RDF packets render bounded title/creator/subject/date/producer/tool/format properties and packet/omitted-property counts. Identifiers, rights/description payloads, thumbnails, URLs, private schemas and embedded binary data are omitted or redacted; no schema fetch, metadata reconciliation or external-resource access runs. Limits: 32 MiB input, 500,000 XML events, 300,000 nodes, depth 96 and 100,000 rows. Source: [Adobe XMP Specifications](https://developer.adobe.com/xmp/docs/xmp-specifications/) |
| Adobe XDP/XFA XML Data Package (`.xdp`, `.xdp.xml`; content sniffing) | XDP packet structure, template/dataset/config/PDF packet counts, XFA field names, and script/event/submit/reference counts render as bounded rows. Field values, embedded PDF/XML/binary packets, URLs, connections and private payloads are omitted; calculate/validate/event logic, XFA layout/recalculation, external resources and PDF rendering never run. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 100,000 rows. Sources: [Adobe PDF/XFA reference](https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf), [Adobe XFA/XDP overview](https://opensource.adobe.com/dc-acrobat-sdk-docs/library/overview/Overview_Forms.html) |
| Microsoft Excel 2003 XML SpreadsheetML (`.spreadsheetml`, `.xmlss`, `.excel.xml`; content sniffing) | Workbook/Worksheet/Table/Row/Cell/Data values render as bounded sheet/cell/type/value rows with formula-presence markers. Styles, charts, drawings, macros, named ranges, external links and formula recalculation are omitted; formulas are never evaluated. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 96 and 200,000 rows. Source: [Microsoft SpreadsheetML structure](https://learn.microsoft.com/en-us/office/open-xml/spreadsheet/structure-of-a-spreadsheetml-document) |
| Chemical Markup Language XML (`.cml`, `.cml.xml`; content sniffing) | Molecule/reaction/spectrum elements render molecule names, atom/bond counts, element distributions and structural counts. Coordinates, charges, property values, dictionaries, conventions, URLs and external resources are omitted; no reaction evaluation, geometry, valence repair or chemical calculation runs. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 100,000 rows. Source: [CML specifications](https://www.xml-cml.org/spec/) |
| RDF/XML graph XML (`.rdf`, `.rdf.xml`; content sniffing) | RDF/XML descriptions render bounded predicate/literal rows and subject, blank-node and IRI counts. Subject IRIs, resource URLs, nested XML literals, vocabularies and linked resources are omitted or redacted; no URI dereference, schema fetch, inference or SPARQL runs. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 96 and 200,000 rows. Source: [W3C RDF 1.1 XML Syntax](https://www.w3.org/TR/rdf-syntax-grammar/) |
| S1000D Data Module XML (`.s1000d`, `.dmodule`, `.dmodule.xml`; content sniffing) | S1000D DMC code attributes, title, issue/security metadata and bounded description/procedure/step/note/list/table text render as inert rows. DM/ICN references, URLs, graphics, XInclude, scripts and external resources are omitted and never resolved. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 128 and 200,000 rows. Source: [S1000D](https://s1000d.org/) |
| DocBook 4/5 (`.dbk`, `.docbook`) | OASIS DocBook article/book XMLのtitle、section/chapter、paragraph、itemized/ordered list、programlisting/screen、simple CALS-like tableを順序どおり組版。`imagedata`/`graphic`/`inlinegraphic`の`fileref`または`href`は入力ディレクトリ配下の検証済みPNG/JPEGだけを中央寄せflow画像として埋め込む。DTD、XInclude、外部link、MathML、script、publisher extension、厳密な印刷組版は省略またはwarning。上限: 128 MiB input、`max_xml_events`、XML深さ256、64 MiB rendered text、200,000 table cells、10,000 image refsとshared image byte/pixel/URI budgets。仕様: [DocBook 5.2](https://docs.oasis-open.org/docbook/docbook/v5.2/docbook-v5.2.html)、[DocBook mediaobject](https://tdg.docbook.org/tdg/5.2/mediaobject.html) |
| DITA 1.3 topic/map (`.dita`, `.ditamap`) | OASIS DITA topicのtitle、shortdesc、section、paragraph、ul/ol list、codeblock、simpletable、local PNG/JPEG `image`を順序どおり組版。ditamapは入力ディレクトリ内の相対`topicref href`だけを解決して一つの文書へ連結します。key resolution、DTD、XInclude/include、外部link、foreign content、厳密なpublishing layoutは省略またはwarning。上限: 128 MiB main input、32 MiB/topic、`max_xml_events`、XML深さ256、64 MiB rendered text、200,000 table cells、10,000 image refs/topic refsとshared image byte/pixel/URI budgets。仕様: [OASIS DITA 1.3 base](https://docs.oasis-open.org/dita/dita/v1.3/os/part1-base/dita-v1.3-os-part1-base.html) |
| Hancom HWPX/HWPML (`.hwpx`) | ZIP package内の`Contents/section*.xml`を自然順に読み、段落、simple table、package-local PNG/JPEG BinDataをbounded SVGへ組版。外部resource、control、OLE object、script、未対応image、厳密なHancom layoutは省略またはwarning。上限: 128 MiB input、100,000 ZIP entries、64 MiB/part、256 MiB expanded parts、XML depth256、1,000,000 events、64 MiB text、200,000 table cells、shared image byte/pixel/URI budgets。 |
| XMind (`.xmind`) | ZIP packageの`content.xml`または`content.json`からroot/attached topic titleを階層見出しとして組版。relationships、notes、attachments、hyperlinks、canvas coordinates、external resourcesは省略し、codeやweb contentは実行しません。上限: 128 MiB input、100,000 entries、64 MiB content、256 MiB expanded、XML depth256、1,000,000 events、200,000 topics、64 MiB rendered text。 |
| NIfTI-1 scalar volume (`.nii`, `.nii.gz`) | NIfTI-1 headerのendianness、dimensions、主要な8/16/32/64-bit integer/float datatype、vox_offset、scl_slope/interを検証し、z/time sliceごとにbounded grayscale PNG pageを生成。affine orientation、labels、extensions、color lookup tableは省略。上限: 128 MiB compressed input、256 MiB decompressed、dimension4096、200,000,000 voxels、1,000 frames、`max_pages`、16 MiB/slice PNG、512 MiB total data URI。 |
| FITS primary image (`.fits`, `.fit`, `.fts`, gzip `.fits.gz`) | FITSの2880-byte headerとSIMPLE/END、BITPIX、NAXIS、BSCALE/BZEROを検証し、8/16/32/64-bit整数と32/64-bit浮動小数のprimary image planeをgrayscale PNG pageへ描画。extension HDU、table、WCS、provenance、instrument metadataは省略。上限: 128 MiB compressed input、256 MiB decompressed、dimension8192、300,000,000 pixels、1,000 planes、`max_pages`、16 MiB/plane PNG、512 MiB total data URI。 |
| MRC/CCP4 scalar volume (`.mrc`, `.map`, gzip `.mrc.gz`) | MRC2014 primary headerのnx/ny/nz、mode、nsymbt、MAP signatureを検証し、mode 0/1/2/6 density planesをgrayscale PNG pageへ描画。axis mapping、origin、labels、symmetry、extended metadataは省略。上限: 128 MiB compressed input、256 MiB decompressed、dimension8192、300,000,000 voxels、1,000 planes、`max_pages`、16 MiB/plane PNG、512 MiB total data URI。仕様: [CCPEM MRC format](https://www.ccpem.ac.uk/mrc-format/mrc2014/) |
| SQLite database (`.sqlite`, `.sqlite3`, `.db`, SQLite header sniffing) | Opens SQLite read-only, enumerates ordinary user tables, quotes table identifiers, and renders bounded column headers and sampled rows. Views, triggers, virtual tables, arbitrary SQL, extensions and blob payloads are not executed or expanded. Limits: 256 MiB file, 100 tables, 2,000 rows/table, 128 columns, 512-character cells, 64 MiB rendered text, one-second busy timeout and five-second query progress budget. |
| mmCIF/PDBx atom coordinates (`.cif`, `.mmcif`) | Parses bounded `_atom_site` loops with Cartn_x/y/z, type_symbol, label_alt_id, and pdbx_PDB_model_num; renders one molecule page per model with supplied element labels and XY-projected coordinates. Symmetry, bonds, chemistry, crystallographic metadata and non-atom loops are omitted or warned. Limits: 64 MiB input, 1,000,000 lines, 1 MiB/line, 5,000,000 tokens, 1,000 models, 100,000 atoms/model, 500,000 atoms total, coordinates ±1,000,000. |
| Tripos MOL2 (`.mol2`) | Renders bounded MOLECULE/ATOM/BOND sections with atom coordinates, element labels and common single/double/triple/aromatic bond types. Charges, substructures, force-field metadata, unsupported annotations and exact chemistry are omitted or warned. Limits: 64 MiB input, 1,000,000 lines, 1 MiB/line, 10,000 molecules, 100,000 atoms and 200,000 bonds per molecule, 500,000 total atoms. |
| RDF Turtle/N-Triples/N-Quads (`.ttl`, `.nt`, `.nq`) | Displays bounded subject/predicate/object statement rows and prefix declarations as inert text. Prefix expansion, inference, imports, remote resolution, blank-node expansion and SPARQL execution are not performed. Limits: 64 MiB input, 1,000,000 lines, 1 MiB/line, 200,000 statements, 512-character cells and 64 MiB rendered text. |
| EPS/PostScript subset (`.eps`, `.ps`) | Requires a valid BoundingBox and renders bounded `moveto`/`lineto`/`curveto` paths, fill/stroke, RGB/gray colors, line widths, and showpage. PostScript execution, file/network operators, text, procedures, fonts, images and external resources are blocked or omitted. Limits: 64 MiB input, 1,000,000 lines, 5,000,000 tokens, 200,000 paths, coordinates ±1,000,000 and page dimensions 20,000 points. |
| Jupyter Notebook (`.ipynb`) | nbformat 4のみ。Markdown・code・raw cellを順序どおり組版し、stdout/stderr、error traceback、`text/plain` / `text/markdown` / safe HTML subset / JSON output、PNG/JPEG MIME imageを表示。Markdown cellの`attachments`にある検証済みPNG/JPEGも`attachment:name`参照から中央寄せflow画像として埋め込む。Notebook codeは実行せず、SVG/interactive MIME outputと未対応attachment形式は省略。`source_hidden` / `outputs_hidden` metadataを尊重し、future minor/unknown cell/MIMEはwarning。Long text, Markdown line/block counts, cells, outputs, decoded image bytes/pixels are bounded; per file: 256 MiB JSON, 100,000 cells/outputs, 64 MiB rendered text, 500,000 Markdown lines/blocks, 32 MiB/image, 128 MiB total image data, 40M pixels/image, 100M total image pixels. Format: [official nbformat 4 JSON schema](https://github.com/jupyter/nbformat/blob/main/nbformat/v4/nbformat.v4.5.schema.json), [Jupyter notebook document structure](https://jupyter-notebook.readthedocs.io/en/4.x/notebook.html) |
| Quarto / R Markdown (`.qmd`, `.Rmd`, `.rmarkdown`) | Simple YAML front matterとMarkdown bodyを組版。単純なtitle/author/dateを抽出し、fenced R/Python等のcode chunkはsourceとして描画するが実行しない。inline code、YAML設定、Quarto filter/shortcode、cross-reference、citation、local/remote include、chunk outputは評価・取得しない。上限: 128 MiB input、500,000行、1 MiB/行、1 MiB front matter。仕様: [Quarto front matter](https://quarto.org/docs/authoring/front-matter.html)、[Quarto code execution options](https://quarto.org/docs/computations/execution-options.html) |
| AsciiDoc (`.adoc`, `.asciidoc`) | セクションタイトル(`=`〜`====`)、ソースコードブロック(`----`)、箇条書き(`*`)、番号付きリスト(`.`)、水平線(`'''`)、表、段落、ブロック画像マクロ(`image::target[attrs]`)をマルチページ組版。`imagesdir` を考慮した入力ディレクトリ内の相対 PNG/JPEG のみを検証して中央寄せフローブロックに埋め込む。外部/脱出/未対応画像は取得せず警告付きで省略し、サイズ・配置・キャプション・リンク・inline画像は近似。上限は共通の画像ローダー(8 MiB/画像、32 MiB/入力画像、48 MiB/data URI、4,000万画素/画像、1億画素/入力)と画像参照10,000件。仕様: [Asciidoctor Images Reference](https://docs.asciidoctor.org/asciidoc/latest/macros/image-ref/), [AsciiDoc画像構文](https://docs.asciidoctor.org/asciidoc/latest/macros/images/) |
| reStructuredText (`.rst`, `.rest`) | 装飾線のsection見出し、paragraph、箇条書き/番号付きlist、simple/grid table、literal/code block、一般的なadmonition、同じ入力folder配下のbounded PNG/JPEG `image`/`figure`をSVGへflow組版。figure captionは画像の後へ表示。Unknown directiveはliteral code blockとして表示。`include`/`raw`は実行せずwarning。外部画像・CSV/table directives・Sphinx build directives、reference resolution、column/row spansは未対応またはwarning。上限: 64 MiB input、200,000行、1 MiB/行、1万画像参照、shared local image byte/pixel/URI limits。仕様・安全性: [Docutils reStructuredText Markup Specification](https://www.docutils.org/docs/ref/rst/restructuredtext.html)、[Docutils Directives](https://www.docutils.org/docs/ref/rst/directives.html)、[Docutils Security](https://www.docutils.org/docs/howto/security.html) |
| Org-mode (`.org`) | `#+TITLE`、star headline、TODO state、plain lists、pipe table、source/example/quote/verse block、common Org inline markup and linksをrender。Standalone `[[file:...]]` PNG/JPEGは入力ディレクトリ内のbounded local resourceとしてembedし、`#+ATTR_ORG: :width N`を1–4096px内で適用。Babel sourceはcodeとして表示するだけで実行しない。`#+INCLUDE`、`#+CALL`、`#+TBLFM`、raw/export blockは処理せずwarningまたは省略。画像・入力上限: 64 MiB、200,000行、1 MiB/行、10,000 image refs、table 64 columns/10,000 rows/500,000 cells, shared local image budgets。仕様: [GNU Org Manual: Headlines](https://orgmode.org/manual/Headlines.html), [Tables](https://orgmode.org/manual/Tables.html), [Structure of Code Blocks](https://orgmode.org/manual/Structure-of-Code-Blocks.html), [Evaluating Code Blocks](https://orgmode.org/manual/Evaluating-Code-Blocks.html), [Include Files](https://orgmode.org/manual/Include-Files.html) |
| GNU gettext catalog (`.po`, `.pot`) | UTF-8 PO/POT entriesのcontext、`msgid`/`msgid_plural`、`msgstr[n]`、translator/extracted notes、`fuzzy`状態をbounded per-message blockとして組版。C-style escapesとadjacent multiline stringsをdecode。headerからproject/language metadataを表示し、empty translationsをuntranslatedとしてラベル付け。format string directivesを実行せず、obsolete entriesは省略。上限: 64 MiB input、1,000,000行、1 MiB/行、100,000 entries、32 plural forms/entry、32 MiB decoded text. 仕様: [GNU gettext PO file format](https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html), [Plural forms](https://www.gnu.org/software/gettext/manual/html_node/Entries-with-Plural-Forms.html), [String escapes/multiline](https://www.gnu.org/software/gettext/manual/html_node/More-Details.html) |
| XLIFF 1.2 / 2.x localization files (`.xlf`, `.xliff`) | Source/target text, source/target languages, 1.2 translation units or 2.x segments, translation state, groups, contexts, and notes are laid out in file order. Inline `g`/`pc` spans are bracketed; empty inline code placeholders are labeled. Alternate translations, XML extensions, binary/skeleton resources are omitted. DTDs/external entities are rejected; references are never loaded. Bounds: 64 MiB input, `max_xml_events`, depth 256, 1 MiB/tag, 100,000 units, 100,000 segments total, 2 MiB/text field, 32 MiB extracted text and 500,000 output blocks. Specs: [OASIS XLIFF 1.2](https://docs.oasis-open.org/xliff/v1.2/os/xliff-core.html), [OASIS XLIFF 2.0](https://docs.oasis-open.org/xliff/xliff-core/v2.0/xliff-core-v2.0.html) |
| BibTeX bibliography (`.bib`, `.bibtex`) | `@article`/`@book`等のtype/keyと全fieldをper-entry blockで組版。Nested braces、quoted values、parenthesis entry delimiters、`#` concatenation構文、`%` commentsをparseし、common TeX escapesを読みやすいtextにする。`@string` macro定義/参照、`@preamble`、crossref、BibTeX style sorting/formatting、LaTeX command executionは行わずwarning。上限: 64 MiB input、1,000,000 lines、1 MiB/line、100,000 records/entries、128 fields/entry、64 nesting、2 MiB/field、4 MiB/entry、32 MiB rendered text。仕様: [BibTeX format](https://www.bibtex.org/Format/), [CTAN BibTeX package](https://ctan.org/pkg/bibtex?lang=en) |
| SubRip / WebVTT subtitles (`.srt`, `.vtt`) | Cue start/end time and text are laid out in source order; multiline cue text is preserved in a paragraph. WebVTT headers/identifiers, NOTE comments, STYLE/REGION blocks, cue settings, voice labels, and common inline tags are handled conservatively. No script, style, media, or external URL is executed/fetched; styling and cue positioning are flattened with warnings. WebVTT requires UTF-8 (optional BOM); SRT accepts UTF-8, UTF-16 with BOM, and falls back to Windows-1252 with a warning. Bounds: 64 MiB input, 1,000,000 lines, 1 MiB/line, 100,000 cues, 2 MiB/cue and 32 MiB rendered text. Spec: [W3C WebVTT](https://www.w3.org/TR/webvtt1/), [Library of Congress SRT description](https://www.loc.gov/preservation/digital/formats/fdd/fdd000569.shtml) |
| TTML / DFXP text subtitles (`.ttml`, `.dfxp`) | Recognizes TTML1/2 namespace roots and renders text-profile `<p>` cues with `xml:id`, `begin`, `end`, and `dur`; clock times and `h`/`m`/`s`/`ms` offset times are supported, as are inherited begin offsets in parallel containers. Parent-container end/dur clipping is not applied and is warned; frame/tick time expressions are skipped with warnings. Styling, regions, animations, image-profile content, and exact layout are omitted; sequential time containers and non-media time bases are rejected. DTDs and external resources are never processed. UTF-8 only. Bounds: 64 MiB input, `max_xml_events`, depth 256, 1 MiB/tag, 100,000 cues, 2 MiB/cue and 32 MiB rendered text. Specs: [W3C TTML1 time expressions](https://www.w3.org/TR/ttml1/), [IMSC Text Profile 1.3](https://www.w3.org/TR/ttml-imsc/rec) |
## ダイアグラム (GraphML / GEXF / XGMML / Graph Modeling Language / BPMN / CMMN / Excalidraw / PlantUML / D2)
| 項目 | 状態 |
|---|---|
| GraphML 1.0 (`.graphml`; content sniffing) | GraphML rootの`graph`をbounded XML parserで読み、node/edge、`edgedefault`、label、yFiles `Shape` typeを共通layered diagram rendererへ渡します。node/edge順序、ID参照、重複ID、外部参照を検査し、unknown-node edgeはwarning付きで省略。nested/compound node、hyperedge、custom key、座標、画像と外部resourceは再構成しません。DTD/external entityは拒否。上限: 64 MiB input、1,000,000 XML events、depth 128、100,000 nodes、200,000 edges、64 MiB text、1 MiB/label。仕様: [GraphML Specification](https://graphml.graphdrawing.org/specification.html)、[GraphML graph element](https://graphml.graphdrawing.org/specification/dtd.html) |
| GEXF 1.3 (`.gexf`; content sniffing) | Gephi GEXFのstatic `graph`をbounded XML parserで読み、node/edge、`defaultedgetype`、属性label、名前空間付き`label`を共通layered diagram rendererへ渡します。dynamic mode/spells、attvalues/attributes、複数graph、compound node、layout、plugin、外部resourceは省略またはwarning。unknown-node edgeは省略し、DTD/external entityは拒否。上限: 64 MiB input、1,000,000 XML events、depth 128、100,000 nodes、200,000 edges、64 MiB text、1 MiB/label、4 KiB/id。仕様: [GEXF 1.3 Schema](https://gexf.net/schema.html) |
| XGMML (`.xgmml`; content sniffing) | Cytoscape/XGMML graph rootの`directed`、graph/node/edge IDs、labels、`att` attributesとgraphics要素の存在を検査し、node/edge topologyを共通layered diagram rendererへ渡します。att columns、coordinates、graphics styling、nested subgraphs、plugin semantics、external resourcesは再構成せずwarning。DTD/external entityは拒否。上限: 64 MiB input、1,000,000 XML events、depth 128、100,000 nodes、200,000 edges、64 MiB text、1 MiB/label、4 KiB/id。出典: [Cytoscape XGMML](https://wikiold.cytoscape.org/XGMML)、[XGMML draft specification](https://xml.coverpages.org/xgmml-draft-xgmml-20000315.html) |
| Graph Modeling Language (`.gml`; content sniffing) | Bracketed `graph [ ... ]` text documents are tokenized with bounded comments, quoted strings, node/edge records, labels, and the `directed` flag. The `.gml` extension is disambiguated from geographic GML XML; arbitrary attributes and graphics coordinates are omitted, and non-UTF-8 input is rejected. Limits: 64 MiB input, 1,000,000 tokens, 4 KiB/token, 100,000 nodes, 200,000 edges and 1 MiB labels. Source: [LEDA GML graph parser notes](https://graphics.stanford.edu/courses/cs368-00-spring/TA/manuals/LEDA/gml_graph.html) |
| CMMN 1.1 (`.cmmn`) | CMMN MODEL namespaceとCMMNDIのCMMNDiagram/CMMNShape/CMMNEdge geometryを持つcase planを描画。casePlanModel boundary、planItem(definitionRefでtask/humanTask/processTask/caseTask/decisionTask/milestoneを解決)、event listener、case file itemを配置し、DI waypointのconnectorを点線で表示します。sentry/criterion、case-file operation、lifecycle rule、expression、外部参照、case executionは扱いません。DTD/外部resourceは読まずUTF-8のみ。Bounds: 32 MiB input、500,000 XML event、200,000 XML node/rendered node、depth80、100 diagram/page、座標±10,000,000。出典: [OMG CMMN 1.1](https://www.omg.org/spec/CMMN/1.1/PDF)。 |
| BPMN 2.0 (`.bpmn`, `.bpmn2`) | BPMN MODEL namespaceとBPMN Diagram Interchange (DI) geometryを持つprocess図を描画。BPMNShapeのBoundsとBPMNEdgeのwaypointを使い、event/task/gateway/participant/laneとsequence flowを配置。DI geometryは必須。messageFlow/association、data object、event-definition glyph、annotation、process semantics、executionは対象外またはwarning。subprocessはDIに明示された図形だけを描き、展開状態は復元しません。DTD/外部resourceは読まず、UTF-8 only。上限: 32 MiB input、500,000 XML events、200,000 XML elements/rendered nodes、depth 80、100 diagrams/pages、座標±10,000,000。出典: [OMG BPMN 2.0.2 Specification](https://www.omg.org/spec/BPMN/2.0.2/PDF)。 |
| Excalidraw (`.excalidraw`, `.excalidraw.json`) | 手描き風ホワイトボードデータ。四角形、楕円、菱形(ダイヤモンド)、直線、矢印、フリーハンド線分(freedraw)、テキスト要素のレンダリング |
| PlantUML (`.puml`, `.plantuml`) | シーケンス図(参加者ボックス、ライフライン、矢印メッセージ、ノート)および一般的なグラフ/コンポーネント図の階層レイアウト |
| D2 (`.d2`) | 宣言型ダイアグラムDSL。シェイプ宣言、属性指定(ラベル、塗り色、形状)、方向付き/双方向接続エッジの自動グリッドレイアウト |
### ラスタ画像入力
| 入力 | 仕様 |
|---|---|
| PNG/JPEG/BMP/GIF/WebP (`.png`, `.jpg`, `.jpeg`, `.bmp`, `.gif`, `.webp`) | 1枚画像をgrayscale閾値+輪郭追跡でvector path化。透明sampleは白として扱い、上限20,000,000 pixels、1辺100,000 px、500,000 vector spans。animated GIF/WebPは先頭frameを使いwarningを記録。partial first GIF frameは透明canvasへ合成してwarningを記録。CMYK JPEGはICCを適用せずRGBへ近似し、16-bit lossless JPEGは8-bitへ縮小してwarning。decode前に画像寸法を検証。 |
| Netpbm PBM/PGM/PPM/PAM (`.pbm`, `.pgm`, `.ppm`, `.pnm`, `.pam`) | Supports ASCII and raw binary PBM/PGM/PPM plus PAM `P7` grayscale, grayscale-alpha, RGB and RGB-alpha tuples. 1/8/16-bit samples are range-checked and reduced to the bounded grayscale contour vectorizer; dimensions and payload lengths are checked before allocation. Only the first image is used; no external resources are loaded. Limits share the raster caps: 20,000,000 pixels, 100,000 pixels per side and 500,000 vector spans. Sources: [Netpbm PNM](https://netpbm.sourceforge.net/doc/pnm.html), [PAM](https://netpbm.sourceforge.net/doc/pam.html) |
| TIFF / BigTIFF (`.tif`, `.tiff`) | 別のbounded converterで画像directoryごとにカラーPNGをSVGへ埋め込みます。詳細はmulti-page TIFFの形式表を参照。 |
| Standalone JPEG 2000 / JP2 (`.jp2`, `.j2k`, `.j2c`, `.jpc`, `.jpx`) | Raw codestreams and boxed JP2 containers share the existing SIZ/JP2 header preflight before OpenJPEG decoding. Unsigned grayscale, gray+alpha, RGB and RGBA components with common 1–16-bit precision are converted to bounded PNG-backed SVG; dimensions, component dimensions, signedness, and sample ranges are checked before allocation. Multi-codestream containers, multiple alpha components, unsupported color spaces, and unsafe sizes are rejected or warned. Limits: 128 MiB input, 20 million pixels, 100,000 pixels per side, 128 MiB decoded samples and 192 MiB PNG data URI. |
## 科学データ / 表データ / Windows Metafile (NetCDF / CSV / TSV / EMF / WMF)
| 項目 | 状態 |
|---|---|
| NetCDF classic / CDF-2 (`.nc`, `.nc3`, `.cdf`; content sniffing) | NetCDF CDF-1 and 64-bit offset CDF-2 files are read as big-endian dimensions, global/variable attributes, fixed arrays, and unlimited record variables. Each variable is rendered as an inert indexed-value table; `_FillValue` is labelled without applying data transforms. CDF-5 and NetCDF-4/HDF5 are explicitly unsupported. Limits: 512 MiB input, 1,024 dimensions, 1,024 variables, 4,096 attributes, 200,000 values per variable, 1,000,000 values total, and 64 MiB rendered text. Source: [Unidata NetCDF classic format specification](https://docs.unidata.ucar.edu/netcdf-c/4.10.0/file_format_specifications.html) |
| HDF5 / CGNS-HDF5 (`.h5`, `.hdf5`, `.hdf`, `.h5part`, `.cgns`; content sniffing for HDF5) | HDF5 signatures at official user-block offsets and superblock versions 0–3, offset/length widths, consistency flags, and container size render as bounded inert metadata. HDF5 groups/datasets/attributes, compression filters, external links, CGNS SIDS nodes, grids, solution arrays and solver operations are not traversed. Large files are checked with small random reads instead of loading the entire file. Limits: 2 GiB input and 64 signature probes. Sources: [HDF5 File Format Specification](https://portal.hdfgroup.org/documentation/hdf5/latest/_f_m_t4.html), [CGNS/HDF5 mapping](https://cgns.org/standard/hdf5.html) |
| Exodus II (`.e`, `.exo`, `.ex2`, `.ex2m`, `.exii`) | NetCDF classic-backed Exodus files reuse the bounded NetCDF CDF-1/CDF-2 parser for dimensions, attributes, fixed arrays and unlimited records, with an Exodus-specific title/warning. Exodus element topology, blocks/sets, result semantics, external files and solver operations are not reconstructed. Source: [Sandia Exodus formats](https://sandialabs.github.io/seacas-docs/html/exodus_formats.html) |
| CSV / TSV (`.csv`, `.tsv`) | RFC 4180-style quoted fields with doubled quotes and quoted newlines; spaces remain field data. Malformed quote placement and forbidden control characters are rejected. Empty records are skipped with a warning; irregular row widths render with blank missing cells/headers and a warning. SVG tables paginate at 100 rows × 32 columns. Limits: 64 MiB input, 50,000 records, 256 columns, 1,000,000 cells, 64 KiB/field and 1 MiB/record; rendered text is capped at 512 characters per cell with a warning. Compact one-page CSV input up to 8 MiB embeds its exact source for reverse recovery; larger/multi-page source is omitted. Source: [RFC 4180 CSV common format](https://www.rfc-editor.org/rfc/rfc4180.html) |
| ARFF (`.arff`; Attribute-Relation File Format) | Weka ARFF headers (`@relation`, flat `@attribute` declarations and `@data`) are parsed into a bounded inert table. Numeric/real/integer/date columns are right-aligned; nominal and string values remain text. Dense comma-separated records and sparse `{index value, ...}` records are accepted; sparse omissions mean literal zero. Relation-valued attributes, nested `@end` sections, evaluation, and type coercion are unsupported. Limits: 64 MiB input, 1,000,000 lines, 1 MiB/line, 256 attributes, 50,000 records, 1,000,000 cells and 64 KiB/value. Sources: [Weka ARFF format](https://github.com/Waikato/weka-wiki/blob/master/docs/formats_and_processing/arff_stable.md), [Weka sparse ARFF](https://waikato.github.io/weka-wiki/formats_and_processing/arff_stable/) |
| JSON-LD 1.1 (`.jsonld`, `.json-ld`; content sniffing) | JSON-LD node objects are shown as inert subject/predicate/object rows, with `@id`, `@type`, compact terms, `@value` language/datatype annotations, `@list`, `@included`, and named `@graph` values. `@context` remains compact metadata; remote contexts, `@import`, framing, inference and expansion are never fetched or executed. Limits: 64 MiB input, depth 100, 200,000 JSON values/statements, 512 displayed characters per term and 64 MiB rendered text. Source: [W3C JSON-LD 1.1](https://www.w3.org/TR/json-ld11/) |
| OpenAPI/Swagger (`.openapi.json`, `.swagger.json`, `.openapi.yaml`, `.swagger.yaml`; content sniffing) | OpenAPI 3.x and Swagger 2.0 JSON/YAML descriptions render title/version, server list, component counts, and path/method/operation/response rows with tag and parameter details. `$ref`, externalDocs, server URLs, callbacks, links, examples, and security schemes remain inert text; no network request, reference resolution, or API execution occurs. Limits: JSON input 64 MiB or YAML input 16 MiB, depth 100, 300,000 values, 200,000 operations, 2 MiB displayed strings and 64 MiB rendered text. Source: [OpenAPI Specification](https://spec.openapis.org/oas/latest.html) |
| WSDL 1.1/2.0 (`.wsdl`, `.wsdl.xml`; content sniffing) | Service, port, binding, portType/interface, operation, message, import/include and embedded-schema counts render with names. Endpoint addresses, schema/import URLs, documentation, credentials and message payloads are omitted; no SOAP/HTTP request or code generation runs. Limits: 64 MiB input, 1,000,000 XML events, 500,000 nodes, depth 96 and 200,000 rows. Source: [W3C WSDL](https://www.w3.org/TR/wsdl.html) |
| OPML 1.0/2.0 (`.opml`, `.opml.xml`; content sniffing) | Version/title/date metadata and a bounded hierarchical outline table render with type, depth and feed-outline counts. Feed URLs, HTML links, owner email, descriptions and extension values are omitted; linked feeds, enclosures, images and scripts are never fetched or executed. Limits: 32 MiB input, 500,000 XML events, 300,000 nodes, depth 96 and 200,000 rows. Source: [OPML 2.0 specification](https://opml.org/spec2.opml) |
| AsyncAPI (`.asyncapi.json`, `.asyncapi.yaml`, `.asyncapi.yml`; content sniffing) | AsyncAPI 2.x/3.x JSON/YAML descriptions render title/version, server list, component counts, and channel/action/operation/summary/message rows. `$ref`, externalDocs, server URLs, examples, protocol bindings, and security schemes remain inert text; no network request, reference resolution, or message/API execution occurs. Limits: JSON input 64 MiB or YAML input 16 MiB, depth 100, 300,000 values, 200,000 operations, 2 MiB displayed strings and 64 MiB rendered text. Source: [AsyncAPI Specification](https://www.asyncapi.com/docs/reference/specification/latest) |
| JSON Schema (`.schema.json`, `.jsonschema`, `.schema.yaml`, `.schema.yml`; content sniffing) | JSON Schema draft documents render dialect/ID metadata and bounded schema paths with types, descriptions, common constraints, required counts, enum counts, and nested properties/definitions. `$ref`, `$id`, URI values, regex patterns, examples, and format annotations remain inert; no reference resolution, fetching, regex evaluation, or validation occurs. Limits: JSON input 64 MiB or YAML input 16 MiB, depth 100, 300,000 values, 200,000 schema nodes, 2 MiB displayed strings and 64 MiB rendered text. Source: [JSON Schema specifications](https://json-schema.org/specification) |
| HTTP Archive (`.har`; content sniffing) | HAR 1.2 JSON logs render an inert request/response inventory with method, URL, status, MIME, request/response byte sizes and timing. Query values whose names look like secrets, tokens, passwords, cookies, sessions or credentials are masked; headers, cookies and request/response bodies are omitted. URLs are never fetched or replayed. Limits: 128 MiB input, depth 100, 400,000 values, 200,000 entries, 2 MiB displayed strings and 64 MiB rendered text. Source: [W3C HAR](https://w3c.github.io/web-performance/specs/HAR/Overview.html) |
| WARC 1.0/1.1 (`.warc`, `.warc.gz`) | Parses consecutive WARC records, validating UTF-8 header blocks, `WARC-Type`, target URI, date, `Content-Type`, `Content-Length`, record boundaries and maximum payload sizes. Embedded HTTP status and MIME are summarized without retaining payload bytes; gzip input is decompressed under a fixed bound. Secret-like target URI query values are masked, and no archived URL/resource, header, cookie, script or body is opened or replayed. Limits: 128 MiB input/decompressed data, 64 MiB/record, 1 MiB/header, 200,000 records and 2 MiB displayed strings. Source: [IIPC WARC 1.1](https://iipc.github.io/warc-specifications/specifications/warc-format/warc-1.1/) |
| WACZ (`.wacz`) | Opens the bounded ZIP package, requires `datapackage.json` and `pages/pages.jsonl`, and renders manifest title/description/resource counts plus page ID, URL, title, status/MIME and timestamp. Page URL query values with secret-like names are masked. Archive WARC payloads, CDXJ indexes, headers, cookies, scripts and replay resources are never opened or executed. Limits: 256 MiB package, 64 MiB/entry, 8 MiB manifest, 128 MiB pages JSONL, 1 MiB/page line, 200,000 pages, depth 100 and 300,000 manifest values. Source: [WACZ specification 1.1.1](https://specs.webrecorder.net/wacz/1.1.1/) |
| Postman Collection v2.1 (`.postman_collection.json`; content sniffing) | Folder and request items render method, URL, response status/count, auth type and script count. Secret-like URL query values are masked; collection/request variables and auth credentials, headers, cookies, request/response bodies, and scripts are omitted. No request, script, variable expansion, or external URL is executed. Limits: 64 MiB input, depth 100, 300,000 values, 200,000 requests and 2 MiB displayed strings. Source: [Postman Collection schema v2.1](https://schema.postman.com/json/collection/v2.1.0/collection.json) |
| GraphQL SDL (`.graphql`, `.graphqls`, `.gql`; content sniffing) | GraphQL type/interface/input/enum/scalar/union and schema definitions render fields, arguments, signatures, implements clauses and directive summaries as inert rows. Comments and descriptions are ignored or retained as text; resolvers, introspection, queries, mutations, subscriptions and external resources are never executed or fetched. Limits: 64 MiB input, 500,000 lines, 1 MiB/line, 100,000 definitions, 300,000 fields and 2 MiB displayed strings. Source: [GraphQL specification](https://spec.graphql.org/October2021/) |
| Protocol Buffers (`.proto`; content sniffing) | Bounded proto2/proto3 text schemas render syntax/package metadata plus message fields, enum values, oneof fields and service RPC signatures. Fixed comments are stripped for parsing; imports, options, annotations, defaults, URLs and custom types stay inert. No `protoc`, code generator, RPC client, external import, or message validation runs. Limits: 64 MiB input, 500,000 lines, 1 MiB/line, 100,000 definitions, 300,000 members and 2 MiB displayed strings. Source: [Protocol Buffers proto3 language specification](https://protobuf.dev/reference/protobuf/proto3-spec/) |
| Kubernetes API manifests (`.k8s.yaml`, `.k8s.yml`, `.kubernetes.yaml`, `.kube.yaml`; content sniffing) | YAML multi-document streams and JSON `List` objects with `apiVersion`, `kind` and `metadata` render resource identity plus bounded spec/status shape counts, labels and annotations. Secret `data`/`stringData` values are never displayed; templates, URLs, external references, kubectl, Helm and cluster calls are not executed. Limits: JSON 64 MiB or YAML 16 MiB, depth 100, 300,000 JSON values, 500,000 YAML lines, 1 MiB/line and 100,000 resources. Source: [Kubernetes API concepts](https://kubernetes.io/docs/concepts/overview/kubernetes-api/) |
| Docker Compose (`compose.yaml`, `compose.yml`, `docker-compose.yaml`, `docker-compose.yml`, `.compose.yaml`, `.compose.yml`; JSON/YAML content sniffing) | Services render bounded image/build, port, dependency, volume, network, secret and command-presence metadata. The Docker daemon, image pulls/builds, command or healthcheck execution, interpolation/include/merge resolution, network/volume/config access, environment values and secret values are never accessed. Limits: JSON 64 MiB or YAML 16 MiB, depth 100, 300,000 JSON values, 500,000 YAML lines, 1 MiB/line and 100,000 services. Source: [Compose Specification](https://compose-spec.github.io/compose-spec/03-compose-file.html) |
| GitHub Actions workflows (`.github/workflows/*.yaml`, `.github/workflows/*.yml`; content sniffing) | Workflow YAML renders bounded job ID/name, runner, needs, step, action/run and matrix metadata. `run`/`uses` commands, expressions, environment/secret values, permissions, reusable workflows, artifacts, triggers and runner/network operations are never executed or resolved. Limits: 16 MiB input, 500,000 lines, 1 MiB/line and 100,000 jobs. Source: [GitHub Actions workflow syntax](https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax) |
| JUnit-compatible XML (`junit.xml`, `test-results.xml`, `test-report.xml`, `TEST-*.xml`, `.junit.xml`, `.junit-report.xml`, `.test-results.xml`; content sniffing) | Suite summaries render test, pass, failure, error, skipped and time counts. Failure/error text, stdout/stderr, properties and attachments are omitted; test execution, external DTDs and resources are never performed. Limits: 16 MiB input, 500,000 XML events, 300,000 nodes, depth 80, 2 MiB parsed text, 100,000 suites and 512 KiB displayed names. Source: [Maven Surefire XML reporter](https://maven.apache.org/surefire/maven-surefire-common/apidocs/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.html) |
| SARIF 2.1.0 (`.sarif`, `.sarif.json`; content sniffing) | Static-analysis results render tool/rule groups with error, warning, note/other and total counts. Messages, source locations, artifact URIs, snippets, fingerprints, fixes and invocation details are omitted; no upload, URL fetch or code execution occurs. Limits: 64 MiB input, depth 100, 300,000 JSON values, 100,000 runs/rules and 300,000 results; displayed strings are capped at 2 MiB. Source: [GitHub SARIF support](https://docs.github.com/en/code-security/reference/code-scanning/sarif-files/sarif-support) |
| Terraform JSON plans (`tfplan.json`, `.tfplan.json`, `terraform-plan.json`, `.terraform-plan.json`; content sniffing) | Terraform JSON major version 1 plans render resource address/type/action/reason rows and bounded create/update/delete/read, drift, output and variable counts. Before/after values, sensitive values, state, configuration, provider schemas and expressions are omitted; plan/apply/refresh, provider, filesystem and network operations are never performed. Limits: 64 MiB input, depth 100, 300,000 JSON values, 300,000 resource changes and 2 MiB strings. Source: [Terraform JSON output format](https://developer.hashicorp.com/terraform/internals/json-format) |
| CycloneDX BOM JSON/XML (`bom.json`, `bom.xml`, `*.cdx.json`, `*.cdx.xml`; content sniffing) | CycloneDX JSON `bomFormat`/`specVersion` and XML BOM namespace are validated. Component type/name/version/scope rows and vulnerability/dependency/service counts render; serial numbers, bom-ref values, hashes, licenses, PURLs, properties, vulnerability details and external references are omitted. Limits: JSON 64 MiB or XML 32 MiB, JSON depth 100/300,000 values, XML 500,000 events/300,000 nodes/depth 80/2 MiB text and 200,000 components. Source: [CycloneDX specification overview](https://cyclonedx.org/specification/overview/) |
| SPDX 2.x JSON/tag:value (`spdx.json`, `sbom.spdx.json`, `*.spdx.json`, `.spdx`, `.spdx.txt`; content sniffing) | SPDX package/file ID, name and version rows render with relationship, annotation, snippet and external-document counts. Checksums, license/supplier data, PURLs, download locations, comments and external URIs are omitted; no registry, URL or code operation occurs. Limits: 64 MiB input, JSON depth 100/300,000 values, 500,000 tag:value lines, 1 MiB/line, 200,000 package/file elements and 512 KiB displayed strings. Source: [SPDX Specification 2.3](https://spdx.github.io/spdx-spec/v2.3/) |
| JaCoCo/Cobertura coverage XML (`jacoco.xml`, `cobertura.xml`, `coverage.xml`, `.jacoco.xml`, `.cobertura.xml`, `.coverage.xml`; content sniffing) | Package summaries render class counts and line/branch/method covered/missed counters plus line-rate. Source paths, class/method internals, session data, logs, attachments and quality-gate evaluation are omitted; tests and external resources are never executed. Limits: 32 MiB input, 500,000 XML events, 300,000 nodes, depth 80, 2 MiB parsed text, 100,000 packages and 512 KiB displayed names. Sources: [JaCoCo coverage counters](https://www.jacoco.org/jacoco/trunk/doc/api/org/jacoco/core/analysis/ICounter.html), [Maven Surefire XML reports](https://maven.apache.org/surefire/maven-surefire-common/apidocs/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.html) |
| LCOV tracefiles (`.info`, `lcov.info`, `coverage.info`, `.lcov.info`; content sniffing) | `TN`/`SF`/`DA`/`BRDA` and function/line/branch totals render per-file basename, covered/missed counts and line rate. Absolute paths are reduced to basenames; function names, execution records, comments and source content are omitted. Limits: 64 MiB input, 500,000 lines, 1 MiB/line, 200,000 files and 512 KiB displayed names. Source: [lcov tracefile format](https://github.com/linux-test-project/lcov/blob/master/docs/man/geninfo.rst) |
| RFC 6902 JSON Patch (`.jsonpatch`, `.json-patch`, `.patch.json`; content sniffing) | Ordered operation arrays validate required `op`/`path` members and operation-specific `from`/`value` members, then render op/path/from/value-type rows and operation counts. Value payloads are omitted; patches are never applied and JSON Pointers/target documents are never evaluated or opened. Limits: 64 MiB input, depth 100, 300,000 JSON values, 200,000 operations and 2 MiB strings. Source: [RFC 6902 JSON Patch](https://www.rfc-editor.org/rfc/rfc6902.html) |
| RFC 7396 JSON Merge Patch (`.mergepatch`, `.json-merge-patch`, `.merge-patch.json`) | Explicitly named Merge Patch JSON documents render affected object paths with set/delete/merge actions, value types and depth. Values are omitted; null deletion, object merge, scalar/array replacement, target-document comparison and external resources are never applied or evaluated. Limits: 64 MiB input, depth 100, 300,000 JSON values, 200,000 paths and 2 MiB strings. Source: [RFC 7396 JSON Merge Patch](https://www.rfc-editor.org/rfc/rfc7396.html) |
| TOML configuration (`.toml`) | TOML 1.0/1.1 is parsed into inert key-path/value rows, including nested tables, arrays, arrays-of-tables, booleans, numbers, strings and date/time values. No config, template or environment expansion is evaluated. Limits: 4 MiB input, 50,000 lines, 64 KiB/line, parser recursion 80, 200,000 values, 2 MiB/string, 4 KiB/path and 32 MiB rendered text. Floats are normalized by numeric parsing and source text is not embedded. Source: [TOML 1.1.0](https://toml.io/en/v1.1.0) |
| YAML 1.2 (`.yaml`, `.yml`) | YAML streams render as inert key-path/value rows across multiple documents. Aliases are shown as placeholders and never expanded; custom tags are inert, complex mapping keys are rejected, and duplicate keys are kept as separate rows with warnings. Limits: 16 MiB input, 100,000 lines, 1 MiB/line, nesting 80, 400,000 parser events, 200,000 rendered values, 100 documents, 2 MiB/scalar, 4 KiB/path and 32 MiB rendered text. Source: [YAML 1.2.2](https://yaml.org/spec/1.2.2/). |
| Generic XML (`.xml` fallback) | Unrecognized XML is displayed as namespace-qualified element paths, attributes and text. Recognized Project XML, draw.io, SVG, HTML and other specialized XML formats keep their own converters. DTDs are rejected; external entities and resources are never loaded. Limits: 16 MiB input, 100,000 lines, 1 MiB/line, depth 80, 400,000 parser events, 200,000 nodes/rows, 4 KiB/path and 32 MiB rendered text. Input must be UTF-8. Source: [W3C XML 1.0](https://www.w3.org/TR/xml/). |
| Java Properties (`.properties`) | Implements the line-oriented `Properties.load(InputStream)` profile: each input byte maps to ISO-8859-1, unescaped `=`, `:`, or Java whitespace separates the key, `\t`/`\n`/`\r`/`\f` and single-`u` `\uXXXX` escapes decode, odd trailing backslashes continue a logical line, and duplicate keys use the last value. The preview never expands variables or evaluates values. Limits: 16 MiB input, 100,000 physical lines, 1 MiB/line, 2 MiB/logical line, 200,000 distinct keys, 2 MiB/key/value, 4 KiB/path and 32 MiB rendered text. Malformed escapes and unpaired UTF-16 surrogates are rejected. Source: [Java Properties API](https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/Properties.html). |
| Apple Property List (`.plist`, `.plist.xml`; content sniffing) | XML plist dictionaries, arrays, key paths, scalar types and data-byte counts render as inert rows. Binary `bplist00` files are validated through the trailer/offset table and rendered as bounded object-marker summaries without expanding payloads. URL and secret-like scalar values are redacted or omitted; external entities/resources and application execution are never performed. Limits: 64 MiB input, 1,000,000 XML events, 500,000 XML nodes/objects, depth 96 and 200,000 rows. Source: [Apple PropertyListSerialization](https://developer.apple.com/documentation/foundation/propertylistserialization) |
| XMI 2.1–2.5 (`.xmi`) | OMG XMI namespaceのXMI rootを認識し、nested model elementのxmi:id、xmi:type、name、containment depth、属性referenceをsummary tableとdetail rowsへ表示。UML/SysML model referenceは展開せずtextとして保持し、external href、binary payload、XMI extension、model executionは処理しません。DTDは拒否します。上限: 64 MiB input、1,000,000 XML event、500,000 XML node、depth96、200,000 element、128 attribute/element、2 MiB/attribute、64 MiB rendered text。仕様: [OMG XMI](https://www.omg.org/spec/XMI/)。 |
| ReqIF 1.0.1/1.2 (`.reqif`, `.reqif.xml`) | OMG ReqIF namespaceを持つXML requirements exchangeを読み、header、specification hierarchy、SPEC-OBJECTのID/name/type/description、typed attribute values、SPEC-RELATIONをbounded SVG tablesへ組版。XHTML valueはtextへ平坦化し、外部reference、embedded binary、tool-specific extension、requirement-management semanticsは実行・取得しません。DTDは拒否します。上限: 64 MiB input、1,000,000 XML events、500,000 XML nodes、depth 96、200,000 SPEC-OBJECT/relations、128 attributes/object、2 MiB/value、64 MiB rendered text。仕様: [OMG ReqIF 1.0.1](https://www.omg.org/spec/ReqIF/1.0.1/About-ReqIF)、[OMG ReqIF overview](https://www.omg.org/reqif/)。 |
| DMN 1.1–1.5 (`.dmn`) | DMN model namespaces 1.1 through 1.5 are accepted. Decision tables render input/output clauses, source-order rules and the hit policy as inert data tables; local `requiredInput`/`requiredDecision` links are resolved to labels. Literal expressions and FEEL cells are displayed without evaluation, and hit-policy semantics are not executed. External references are never fetched. DMNDI DRG layout, rule annotations, business knowledge models and unsupported decision logic are omitted or warned. DTDs are rejected. Bounds: 32 MiB input, 500,000 XML events, 200,000 XML nodes, depth 80, 10,000 decision tables, 200,000 rules, 128 columns, 1,000,000 cells and 32 MiB rendered text. Source: [OMG DMN 1.5 specification](https://www.omg.org/spec/DMN/1.5/PDF). |
| Generic JSON (`.json`) | Streams generic JSON objects and arrays into inert path/type/value rows; URLs and code-like fields are never evaluated. Limits: 64 MiB input, depth 100, 200,000 values/blocks, 2 MiB per string/path and 32 MiB rendered text. Non-integral decimal/exponent spelling is normalized by JSON number parsing. |
| JSON Text Sequence (`.jsons`, `.jsonseq`; content sniffing; `.jsonl` compatibility) | RFC 7464 RS-prefixed UTF-8 JSON values are displayed in record order, with a heading per record. Malformed/empty sequence items are skipped with counted warnings. `.jsonl` reads line-delimited JSON in compatibility mode. RFC 7464 does not assign a file extension; `.jsons` and `.jsonseq` are aliases. Limits: 64 MiB total input, 4 MiB/record, 100,000 records and 200,000 rendered blocks; each record also uses the bounded JSON parser limits. Source: [RFC 7464](https://www.rfc-editor.org/rfc/rfc7464.html) |
| Generic JSON (`.json`) | Streams generic JSON objects and arrays into inert path/type/value rows; URLs and code-like fields are never evaluated. Limits: 64 MiB input, depth 100, 200,000 values/blocks, 2 MiB per string/path and 32 MiB rendered text. Non-integral decimal/exponent spelling is normalized by JSON number parsing. |
| JSON Text Sequence (`.jsons`, `.jsonseq`; content sniffing; `.jsonl` compatibility) | RFC 7464 RS-prefixed UTF-8 JSON values are displayed in record order, with a heading per record. Malformed/empty sequence items are skipped with counted warnings. `.jsonl` reads line-delimited JSON in compatibility mode. RFC 7464 does not assign a file extension; `.jsons` and `.jsonseq` are aliases. Limits: 64 MiB total input, 4 MiB/record, 100,000 records and 200,000 rendered blocks; each record also uses the bounded JSON parser limits. Source: [RFC 7464](https://www.rfc-editor.org/rfc/rfc7464.html) |
| GeoJSON (`.geojson`) | RFC 7946 FeatureCollection/Feature/Geometry and Point/MultiPoint/LineString/MultiLineString/Polygon/MultiPolygon/GeometryCollection geometries. WGS 84 longitude/latitude is projected with Web Mercator, latitude clamps at ±85.051129°. Polygon holes use even-odd fill; unclosed rings are closed with a warning, and antimeridian jumps are rendered as straight projected segments. Properties, feature ids, bbox, altitude, extra dimensions, and legacy CRS transforms are not displayed/applied. Limits: 32 MiB input, 100,000 features, 200,000 geometries, 500,000 coordinate positions, 16 nested GeometryCollections, 40 MiB SVG paths. Sources: [RFC 7946](https://www.rfc-editor.org/info/rfc7946/) |
| GeoJSON Text Sequence (`.geojsons`, `.geojsonseq`; content sniffing; `.geojsonl` compatibility) | RFC 8142 RS-delimited UTF-8 GeoJSON texts: heterogeneous Feature, FeatureCollection, and Geometry records are merged into one bounded map preview. RFC 8142 does not assign a file extension; `.geojsons` and `.geojsonseq` are convenience aliases. `.geojsonl` reads one compact or pretty single-line JSON object per line and reports compatibility mode. Feature properties, ids, and top-level sequence metadata are omitted. Geometry validation and Web Mercator behavior follow the GeoJSON converter. Limits: 32 MiB total input, 8 MiB/record, 100,000 records and expanded features, 500,000 positions, shared geometry/depth/path limits. Sources: [RFC 8142](https://www.rfc-editor.org/rfc/rfc8142.html), [RFC 7946](https://www.rfc-editor.org/info/rfc7946/) |
| TopoJSON (`.topojson`; content sniffing) | Reads Topology `objects`, shared `arcs`, optional quantization `transform`, delta coordinates and complemented negative arc indexes; stitches contiguous arc references and reuses the bounded Web Mercator GeoJSON renderer. Supports GeometryCollection, Point/MultiPoint, LineString/MultiLineString, Polygon and MultiPolygon. Coordinates are treated as WGS 84 longitude/latitude because TopoJSON carries no CRS metadata; no other CRS transform is applied. Properties, IDs, object names, bbox and ordinates beyond x/y are omitted. Limits: 32 MiB input, 200,000 arcs/geometries, 500,000 decoded and expanded positions, 100,000 objects/features and 16 collection nesting levels. Source: [TopoJSON Format Specification](https://github.com/topojson/topojson-specification) |
| GeoRSS (`.rss`, `.atom`, `.georss`) | OGC GeoRSS Simple `point`, `line`, `polygon`, and `box`, plus GeoRSS GML `where` containing GML Point/LineString/Polygon/Multi* and Envelope/Box geometry, in RSS 2.0, Atom 1.0, or RDF feed roots. Simple latitude/longitude tuples (including the permitted comma pair separator) and GML CRS axes are normalized to the shared map order. GeoRSS GML defaults to EPSG:4326; explicit CRS84/EPSG:4326/EPSG:4979 is supported, while other CRSs are rejected without transformation. Feed properties, elevation/floor, curves, circle, and unsupported extensions are omitted. Links/enclosures/schema references are not fetched. Limits: 32 MiB input, XML 200,000 nodes/1,000,000 events/depth 64/32 MiB text, 100,000 geometries and 500,000 positions. Source: [OGC GeoRSS Encoding Standard 17-002r1](https://docs.ogc.org/cs/17-002r1/17-002r1.html) |
| RSS 2.0 / Atom 1.0 feed (`.rss`, `.atom`, `.georss`; no GeoRSS geometry or content sniffing) | Channel/feed title and update date, item/entry title/date, and bounded link/author/content/enclosure counts render as inert metadata. Links, descriptions, summaries, content payloads, author addresses, enclosures and external resources are omitted; no feed refresh, script or network operation runs. Limits: 32 MiB input, 500,000 XML events, 300,000 nodes, depth 96 and 100,000 rows. Sources: [RSS 2.0 Specification](https://www.rssboard.org/rss-specification), [RFC 4287 Atom](https://www.rfc-editor.org/info/rfc4287/) |
| JSON Feed 1.0/1.1 (`.jsonfeed`, `.json-feed`, `.feed.json`; content sniffing) | Feed title/version and item id/title/content type/date/author/attachment count render as inert metadata. `content_text`/`content_html`, item URLs, images, tags and attachment URLs are omitted; no markup, feed, link or external resource is fetched or executed. Limits: 64 MiB input, depth 100, 300,000 JSON values, 100,000 items, 100 attachments/item and 2 MiB strings. Source: [JSON Feed 1.1](https://jsonfeed.org/version/1.1) |
| CloudEvents JSON 1.0 (`.cloudevent.json`, `.cloud-event.json`, `.cloudevents.json`, `.ce.json`, `.cloudevent`, `.cloudevents`; content sniffing) | Single event objects and JSON batch arrays render bounded type, id, source host, time, subject and data type/size metadata. Source URI query values are masked; data/data_base64 payloads, dataschema and extension values are omitted, and no URI, broker, handler or network resource is resolved. Limits: 64 MiB input, depth 100, 300,000 JSON values, 100,000 events and 2 MiB strings. Source: [CloudEvents JSON Event Format](https://github.com/cloudevents/spec/blob/main/cloudevents/formats/json-format.md) |
| HL7 FHIR R4 JSON (`.fhir.json`, `.fhirjson`, `.fhir`, `.bundle.fhir.json`, `.fhir-bundle.json`; content sniffing) | Resource objects and Bundle entries render bounded resourceType, id, status/type, profile count and structural counts. Clinical values, Narrative XHTML, names, identifiers, coded displays, extension values and references are omitted; no terminology lookup, validation, URL fetch or clinical operation is executed. Limits: 64 MiB input, depth 100, 300,000 JSON values, 100,000 resources and 2 MiB strings. Source: [FHIR R4 JSON representation](https://hl7.org/fhir/R4/json.html) |
| Apache Avro JSON schema/protocol (`.avsc`, `.avpr`, `.avro.json`, `.avro-schema.json`; content sniffing) | Avro record, field, union, enum, fixed, array, map and protocol message paths render as bounded type summaries. Defaults, docs, aliases, logical-type semantics, imports, values, code generation and RPC execution remain inert; named references are not resolved. Limits: 64 MiB input, depth 100, 300,000 JSON values, 200,000 rows and 2 MiB strings. Source: [Apache Avro 1.12 specification](https://avro.apache.org/docs/1.12.0/specification/) |
| OpenTelemetry OTLP JSON (`.otlp.json`, `.otlp-json`, `.otel.json`, `.otlp.trace.json`, `.otlp.metrics.json`, `.otlp.logs.json`; content sniffing) | OTLP traces, metrics, logs and profiles render bounded signal/resource/scope counts, service names and event/link/data-point summaries. Attribute values, log bodies, IDs, exemplars, links, schema URLs and endpoints are omitted; no collector, exporter or network operation runs. Limits: 64 MiB input, depth 100, 300,000 JSON values, 200,000 rows and 2 MiB strings. Source: [OpenTelemetry OTLP specification](https://opentelemetry.io/docs/specs/otlp/) |
| OCEL 2.0 JSON (`.jsonocel`, `.ocel.json`, `.ocel-json`; content sniffing) | Object-Centric Event Log 2.0 event types, object types, events, objects and event/object relationship counts render as bounded tables. Attribute values, qualifiers, URLs and external resources are omitted; no process discovery or filtering runs. Limits: 64 MiB input, depth 100, 300,000 JSON values, 100,000 nodes, 200,000 rows and 2 MiB strings. Source: [OCEL 2.0 JSON format](https://www.ocel-standard.org/specification/formats/json/) |
| JSON:API 1.1 (`.jsonapi`, `.json-api.json`, `.jsonapi.json`; content sniffing) | Primary and included resources render bounded type/id, status metadata, attribute-key counts and relationship counts. Attribute values, linkage payloads, meta/error details and link URLs are omitted; no endpoint or API operation is contacted. Limits: 64 MiB input, depth 100, 300,000 JSON values, 100,000 resources, 200,000 rows and 2 MiB strings. Source: [JSON:API 1.1 specification](https://jsonapi.org/format/) |
| GML (`.gml`) | GML 2 namespace and GML 3.2 feature documents with Point, LineString, LinearRing, Polygon, and MultiPoint/MultiLineString/MultiCurve/MultiPolygon/MultiSurface/MultiGeometry. GML `coordinates`, `pos`, and `posList` accept 2–4 ordinates; extra ordinates are omitted. CRS84 uses longitude/latitude; EPSG:4326 and EPSG:4979 follow their GML latitude/longitude axis order and are normalized to the map renderer. Missing CRS is labeled as an assumption of CRS84; other CRSs, axisLabels/uomLabels, curves, solids, TINs, and non-linear surfaces are unsupported. GML application properties and XLinks are omitted and no schemas/resources are fetched. Limits: 32 MiB input, 200,000 XML nodes/geometries, 1,000,000 events, depth 64, 500,000 positions. Sources: [OGC GML 3.2.2 encoding standard](https://docs.ogc.org/is/07-036r1/07-036r1.pdf), [OGC GML overview](https://www.ogc.org/standards/gml/) |
| WKT/EWKT (`.wkt`, `.ewkt`) | OGC linear simple features: POINT, MULTIPOINT, LINESTRING, MULTILINESTRING, POLYGON, MULTIPOLYGON, GEOMETRYCOLLECTION, EMPTY members, and optional Z/M/ZM coordinates. Without an SRID, x/y are explicitly assumed to be WGS 84 longitude/latitude; EWKT accepts SRID 4326 only, and coordinate transformation is not attempted. Z/M values are validated but omitted; open polygon rings are closed by the shared renderer with a warning. Curved, polyhedral, TIN and other non-linear surface types are rejected. Limits: 32 MiB input, 500,000 positions, 200,000 geometries, 16 collection nesting levels and shared 40 MiB SVG path budget. Sources: [OGC Simple Feature Access 06-103r4](https://docs.ogc.org/is/06-103r4/06-103r4/pdf), [OGC WKT geometry examples](https://docs.ogc.org/is/10-032r8/10-032r8/pdf) |
| GPX (`.gpx`) | GPX 1.1 waypoints become map points, routes become ordered lines, and each track segment remains a separate line so reception gaps are visible. WGS 84 coordinates are projected with Web Mercator; elevation, names, timestamps, symbols, metadata and extension values are omitted; URLs/schema locations are never fetched. Requires GPX 1.1 namespace and version; validates latitude [-90,90] and longitude [-180,180). Limits: 32 MiB input, 200,000 XML nodes, 1,000,000 XML events, depth 64, 32 MiB decoded text/attributes, 100,000 rendered features, 500,000 positions. Sources: [Topografix GPX 1.1 schema documentation](https://www.topografix.com/gpx/1/1/), [Topografix GPX overview](https://www.topografix.com/gpx.asp) |
| KML/KMZ (`.kml`, `.kmz`) | KML 2.2 `Placemark` Point, LineString, Polygon, MultiGeometry, and Google `gx:Track` geometry render through the bounded WGS 84 Web Mercator map renderer. KMZ selects case-insensitive root `doc.kml`, or the first `.kml` entry. Altitude, styles, names/descriptions, ExtendedData, overlays, and non-geometric metadata are omitted; linked resources are never fetched. Polygon inner/outer rings use even-odd fill; antimeridian segments remain straight. Limits: KML 32 MiB, KMZ 64 MiB compressed input / 128 MiB total expanded / 32 MiB per part / 10,000 entries; 200,000 XML nodes, 1,000,000 XML events, depth 64, 100,000 Placemarks, 500,000 positions. Sources: [OGC KML 2.2 standard](https://www.ogc.org/standard/kml/), [Google KML reference](https://developers.google.com/kml/documentation/kmlreference), [Google KMZ guide](https://developers.google.com/kml/documentation/kmzarchives) |
| ESRI Shapefile (`.shp`) | Reads the 100-byte mixed-endian header and sequential Point, PolyLine, Polygon, and MultiPoint records, including Point/Polyline/Polygon/MultiPoint Z and M layouts. Ring orientation and containment preserve multiple polygon shells and holes; optional SHX entries are validated against SHP records. A sibling degree-based WGS 84 geographic `.prj` is accepted; without it, coordinates are explicitly assumed to be longitude/latitude, while projected, non-degree or unknown CRSs are rejected because no reprojection is applied. DBF attributes and Z/M values are not rendered; MultiPatch is rejected. Limits: 64 MiB SHP, 1 MiB PRJ/SHX, 100,000 records/parts, 500,000 positions and 2,000,000 polygon-ring segment checks. Source: [Esri Shapefile Technical Description](https://www.esri.com/library/whitepapers/pdfs/shapefile.pdf) |
| dBASE III/III+ attribute table (`.dbf`) | Parses the classic 32-byte field-descriptor layout and row records into paginated SVG tables (100 records × 32 columns per page). Character, numeric, float, logical and date fields render; deleted rows are skipped; memo and unsupported field types remain explicit placeholders. A sibling `.cpg` code-page file takes precedence; common UTF-8, Windows-125x, Shift-JIS, GBK, EUC-KR, Big5 and ISO-8859-1/2 labels are supported. LDID 0x57 selects Windows-1252; a missing/zero LDID defaults to Windows-1252 with warning. Limits: 128 MiB input, 100,000 records, 2 million cells, 255 fields, 254 bytes per field, 4,000 bytes per record, and 1 KiB `.cpg`. dBASE IV/Level 7 layouts, memo-file contents and unsupported binary types are not decoded. Sources: [OGC dBASE III/IV structures](https://docs.ogc.org/bp/16-070r3/16-070r3.pdf), [Esri attribute widths and code pages](https://doc.esri.com/en/arcgis-pro/latest/tool-reference/appendices/geoprocessing-considerations-for-shapefile-output.html), [Esri code-page behavior](https://support.esri.com/en-us/knowledge-base/read-and-write-shapefile-and-dbase-files-encoded-in-var-000013192) |
| ESRI ASCII Grid (`.asc`) | Reads `NCOLS`/`NROWS`, paired `XLLCORNER`/`YLLCORNER` or `XLLCENTER`/`YLLCENTER`, positive `CELLSIZE`, optional `NODATA_VALUE` (default `-9999`) and floating/integer cell values in top-to-bottom row-major order. Emits one PNG-backed SVG heatmap with a continuous preview ramp, min/max legend and transparent NoData cells; an all-NoData grid stays transparent and omits the numeric scale. Preserves origin/cell-size in page description; CRS reprojection, categorical value tables and geographic overlays are not inferred. Header parsing is case-insensitive and duplicate/mismatched origin keys are rejected. Bounds: 128 MiB input, 1 MiB/header or data line, eight header keywords, 5,000,000 cells, 100,000 cells per side, 32 MiB encoded PNG. Source: [Esri ASCII raster format and cell ordering](https://doc.esri.com/en/arcgis-pro/latest/tool-reference/conversion/raster-to-ascii.html), [Esri ASCII Grid header/origin/NoData rules](https://help.arcgis.com/en/arcgisdesktop/10.0/help/009t/009t0000000z000000.htm) |
| OGC GeoPackage (`.gpkg`) | Reads regular vector feature tables from an SQLite GeoPackage in read-only/query-only mode and emits one bounded Web Mercator page per layer. Supports GeoPackageBinary headers and core WKB Point/LineString/Polygon/Multi* /GeometryCollection types, including ISO Z/M/ZM type codes; EPSG:4326/4979 are treated as WGS 84 longitude/latitude and EPSG:3857 is inverse-projected. Other/custom/undefined vector CRSs are rejected because no general reprojection is available. Regular EPSG:3857 raster tile tables with PNG/JPEG imagery display the highest-resolution zoom level that fits the preview budget; tiles are decoded and re-encoded as PNG. Attributes, feature/tile views, unsupported tile CRSs, extended geometry types, and vector Z/M values are omitted. Limits: 128 MiB main database/WAL, 16 MiB SHM sidecar, 16 MiB geometry BLOB, 4 MiB/tile, 64 MiB selected tile input/output, 256 combined layers, 100,000 feature rows/layer, 200,000 feature rows total, 512 tiles and 20,000,000 tile pixels, 500,000 vector positions, 200,000 vector geometries, 16 nested geometries, 1 second SQLite busy timeout, and 5 seconds of SQLite query execution. Source: [OGC GeoPackage Encoding Standard 1.4](https://www.geopackage.org/spec140/) |
| EMF / WMF (`.emf`, `.wmf`) | Windows Enhanced Metafile および Windows Metafile のベクターグラフィックス変換(`emf-core`経由で安全にベクターSVG化) |
## SVGからOpen XML / CAD / CAM / Plotterへの逆変換
| 出力 | 対応 | 契約 |
|---|---|---|
| PPTX | 対応 | SVG 1件をスライド1枚のベクター画像として格納し、`mc:AlternateContent`へPNG fallbackを併設 |
| DOCX | 対応 | SVG 1件をページ1枚のベクター画像として格納し、`svgBlip`の基底PNG fallbackを併設 |
| XLSX | 対応 | SVG 1件をシート1枚のベクター画像として格納し、`svgBlip`の基底PNG fallbackを併設 |
| drawio | 対応 | 図面のsourceを持つSVGは`<diagram>`をそのまま復元し、編集可能な図形に戻す。持たないSVGはpage 1枚=`shape=image`のSVG data URI 1件として格納 |
| DXF | 対応 | SVGのベクター形状(`<path>`, `<line>`, `<circle>`, `<rect>`)とテキスト、レイヤー構造(`<g id="layer-...">`)から、AutoCAD Release 12(AC1009)形式のCAD図面エンティティを生成 |
| G-code (.gcode / .nc) | 対応 | SVGのベクター線分・矩形・円・パスから、CNC加工用の標準G-code(G21, G90, G00 移動, M03 スピンドルON, G01 切削送り, M05/M02 終了)を生成 |
| Gerber RS-274X (.gbr) | 対応 | SVGの円・パッド・線分トレース・塗りつぶし矩形/ポリゴンから、基板製造用の標準Extended Gerber RS-274X(D10 トレース, D11.. パッドフラッシュ, G36/G37 ポリゴン)を生成 |
| HP-GL / HP-GL/2 (.plt) | 対応 | SVGのベクター線分・矩形・円・色情報から、ペンプロッター用の標準HP-GL(IN, DF, SP1〜8 ペン選択, PA, PU/PD, CI)命令列を生成 |
| Excellon (.drl / .xln) | 対応 | SVGの円要素およびドリルパッドから、プリント基板NC穴あけ用のExcellonフォーマットを生成 |
| STL (.stl) | 対応 | SVGの閉じたベクター輪郭から2.5D厚み押し出し三角形メッシュを生成し、標準ASCII STLファイルを出力 |
| OBJ (.obj) | 対応 | SVGのベクター輪郭から2.5D厚み押し出しポリゴンメッシュ(頂点 `v`、ポリゴン面 `f`)を生成し、Wavefront OBJファイルを出力 |
| PLY (.ply) | 対応 | SVGのベクターパス・図形から2.5D厚み押し出しポリゴンメッシュを生成し、ASCII PLY形式で出力 |
| 3MF (.3mf) | 対応 | SVGのベクター図形から2.5D厚み押し出し三角形メッシュを生成し、3MF OPC ZIPコンテナ(`3D/3dmodel.model`)として出力 |
| STEP (.step / .stp) | 対応 | SVGの線分・矩形・円・パスから、ISO 10303-21 Part 21機械設計CADワイヤーフレームモデルを出力 |
| IGES (.iges / .igs) | 対応 | SVGの線分・円弧・ポリラインから、ANSI/NIST IGES 5.3 80カラム固定レコードCAD図面を出力 |
| Gmsh (.msh) | 対応 | SVGの閉領域から2D三角メッシュ節点・要素を生成し、Gmsh 2.2形式で出力 |
| VTK (.vtk) | 対応 | SVGのポリゴンからLegacy VTK POLYDATAデータセットを出力 |
| Graphviz DOT (.dot) | 対応 | SVGの図形と矢印コネクタから有向グラフDOT言語を抽出・再構成 |
| Mermaid (.mmd) | 対応 | SVGの図形・テキストからMermaid flow/sequence構文を抽出・再構成 |
| Markdown (.md) | 対応 | SVGテーブルのセル境界・テキストからMarkdownテーブル構文を抽出・再構成 |
| Tabular CSV (.csv) | 対応 | SVGチャート・テーブルからカンマ区切り表形式データを復元 |
| LaTeX Math / document preview (`.tex`, `.latex`) | standalone数式に加え、`\\documentclass`文書のtitle/author/date、section、paragraph、list、verbatim/code、tabular、caption、inline math、入力ディレクトリ内のbounded PNG/JPEG `\\includegraphics`を組版。TeXは実行せず、`\\input`/`\\include`/bibliography、shell escape、外部URL、macro expansionは警告付きで省略し、figure floatと厳密な組版は近似。画像は共通ローダー(10,000 refs、8 MiB/image、32 MiB decoded bytes、40M pixels/image、100M total pixels、48 MiB data URI)の制限を適用。仕様: [CTAN graphicx](https://ctan.org/pkg/graphicx?lang=en), [LaTeX2e graphics reference](https://tug.ctan.org/info/latex2e-help-texinfo/latex2e.html) | SVG数式要素からLaTeX数式コードを逆アセンブル |
| React JSX / TSX (.jsx / .tsx) | 対応 | SVG要素をクリーンなReactコンポーネントコード(JSX/TSX)としてトランスパイル |
| Vue 3 (.vue) | 対応 | SVG要素をVue 3 Single File Component(`<template>`)としてトランスパイル |
| Svelte (.svelte) | 対応 | SVG要素をSvelteコンポーネントコード(`<script>`, `<svg {...$$restProps}>`)としてトランスパイル |
| SVG Path Data (.path / .icon) | 対応 | SVGから`<path d="...">`のベクターパスデータ文字列を抽出 |
| Base64 Data URI (.datauri) | 対応 | 安全検査済みインライン埋め込み用Data URIを出力 |
| Standalone HTML Viewer (.html / .htm) | 対応 | SVGをダークモード対応・中央配置のスタンドアロンなレスポンシブHTML5ビューアとして出力 |
| Raster PNG (.png) | 対応 | 高解像度ラスタライズPNG画像を出力 |
| Raster WebP (.webp) | 対応 | 高圧縮・高効率ラスタライズWebP画像を出力 |
| 元Office意味構造の復元 | 非対応 | 段落、表、セル、数式、グラフ、master等は再構築しない |
| 元drawio図形の復元(sourceなし) | 非対応 | SVGを画像として持つだけで、shapeやedgeには戻らない |
入力は単一SVGまたはSVGファイルを含むディレクトリです。ディレクトリ内はファイル名順に
処理されます。SVGの`width`/`height`または`viewBox`からページ寸法を決定します。
`script`、`foreignObject`、animation、event属性、外部URL、外部CSS参照、ENTITY宣言は
格納前に拒否します。実際のdrawioのSVG exportが必ず持つ標準SVG 1.1 DOCTYPE(内部subsetと
ENTITY宣言のないもの)は受け付けます。埋め込みraster data URIと、安全検査済みのbase64 SVG
data URIは利用できます。
drawio出力だけは例外があります。drawioの「Include a copy of my diagram」で書き出されたSVG
(rootの`content`属性に`mxfile`を持つもの。2018年より前のリリースが書くURIエンコード形式も
含みます)と、`--embed-drawio-source`を付けて変換した本コンバータのSVGは、画像ではなく元の
`<diagram>`をそのまま復元します。`content`はroot要素のものだけを読みます。この場合そのページのSVG
本体は出力に入らないため、HTMLラベルの`foreignObject`を含む実exportもそのまま扱えます。
復元するsourceは、格納前に`mxfile`として構文解析し、DOCTYPE宣言があれば拒否します。
## 品質の読み方
`warning_count == 0`は、実装済み範囲で未対応要素を検出しなかったことを示します。Microsoft Office、Adobe Acrobat、LibreOfficeと画素単位で完全一致する保証ではありません。重要文書では元ファイルと全ページを同一DPIで描画比較してください。