This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/daffodil-site.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 0e7776f Publishing from eca0b0996803f475abd87ac16af04fa915820c5a
0e7776f is described below
commit 0e7776fa6a746e170ff6e11c7f9cddb7b48de16a
Author: Apache Daffodil Site Autobuild <[email protected]>
AuthorDate: Thu Jan 15 23:22:25 2026 +0000
Publishing from eca0b0996803f475abd87ac16af04fa915820c5a
---
...dil-Extension-for-Visual-Studio-Code-1.5.0.docx | Bin 0 -> 3992451 bytes
...dil-Extension-for-Visual-Studio-Code-1.5.0.html | 1252 ++++++++++++++++++++
content/vscode/1.5.0/index.html | 5 +
3 files changed, 1257 insertions(+)
diff --git
a/content/docs/vscode/1.5.0/Apache-Daffodil-Extension-for-Visual-Studio-Code-1.5.0.docx
b/content/docs/vscode/1.5.0/Apache-Daffodil-Extension-for-Visual-Studio-Code-1.5.0.docx
new file mode 100644
index 0000000..21344a9
Binary files /dev/null and
b/content/docs/vscode/1.5.0/Apache-Daffodil-Extension-for-Visual-Studio-Code-1.5.0.docx
differ
diff --git
a/content/docs/vscode/1.5.0/Apache-Daffodil-Extension-for-Visual-Studio-Code-1.5.0.html
b/content/docs/vscode/1.5.0/Apache-Daffodil-Extension-for-Visual-Studio-Code-1.5.0.html
new file mode 100644
index 0000000..ba36b74
--- /dev/null
+++
b/content/docs/vscode/1.5.0/Apache-Daffodil-Extension-for-Visual-Studio-Code-1.5.0.html
@@ -0,0 +1,1252 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang xml:lang>
+<head>
+ <meta charset="utf-8" />
+ <meta name="generator" content="pandoc" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0,
user-scalable=yes" />
+ <title>Apache-Daffodil™-Extension-for-Visual-Studio-Code:-v1.5.0</title>
+ <style>
+
+html {
+color: #1a1a1a;
+background-color: #fdfdfd;
+}
+body {
+margin: 0 auto;
+max-width: 36em;
+padding-left: 50px;
+padding-right: 50px;
+padding-top: 50px;
+padding-bottom: 50px;
+hyphens: auto;
+overflow-wrap: break-word;
+text-rendering: optimizeLegibility;
+font-kerning: normal;
+}
+@media (max-width: 600px) {
+body {
+font-size: 0.9em;
+padding: 12px;
+}
+h1 {
+font-size: 1.8em;
+}
+}
+@media print {
+html {
+background-color: white;
+}
+body {
+background-color: transparent;
+color: black;
+font-size: 12pt;
+}
+p, h2, h3 {
+orphans: 3;
+widows: 3;
+}
+h2, h3, h4 {
+page-break-after: avoid;
+}
+}
+p {
+margin: 1em 0;
+}
+a {
+color: #1a1a1a;
+}
+a:visited {
+color: #1a1a1a;
+}
+img {
+max-width: 100%;
+}
+svg {
+height: auto;
+max-width: 100%;
+}
+h1, h2, h3, h4, h5, h6 {
+margin-top: 1.4em;
+}
+h5, h6 {
+font-size: 1em;
+font-style: italic;
+}
+h6 {
+font-weight: normal;
+}
+ol, ul {
+padding-left: 1.7em;
+margin-top: 1em;
+}
+li > ol, li > ul {
+margin-top: 0;
+}
+blockquote {
+margin: 1em 0 1em 1.7em;
+padding-left: 1em;
+border-left: 2px solid #e6e6e6;
+color: #606060;
+}
+code {
+font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
+font-size: 85%;
+margin: 0;
+hyphens: manual;
+}
+pre {
+margin: 1em 0;
+overflow: auto;
+}
+pre code {
+padding: 0;
+overflow: visible;
+overflow-wrap: normal;
+}
+.sourceCode {
+background-color: transparent;
+overflow: visible;
+}
+hr {
+border: none;
+border-top: 1px solid #1a1a1a;
+height: 1px;
+margin: 1em 0;
+}
+table {
+margin: 1em 0;
+border-collapse: collapse;
+width: 100%;
+overflow-x: auto;
+display: block;
+font-variant-numeric: lining-nums tabular-nums;
+}
+table caption {
+margin-bottom: 0.75em;
+}
+tbody {
+margin-top: 0.5em;
+border-top: 1px solid #1a1a1a;
+border-bottom: 1px solid #1a1a1a;
+}
+th {
+border-top: 1px solid #1a1a1a;
+padding: 0.25em 0.5em 0.25em 0.5em;
+}
+td {
+padding: 0.125em 0.5em 0.25em 0.5em;
+}
+header {
+margin-bottom: 4em;
+text-align: center;
+}
+#TOC li {
+list-style: none;
+}
+#TOC ul {
+padding-left: 1.3em;
+}
+#TOC > ul {
+padding-left: 0;
+}
+#TOC a:not(:hover) {
+text-decoration: none;
+}
+code{white-space: pre-wrap;}
+span.smallcaps{font-variant: small-caps;}
+div.columns{display: flex; gap: min(4vw, 1.5em);}
+div.column{flex: auto; overflow-x: auto;}
+div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
+
+ul.task-list[class]{list-style: none;}
+ul.task-list li input[type="checkbox"] {
+font-size: inherit;
+width: 0.8em;
+margin: 0 0.8em 0.2em -1.6em;
+vertical-align: middle;
+}
+.display.math{display: block; text-align: center; margin: 0.5rem auto;}
+
+html { -webkit-text-size-adjust: 100%; }
+pre > code.sourceCode { white-space: pre; position: relative; }
+pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
+pre > code.sourceCode > span:empty { height: 1.2em; }
+.sourceCode { overflow: visible; }
+code.sourceCode > span { color: inherit; text-decoration: inherit; }
+div.sourceCode { margin: 1em 0; }
+pre.sourceCode { margin: 0; }
+@media screen {
+div.sourceCode { overflow: auto; }
+}
+@media print {
+pre > code.sourceCode { white-space: pre-wrap; }
+pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
+}
+pre.numberSource code
+{ counter-reset: source-line 0; }
+pre.numberSource code > span
+{ position: relative; left: -4em; counter-increment: source-line; }
+pre.numberSource code > span > a:first-child::before
+{ content: counter(source-line);
+position: relative; left: -1em; text-align: right; vertical-align: baseline;
+border: none; display: inline-block;
+-webkit-touch-callout: none; -webkit-user-select: none;
+-khtml-user-select: none; -moz-user-select: none;
+-ms-user-select: none; user-select: none;
+padding: 0 4px; width: 4em;
+color: #aaaaaa;
+}
+pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa;
padding-left: 4px; }
+div.sourceCode
+{ }
+@media screen {
+pre > code.sourceCode > span > a:first-child::before { text-decoration:
underline; }
+}
+code span.al { color: #ff0000; font-weight: bold; }
+code span.an { color: #60a0b0; font-weight: bold; font-style: italic; }
+code span.at { color: #7d9029; }
+code span.bn { color: #40a070; }
+code span.bu { color: #008000; }
+code span.cf { color: #007020; font-weight: bold; }
+code span.ch { color: #4070a0; }
+code span.cn { color: #880000; }
+code span.co { color: #60a0b0; font-style: italic; }
+code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; }
+code span.do { color: #ba2121; font-style: italic; }
+code span.dt { color: #902000; }
+code span.dv { color: #40a070; }
+code span.er { color: #ff0000; font-weight: bold; }
+code span.ex { }
+code span.fl { color: #40a070; }
+code span.fu { color: #06287e; }
+code span.im { color: #008000; font-weight: bold; }
+code span.in { color: #60a0b0; font-weight: bold; font-style: italic; }
+code span.kw { color: #007020; font-weight: bold; }
+code span.op { color: #666666; }
+code span.ot { color: #007020; }
+code span.pp { color: #bc7a00; }
+code span.sc { color: #4070a0; }
+code span.ss { color: #bb6688; }
+code span.st { color: #4070a0; }
+code span.va { color: #19177c; }
+code span.vs { color: #4070a0; }
+code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; }
+</style>
+</head>
+<body>
+<p><img role="img"
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0KICBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKICBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlIGRpc3RyaWJ1dGVkIHdpdGgKICB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuCiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUgdG8gWW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZS
[...]
+<h1 id="apache-daffodil-extension-for-visual-studio-code">Apache
+Daffodil™ Extension for Visual Studio Code</h1>
+<p>The Apache Daffodil™ Extension for Visual Studio Code is an extension
+to the Microsoft® Visual Studio Code (VS Code) editor which enables <a
href="https://daffodil.apache.org/docs/dfdl/">Data Format Description
+Language (DFDL)</a> syntax highlighting, code completion, and the
+interactive debugging of DFDL Schema parsing operations using <a
href="https://daffodil.apache.org/">Apache Daffodil™</a>.</p>
+<p>DFDL is a data modeling language used to describe file formats. The
+DFDL language is a subset of extensible Markup Language (XML) Schema
+Definition (XSD). File formats are rich and complex-- it requires a
+modeling language to describe them. Developing DFDL Schemas can be
+challenging, requiring a lot of iterative development, and testing.</p>
+<p>The purpose of Apache Daffodil™ Extension for Visual Studio Code is
+to ease the burden on DFDL Schema developers, enabling them to develop
+high-quality, DFDL Schemas, in less time. VS Code is free, open source,
+cross-platform, well-maintained, extensible, and ubiquitous in the
+developer community. These attributes align well with the Apache
+Daffodil™ project and the Apache Daffodil™ Extension for Visual Studio
+Code.</p>
+<h2 id="table-of-contents">Table of Contents</h2>
+<ul>
+<li><a href="#apache-daffodil-extension-for-visual-studio-code">Apache
+Daffodil™ Extension for Visual Studio Code</a>
+<ul>
+<li><a href="#table-of-contents">Table of Contents</a></li>
+<li><a
href="#bundled-tools-in-the-apache-daffodil-extension-for-visual-studio-code">Bundled
+Tools in the Apache Daffodil™ Extension for Visual Studio Code</a>
+<ul>
+<li><a href="#dfdl-syntax-highlighting">DFDL Syntax
+Highlighting</a></li>
+<li><a href="#dfdl-schema-code-completion">DFDL Schema Code
+Completion</a></li>
+<li><a href="#addition-of-intellisense-hover-capability">Addition of
+Intellisense Hover Capability</a></li>
+<li><a href="#daffodil-data-parse-debugger">Daffodil Data Parse
+Debugger</a></li>
+<li><a href="#data-editor">Data Editor</a></li>
+<li><a href="#daffodil-test-data-markup-language-tdml">Daffodil Test
+Data Markup Language (TDML)</a></li>
+</ul></li>
+</ul></li>
+<li><a href="#prerequisites">Prerequisites</a></li>
+<li><a
href="#installing-the-apache-daffodil-extension-for-visual-studio-code">Installing
+the Apache Daffodil™ Extension for Visual Studio Code</a>
+<ul>
+<li><a
href="#option-1-install-the-apache-daffodil-extension-for-visual-studio-code-from-the-visual-studio-code-extension-marketplace">Option
+1: Install the Apache Daffodil™ Extension for Visual Studio Code From
+the Visual Studio Code Extension Marketplace</a></li>
+<li><a
href="#option-2-install-the-latest-vsix-file-from-the-apache-daffodil-extension-for-visual-studio-code-release-page">Option
+2: Install the Latest .Vsix File From the Apache Daffodil™ Extension for
+Visual Studio Code Release Page</a></li>
+</ul></li>
+<li><a href="#introductory-guide">Introductory Guide</a></li>
+<li><a href="#dfdl-schema-authoring-using-code-completion">DFDL Schema
+Authoring Using Code Completion</a>
+<ul>
+<li><a href="#set-the-editor-to-dfdl-mode">Set the Editor to "dfdl"
+mode</a></li>
+<li><a href="#dfdl-schema-authoring-features">DFDL Schema Authoring
+Features</a></li>
+</ul></li>
+<li><a
href="#debugging-a-dfdl-schema-using-the-apache-daffodil-extension-for-visual-studio-codes-bundled-daffodil-data-parse-debugger">Debugging
+a DFDL Schema Using the Apache Daffodil™ Extension for Visual Studio
+Code’s Bundled Daffodil Data Parse Debugger</a>
+<ul>
+<li><a href="#debug-configuration">Debug Configuration</a></li>
+<li><a href="#dropdown-for-log-level">Dropdown for Log Level</a></li>
+<li><a href="#root-element-and-namespace-auto-suggestionsfinding">Root
+element and namespace auto suggestions/finding</a></li>
+<li><a href="#launch-a-dfdl-parse-debugging-session">Launch a DFDL Parse
+Debugging Session</a></li>
+<li><a href="#other-options-for-launching-a-dfdl-parse-debugging-session">Other
+Options for Launching a DFDL Parse Debugging Session</a></li>
+<li><a href="#setting-breakpoints-in-the-schema">Setting Breakpoints in
+the schema</a></li>
+<li><a href="#custom-dfdl-debugger-views">Custom DFDL Debugger Views</a>
+<ul>
+<li><a href="#infoset-tools">Infoset Tools</a></li>
+<li><a href="#inputstream-hex-viewer">Inputstream Hex Viewer</a></li>
+</ul></li>
+</ul></li>
+<li><a href="#dfdl-command-panel">DFDL Command Panel</a></li>
+<li><a href="#tdml-support">TDML Support</a></li>
+<li><a href="#data-editor-1">Data Editor</a>
+<ul>
+<li><a href="#navigation">Navigation</a></li>
+<li><a href="#keyboard-shortcuts">Keyboard Shortcuts</a></li>
+</ul></li>
+<li><a href="#known-issues-in-v150">Known Issues in v1.5.0</a>
+<ul>
+<li><a href="#general-issues">General Issues</a></li>
+</ul></li>
+<li><a href="#reporting-problems-and-requesting-new-features">Reporting
+Problems and Requesting New Features</a></li>
+<li><a href="#getting-help">Getting Help</a></li>
+<li><a href="#contributing">Contributing</a></li>
+<li><a href="#additional-resources">Additional Resources</a></li>
+</ul>
+<h2
id="bundled-tools-in-the-apache-daffodil-extension-for-visual-studio-code">Bundled
+Tools in the Apache Daffodil™ Extension for Visual Studio Code</h2>
+<h3 id="dfdl-syntax-highlighting"><a
href="https://github.com/apache/daffodil-vscode/wiki/Apache-Daffodil%E2%84%A2-Extension-for-Visual-Studio-Code:-v1.4.1#set-the-editor-to-dfdl-mode">DFDL
+Syntax Highlighting</a></h3>
+<p>DFDL is rich and complex. Developers using modern code editors expect
+some degree of built-in language support for the language they are
+developing, and DFDL should be no different. The Apache Daffodil™
+Extension for Visual Studio Code provides syntax highlighting to improve
+the readability and context of the text. In addition, the syntax
+highlighting provides feedback to the developer indicating the structure
+and code appear syntactically correct.</p>
+<h3 id="dfdl-schema-code-completion"><a
href="https://github.com/apache/daffodil-vscode/wiki/Apache-Daffodil%E2%84%A2-Extension-for-Visual-Studio-Code:-v1.4.1#dfdl-schema-authoring-using-code-completion">DFDL
+Schema Code Completion</a></h3>
+<p>The Apache Daffodil™ Extension for Visual Studio Code provides code
+completion, also known as “Intellisense”, offering context-aware code
+segment predictions that can dramatically speed up DFDL Schema
+development by reducing keyboard input, memorization by the developer,
+and typos.</p>
+<h3 id="addition-of-intellisense-hover-capability">Addition of
+Intellisense Hover Capability</h3>
+<p>Hovering over a DFDL schema element will provide information about
+that DFDL element. <img role="img" aria-label="DFDL-hover"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABGUAAAJtCAYAAACfac0JAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P0HcGTXlSWKauZP9ET8Py9i5r94MYqenj/vTYtkGVKkKNPqllqm1TLdkii2Wi1R6lbLUCJlKVKiZ5Es732hDKrgvfdIeO8TNpHIhEtkAgkPpDfIRMKsv/dNZBUKlWVRxSqSeyFWXHfMPueee/LuhXPP+Yh3YQFCoVAoFAqFQqFQKBQKhcL3lh8xT0xDKBQKhUKhUCgUCoVCoVD43vIjLRoTWnqEQqFQKBQKhUKhUCgUCoXvJT/Srp9Ci8aMxi6TUCgUCoVCoVAoFAqFQqHwPeJHkr
[...]
+<h3 id="daffodil-data-parse-debugger"><a
href="https://github.com/apache/daffodil-vscode/wiki/Apache-Daffodil%E2%84%A2-Extension-for-Visual-Studio-Code:-v1.4.1#debugging-a-dfdl-schema-using-the-apache-daffodil-extension-for-visual-studio-codes-bundled-daffodil-data-parse-debugger">Daffodil
+Data Parse Debugger</a></h3>
+<p>The Apache Daffodil™ Extension for Visual Studio Code provides a
+Daffodil Data Parse Debugger which enables the developer to carefully
+control the execution of Apache Daffodil™ parse operations. Given a DFDL
+Schema and a target data file, the developer can step through the
+execution of a parse line by line, or until the parse reaches some
+developer-defined location, known as a breakpoint, in the DFDL Schema.
+What is particularly helpful is that the developer can watch the parsed
+output, known as the "infoset", as it’s being created by the parser,
and
+see where the parser is parsing in the data file-- enabling the
+developer to quickly discover and correct issues, improving DFDL Schema
+development and testing cycles.</p>
+<h3 id="data-editor"><a
href="https://github.com/apache/daffodil-vscode/wiki/Apache-Daffodil%E2%84%A2-Extension-for-Visual-Studio-Code:-v1.4.1#data-editor-1">Data
+Editor</a></h3>
+<img role="img" aria-label="Data Editor" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAADo4AAAfqCAYAAADjSWjMAAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP
[...]
+
+<p>The Apache Daffodil™ Extension for Visual Studio Code provides an
+integrated data editor. It is akin to a hex editor but tuned
+specifically for challenging Daffodil use cases. As an editor designed
+for Daffodil developers by Daffodil developers, features of the tool
+will evolve quickly to address the specific needs of the Daffodil
+community.</p>
+<h3 id="daffodil-test-data-markup-language-tdml"><a
href="https://github.com/apache/daffodil-vscode/wiki/Apache-Daffodil%E2%84%A2-Extension-for-Visual-Studio-Code:-v1.4.1#tdml-support">Daffodil
+Test Data Markup Language (TDML)</a></h3>
+<p>The Apache Daffodil™ Extension for Visual Studio Code provides TDML
+support. <a href="https://daffodil.apache.org/tdml/">TDML is a way of
+specifying a DFDL schema, input test data, and expected result or
+expected error/diagnostic messages, all self-contained in an XML
+file</a>. By convention, a TDML file uses the file extension
+<code>.tdml</code>, or <code>.tdml.xml</code>.</p>
+<p>TDML files can be included for inquiries about DFDL's inner workings.
+For example, when uploading files to the Daffodil users mailing list, it
+may be easier to upload a zip file containing a TDML file, the DFDL
+Schema file, the input data file, and, optionally, the infoset file.
+Sending this file to the users mailing list will allow other users to
+unpack your zip file and run your test case. It becomes even easier if
+you have multiple test cases. It allows for a level of precision that is
+often lacking, but also often required when discussing complex data
+format issues. As such, providing a TDML file along with a bug report is
+the best way to demonstrate a problem. <a
href="https://daffodil.apache.org/tdml/">You can read more about TDML on
+the Apache Daffodil™ website</a>.</p>
+<h1 id="prerequisites">Prerequisites</h1>
+<p>This guide assumes VS Code and a Java Runtime Environment (Java 8 or
+greater) are installed.</p>
+<ul>
+<li><a href="https://code.visualstudio.com/download">Install VS Code,
+version 1.82.0 or greater</a></li>
+<li><a
href="https://docs.oracle.com/goldengate/1212/gg-winux/GDRAD/java.htm#BGBFJHAB">Install
+Java Runtime 8 or greater</a></li>
+<li>On Linux, glibc 2.31 or greater is required</li>
+</ul>
+<h1
id="installing-the-apache-daffodil-extension-for-visual-studio-code">Installing
+the Apache Daffodil™ Extension for Visual Studio Code</h1>
+<p>The Apache Daffodil™ Extension for Visual Studio Code can be
+installed using one of two methods.</p>
+<h2
id="option-1-install-the-apache-daffodil-extension-for-visual-studio-code-from-the-visual-studio-code-extension-marketplace">Option
+1: Install the Apache Daffodil™ Extension for Visual Studio Code From
+the Visual Studio Code Extension Marketplace</h2>
+<p>The Apache Daffodil™ Extension for Visual Studio Code is available in
+the <a href="https://marketplace.visualstudio.com/vscode">Visual Studio
+Code Extension Marketplace</a>. This option is recommended for most
+users.</p>
+<h2
id="option-2-install-the-latest-vsix-file-from-the-apache-daffodil-extension-for-visual-studio-code-release-page">Option
+2: Install the Latest .Vsix File From the Apache Daffodil™ Extension for
+Visual Studio Code Release Page</h2>
+<p>The latest <code>.vsix</code> (the file extension used for VS Code
+extensions) file can also be downloaded from the Apache Daffodil™
+Extension for Visual Studio Code <a
href="https://github.com/apache/daffodil-vscode/releases">releases
+page</a> and installed by either:</p>
+<ul>
+<li>Using the command-line via
+<code>code --install-extension <path-to-downloaded-vsix-file></code>;
+or</li>
+<li>Use the "Extensions: Install from VSIX" command from within VS
Code
+by opening the Command Palette (Mac = Command+Shift+P, Windows/Linux =
+Ctrl+Shift+P), and typing <code>vsix</code> to bring up the command and
+pointing it at the downloaded <code>.vsix</code> file.</li>
+</ul>
+<h1 id="introductory-guide">Introductory Guide</h1>
+<p>For beginners that are new to the extension, please read our <a
href="https://github.com/apache/daffodil-vscode/wiki/Introduction-to-Daffodil-VS-Code-Extension">introductory
+guide</a> to quicky get started using the extension.</p>
+<h1 id="dfdl-schema-authoring-using-code-completion">DFDL Schema
+Authoring Using Code Completion</h1>
+<h2 id="set-the-editor-to-dfdl-mode">Set the Editor to "dfdl"
mode</h2>
+<p>The extension will automatically detect files with the DFDL Schema
+extension <code>dfdl.xsd</code> and set the editor window to dfdl mode
+in the bottom right of the status bar.</p>
+<img role="img" aria-label="image" width="814" height="452" alt="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAy4AAAHECAYAAADf835mAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhe7L0JYBzFlf//te77tm5ZsiXZFrZlWz6wnRibw2DHXE5InMCPsOBkQzZLSPZHsr+/2WS9ZOG3m7Bswm5CsgmwLD/IOhdhMcE4EAxOMPiMbYx8SEayLkvWfY1O+1+vunumu6dnpkeakUby+0Bb093V1dVV1dX16r1XNSM7O/syTKSnp6OtrU3dY+zAecYw/kPvTW9vr7rHMMEjISGB22iGYZgpTpj6l2EYhmEYhmEYJmRhwYVhGIZhGIZhmJCHBReGYRiGYRiGYUIeF
[...]
+
+<p>In the event automatic DFDL file detection doesn't work, one can
+manually select the editor to be in DFDL mode. This can be done by
+selecting the language mode in the bottom right of the status bar and
+then configuring file associations.</p>
+<img role="img" aria-label="image" width="550" height="157" alt="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAiYAAACdCAYAAACAXLPZAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAADK5SURBVHhe7Z0NeBXVnf+/4V1uAPNiiC6BJrEkLARqTHWlvFU01RUCbFRc+gjUkH/R+g9YU3eBFpDdwFM3VqBd8f9AKsGnbqnLIgG1xWKDIC0Y6ULoQmyTFJJViEmuwVzlRcj/nJkzd+a+5t7k5uYm+X58RmbOzJw5c+bMOd/z+/3mJioxMbENhBBCCCFdxIXGFoyMH6G2/NNP/UsIIYQQ0u1QmBBCCCEkYqAwIYQQQkjEQGFCCCGEkIiBwoQQQgghEQOFCSGEEEIiBgoTQgghh
[...]
+
+<img role="img" aria-label="image" width="684" height="170" alt="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqwAAACqCAYAAABoBB0EAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAADXGSURBVHhe7d0LdFX1nS/wLwI+EhJOCAShPBLAaAkSI1KBCdjCHZVi1N6OqbTFLJq21jU0bacu0lzbqTNdXiZe+2KYZW0bWTSd0sbprRqp1blQhYwwVYwgoMZHIFqQhMCBEN7I/f/++7/P+Z99zj45eZGT5PtZay/24+zX/xzW+ea3/3ufIVdeeeUF9CMXLvgfbrxlRMnqEzdcb8b6p9d3v2HGiAankydPmjGi/mXIkCFmLFq8ZX2hXwVWbyBlQCUiIiLqGd6Qmkyhtd8EVjucx
[...]
+
+<h2 id="dfdl-schema-authoring-features">DFDL Schema Authoring
+Features</h2>
+<p>Auto-suggest is triggered using <code>CTRL + space</code> or typing
+the beginning characters of an item. Typing one or more unique
+characters will further limit the results.</p>
+<p>📝 <strong>NOTE:</strong> Intellisense is <em>context aware</em>, so
+there is no need to begin a block with <code><</code>, just start
+typing the tag name, and code completion will automatically handle it as
+appropriate.</p>
+<p>Code completion can be used to add a schema block, with just a couple
+of keystrokes. Code completion can make short work out of completing a
+DFDL Format Block, offering context-sensitive suggestions for attribute
+and element values.</p>
+<p>The <code>></code> or <code>/</code> characters close XML tags.
+Use <code>tab</code> to select an item from the dropdown and to exit
+double quotes.</p>
+<p>Code completion supports creating self-defined
+<code>dfdl:complextypes</code> and <code>dfdl:simpleTypes</code>.</p>
+<p>The <code>tab</code> key completes an auto-complete item within an
+XML tag. After auto-complete is triggered, typing the initial character
+or characters will limit the suggestion results. Inside an XML tag a
+<code>space</code> or <code>carriage return</code> will trigger a list
+of context-sensitive attribute suggestions.</p>
+<details>
+<summary>Step-by-step IntelliSense demo</summary>
+
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA80AAAKlCAYAAADxZg52AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7L0FmB1HlqZ9Z+nffXZ2d3aWZnamB7bdllQlM7VBtrtN7Ta0mdmWbKHFWCVmS7JFFrNkyWJmZmaWLGZmtr8/3yydcur6VqlKVSWVXOfU8z11b2bEiRMnIiPjixOZN3bq1CkdPnxYW7Zs0ebNm/XDDz84HA6Hw+FwOBwOh8NRYLFp0ybt3btXR48eVezEiRM6cOBASJoTJXY4HA6Hw+FwOBwOh6MggYDynj17QuIcgznzwUmzw+FwOBwOh8PhcDgcaaR59+7d2r59u2JHjhwJvyRK6HA4HI40bN261eFwOBz5GB4
[...]
+<p>Install the Apache Daffodil VS Code Extension from the VS Code
+Marketplace.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P0HdBzH2eaLf+eePWf3/vfs2bv37r0bPtuf/Vm2GJVtyTlLTpIsB9mSLcuyMnMmQYA5gSBBBCLnnHPOOeecc5qEwQTMIJJ8/vX2YMghNMxgAt/nnB8wXV1dXV3dXV1PV3X3v/T394NhGIZhGIZhGIZhmC8yMDAAtVoNNs8MwzAMwzAMwzAMcwPYPDMMwzAMwzAMwzDMLWDzzDAMc5tQhckwDMM8PliryxmGYe4WqlfYPDMMw9wEqij7+vrQ09PDMAzDPEaY6/Dl9TrDMMzdwOaZYRjmFpBxbm5uRkVFBUpLS1F
[...]
+<p>Open a schema file in the editor and set the language mode located in
+the bottom right corner to dfdl. Click the language in the bottom right
+of the status bar or type Ctrl+Shift+p and enter 'language mode', then
+select dfdl from the list of available languages.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P13dB3HufYLnv9mZs2adee7c9fMd++xfY4/BzEoWbIt55xtWZZtyZazLMmSlajInMScE0ASOUciZ4AAQQBEzjlthL2xkXPaSCT1TD0FNrUJbgaAIAiJb631ALurK3V1en/9Vlf/R3NzM0Qi0eKqqalJy2QyaTU2Nl5VQ0MD6uvrUVdXh9ra2mtUU1MjEolEIpFIdI3m2gu0IWhL0KawtzEMu8OwQxzZKCKRaP5qaWnBwMAABJ5FokXWjcDZHph5I6yurtaqqqq6qsrKSpFIJBKJRKJrZG8rGPaDAdUGSAtAi0R
[...]
+<p>Press ctrl+space in the empty editor window. The XML version
+declaration should appear as the only choice. Select that choice by
+pressing the enter key.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P0HfBbXnfYPe+uz5b+7z+67zz4lZTebxAbR3Fvi2LETO3FiO3bcu40rvRdJ9CaKKBIgISTRBAgkEAj13nvvvffeG+V6zzW3Bm7kGxAgAZZ+1+fzle6ZOW3OtHPNOTNzX3FxMQRBEARBEARBEARB+C4lJSVobm6GmGdBEARBEARBEARBuAZingVBEARBEARBEAThBoh5FgRBGCY8YQqCIAjfH0ydywVBEG4VnlfEPAuCIFwHniiLiopQUFAgCIIgfI/Qz+FDz+uCIAi3gphnQRCEG0DjnJ6ejpiYGERGRiIqKgr
[...]
+<p>Press ctrl+space again and the schema choice will show. Press enter
+to accept the schema choice.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7L0HdBzJneap2b25vX3rbm9vb43MSKOWmqadWqYljWZkR7ZbUrdce8d2JJveggC9BwmSMCRAEAAJECC899577733qCoUXMED38WXhSSL6CIJkKBpIv7vfUBl+IyMjIxfRmTmFxobGyElJSUlJSUlJSUlJSUlJfVZNTU1QafTQcKzlJSUlJSUlJSUlJSUlNQtJOFZSkpKSkpKSkpKSkpKSuoOkvAsJSUltUCxw5SSkpKS+vzIXF8uJSUldbdivyLhWUpKSuo2YkfZ0NCAuro6KSkpKanPkdQ+fH6/LiUlJXU3kvA
[...]
+<p>Select null, or one of the other choices in the choice list. If you
+select null for no namespace, you will need to backspace over the null
+character to remove it. If you want to type in a different namespace
+choice, remove null and type in your namespace choice followed by a
+colon ‘:’. If you select a namespace option here, it will be used
+throughout the schema as a namespace prefix to standard XML elements.
+The dfdl namespace prefix will automatically be added to dfdl elements.
+After selecting or writing in a namespace option, press the tab key to
+move to the end of the schema tag block.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P0HdB3H2fcJes6e7+zu7M6Z/WbmzH47r+339WvZYpAsWQ6yZb+2ZcmWg7KVE0UxiTkTRCAJEgQJIkcCBJFzzjnnnHPO8QZc4OIG5P/W0xdNXkIXIECCQWI95/yB21XVVdVV1dX166ru/l53dze4uLi4uLi4uLi4uLi4uLi+qZ6eHsjlcnB45uLi4uLi4uLi4uLi4uJaRRyeubi4uLi4uLi4uLi4uLjuIg7PXFxcXOsUdZhcXFxcXN8eGerLubi4uO5V1K9weObi4uJaQ9RRdnV1oaOjg4uLi4vrWySxD1/Zr3N
[...]
+<p>At the end of the schema tag block, you can type ‘>’ to auto-end
+the schema block. Intellisense will place the end tag character on the
+schema open tag block, create the schema closing tag, and position the
+cursor between the tags.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P1lkB3HurYNnn8zExMT30zMxPe9h8959zmbmbfPRtvb2/Y2M8u2JNuSLLAli5kli5mZmZmZpVa3Wq3mVjMzwz3PVWuVvNReklpSi6x8Iu5evaqykiszr8ysWv+QkJAgJycnJycnJycnJycnJyenrysxMVH5+fly8Ozk5OTk5OTk5OTk5OTkdA05eHZycnJycnJycnJycnJyuoEcPDs5OTk1UTSYTk5OTk4PjsK15U5OTk63KtoVB89OTk5O1xENZXx8vGJjY52cnJycHiD5bXjjdt3JycnpVuTg2cnJyekGApw
[...]
+<p>Press ctrl+space to get a list of element type choices available
+within the schema tags.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P1lkB3HurYNnn8zExMT30zMxPe9h8959zmbmbfPRtvb2/Y2M8u2JNuSLLAli5kli5mZmZmZpVa3Wq3mVjMzwz3PVWuVvNReklpSi6x8Iu5evaqykiszr8ysWv+QkJAgJycnJycnJycnJycnJyenrysxMVH5+fly8Ozk5OTk5OTk5OTk5OTkdA05eHZycnJycnJycnJycnJyuoEcPDs5OTk1UTSYTk5OTk4PjsK15U5OTk63KtoVB89OTk5O1xENZXx8vGJjY52cnJycHiD5bXjjdt3JycnpVuTg2cnJyekGApw
[...]
+<p>Scroll or arrow down to see and select an option.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABE0AAANECAYAAABFN9FnAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7L0FeF1Hnuad2dmd2Z1Z3p39Zma3Ybo7ZIe60z0N0zQN6Z7uTtJhdDgxxMy2bMsgy5ZlyZYsZmaLmVm6oitmZmam96v3XB1bVq4TGWRIqp7n99x7z6lTfOrU/71VdR5YXFwEWVhYUJifn1eYm5v7DLOzsxKJRCKRSCQSiUQi0QNtpomJMTQ1NSA5ORlBQUFIT09XaGtru2J30d7Sd/39jGozjoyMYGpqSq8ffbA8ent7UVNTo9DV1YXh4WFRjhOYnJxUwpqZmdF7rURyK6htdjmqHsJ2qd6vD6g/loslaiBsnGR6eloikUgk
[...]
+
+<p>Or type the first character of an item to see only the items
+beginning with that character.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABE0AAANFCAYAAACOawLCAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7L0FYF1HmiXsnt3Z3dmZf2Z2qKenId3pcDrN05SmNCSdDpPjxBRDzMy2ZJAtsyywZbEFlkUWMzMzv/fEbDEznr/OfXqOrDzHKFPqS46fbt26xfB951bVnWdla4bqgUmMjE+iMTME7n7+cMusBjCFqckJTLakwD04GLG5akxOTmJqahxTE604fXQ3PCNTUNM5grGBHnSUqxAbXIyueg087BwQFBaPttFJTI4PY7K/DBnl9WjrHRLhAkOdV1CWFIILFwJQ3daPkUmgq6sLZy0s8G9f/S9sO2KOjW9+H0/85//F3/zPf8E3Hvs+
[...]
+
+<p>Press the Enter/Return key to insert the selected choice.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAByMAAAVhCAYAAAAnSiIaAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7P19dBVFvvcNZ53HtS7u6/kn5z5nrcla98wavY7XjJzjOc9wZI5yX84LGVHEYVQYZyQOjAzgCxERMYhGMIwgAwRHEVQwooLAgAYhGpBoAHkJAhLkLUEIoEFJeAlBooYRPb+nft1Ve1f3rt67e79l753vd63PIru6urqqurqzqW9+VXnffPMN/f3vf7e4cOECdXZ20tdff23x1Vdf0ZdffmnR0dFhcf78eQAAAAAAAAAAAACQw+zevZs2bdqUdLZu3UqffvopHTp0iE6cOEEffvghzZw5k0aOHEmvvvqqlWfHjh20b98+K88n
[...]
+
+<p>Attributes can be supplied in the sequence open tag. To get a list of
+attribute choices press space at the cursor position. Intellisense will
+open a menu that allows a selection of an attribute. If the attribute
+has predetermined choices a list of those will appear after the
+attribute is selected.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P1nlBVHurYNnn8zs2bN+mbWzPq+95zTx719Tntv1WovqdWSWt57JAGSAGEkEN57EN5777333nsoqiiK8kV5772557ly70Sb0gYKKIxEPGvdtWtnRobPiLgiInP/U0JCgpycnJycnJycnJycnJycnL6qxMRE5efny8Gzk5OTk5OTk5OTk5OTk9M15ODZycnJycnJycnJycnJyekGcvDs5OTk1ETRYDo5OTk5fX0Uri13cnJyulXRrjh4dnJycrqOaCjj4+MVGxvr5OTk5PQ1kt+GN27XnZycnG5FDp6dnJycbiD
[...]
+<p>If the attribute has predetermined choices a list of those will
+appear after the attribute is selected. The separator attribute doesn’t
+have a specific list of choices. The comma was manually entered to
+provide a value to the field. Press tab to exit the double quotes. The
+cursor will be positioned immediately after the ending double quote.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P1lkB3HurYNnn8zExMT30zMxPe9h8959zmbmbfPRtvb2/Y2M8u2JNuSLLAli5kli5mZmZmZpVa3Wq3mVjMzwz3PVWuVvNReklpSi6x8Iu5evaqykiszr8ysWv+QkJAgJycnJycnJycnJycnJyenrysxMVH5+fly8Ozk5OTk5OTk5OTk5OTkdA05eHZycnJycnJycnJycnJyuoEcPDs5OTk1UTSYTk5OTk4PjsK15U5OTk63KtoVB89OTk5O1xENZXx8vGJjY52cnJycHiD5bXjjdt3JycnpVuTg2cnJyekGApw
[...]
+<p>Type space again to choose another attribute, or type / to create a
+self-closing tag. After typing a slash to close the tag, the cursor will
+be positioned at the end of the tag. Press enter to continue on the next
+line.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P1nlBVHurYNnn8zs2bN+mbWzPq+9/jTb5/T3hu1Wt2t7pbUakkt7z2SAEmAMBII7z0I77333nvvPRRVFFC+KO+9N/c8V+6daFPaQAGFE/GsddeunRkZPiPiiojM/U/x8fFycnJycnJycnJycnJycnL6phISEpSXlycHz05OTk5OTk5OTk5OTk5OV5GDZycnJycnJycnJycnJyen68jBs5OTk1MjRYPp5OTk5HT/KFxb7uTk5HSzol1x8Ozk5OR0DdFQxsXFKSYmxsnJycnpPpLfhjds152cnJxuRg6enZycnK4
[...]
+<p>Note: If you type the slash after a space, a list of suggested
+elements will appear after the closing tag. Press escape to close the
+suggestion list. Typing enter will select the item currently highlighted
+in the list.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABEkAAAM+CAYAAADmZV+6AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7L0FeGTXma7rzOScM/fce885987MHUhmziSx3WRKHHA4jpNMnMR2zLEdc9vd7na7mRmlFjMzMzOUWCpVSSoGqcTMzNDfXf8u7W61XE1qqcnrf55XqtqweK+9/q/WXvuhickpjE9MXmZsfEJgdGz8S4yMjnE4HA6Hw7kPoXv75NQUoqKiEB+fgNzcfJSVlaOqqhoqlRpqtRYajQ5arR46nYHD4XDuC/R6I4zGWhgMZmprTZDLqhAdHQsfH3/hu9FYd9UxdI6lsG4VMe6ysgqhD73VcKm/raszobW1HS0tRBvnAaa7uxdFRWWw
[...]
+
+<p>Press ctrtl+space to get a list of element choices.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABEgAAAM/CAYAAADC++chAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7L0HfBzHne8p7+7bt/fubt+7293bYO++tS2JSZLlLOcg22vZVk6WZGVKpEgx5xxAEiByzjnnnMMgA4MZAJNnAAxyzjkH/q7+PWgShIYBIMCkqs/nC8x0V1eu6vr/prr6kfGJSYyNT2B0bFxgZHQMwyOjSxjB0DCHw+FwOJwHFbq3070+OycHcrkcDQ0N6O7uxtDQEMbHxzExMYGpqSlMT09jZmbmoWZ2dhZXrlxBfX0DMjOzkJCQiPz8ApSXS1FVVQ2VSg21WguNRgutVg+dzsCg/xwO535BrzcIVFTIkJqajsTEZNaXkyCR
[...]
+
+<p>A tag can also be closed by typing ‘>’ at the cursor position
+after the tag.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P1nlBVHurYNnn8zs2bN+mbWzPq+95zTx719Tntv1WovqdWSWt57JAGSAGEkEN57EN5777333nsoqiiK8kV5772557ly70Sb0gYKKIxEPGvdtWtnRobPiLgiInP/U0JCgpycnJycnJycnJycnJycnL6qxMRE5efny8Gzk5OTk5OTk5OTk5OTk9M15ODZycnJycnJycnJycnJyekGcvDs5OTk1ETRYDo5OTk5fX0Uri13cnJyulXRrjh4dnJycrqOaCjj4+MVGxvr5OTk5PQ1kt+GN27XnZycnG5FDp6dnJycbiD
[...]
+<p>Closing a tag with a ‘>’ will normally result in a closing tag on
+a new line and the cursor positioned between the two tags. (If an open
+tag is split over multiple lines, the closing tag is not moved to the
+next line. This behavior can be changed based on community input).
+Select xs:element name from the suggestions list.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P1nlBVHurYNnn8zs2bN+mbWzPq+95zTx719Tntv1WovqdWSWt57JAGSAGEkEN57EN5777333nsoqiiK8kV5772557ly70Sb0gYKKIxEPGvdtWtnRobPiLgiInP/U0JCgpycnJycnJycnJycnJycnL6qxMRE5efny8Gzk5OTk5OTk5OTk5OTk9M15ODZycnJycnJycnJycnJyekGcvDs5OTk1ETRYDo5OTk5fX0Uri13cnJyulXRrjh4dnJycrqOaCjj4+MVGxvr5OTk5PQ1kt+GN27XnZycnG5FDp6dnJycbiD
[...]
+<p>Press ctrl+space on the empty line to get a list of element choices
+available between tags.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABFMAAANBCAYAAAAsnfGPAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7P0FmCXHne2LyjQz99z7zjnvzZk7M2c8c8a2LKlblizLJDNo7BmzZUmWLVvMarWambGqi5mZmZmZeVftXVW7mJkZer1YuSu7q0u7W82kiO/7ddfOjAzOyPivjIh8ANJJJ5100kknnXSfUNfV1YX8/HxkZGSisrIaWm0jWlra0NHRhc7ObnR396Cnpw+9vRKJRHJzYd/S3z+I0dFxTE3NYHJyWiKR3AJmZuYwNDqDf/q+CT7zpCM+95Q//uZ7oYIofO57Mfjc92Px2e/H4TPke/Hi73h87ocJgkTlbx4zHDcc4zkev2Yx5fz5
[...]
+
+<p>Select a choice by pressing enter. In this example the element tag
+with the attribute name was selected and a value for name entered. Press
+tab to exit the double quotes after entering a name value. The name
+attribute doesn’t have a specific list of choices.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P1nlBVHurYNnn8zs2bN+mbWzPq+95zTx719TnvvW+0ltVpSy7e8QxIgCRBGAuG9B+G99957772HooqiKF+U996be54r9060KW2ggMKJeNa6a9fOjAyfEXFFROb+p4SEBDk5OTk5OTk5OTk5OTk5OX1ViYmJys/Pl4NnJycnJycnJycnJycnJ6dryMGzk5OTk5OTk5OTk5OTk9MN5ODZycnJqYmiwXRycnJyenAUri13cnJyulXRrjh4dnJycrqOaCjj4+MVGxvr5OTk5PQAyW/DG7frTk5OTrciB89OTk5ONxD
[...]
+<p>Type ctrl+space to get a list of attribute choices for the element
+tag.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABEwAAANFCAYAAABhqWn8AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7P0FnF3HnecNKzPZ3Xn2ed7dfd+ZeWZmk5mdJCZJseOwJ5mgQw44McdOzLIlWRYzs7rVzMzMzMzMt/veZmZmbv3e+p3bV2q1rqUWg6s+n690+5w6xadO/X+nqs46CHfp0qXLLC0tKSwuLl7DwsKCRCKRSCQSySMLXXx8AgIDg5CUlIycnFwUF5egoqISVVUqqFQ1qK5Wo6ZGI5FIHgDU6lrU1tZBo9FSV9eA4qIScQ8Hw8nJVfm7trb+Kj+8Rl9YN4su7tzcfNE/VN90uOxL6usb0N7eibY20iF5hOnt7UdmZi4MDc3x5psf
[...]
+
+<p>Selecting an attribute that has predetermined choices will supply a
+list of those choice. Select an item from the list and press enter. End
+the tag with ‘>’ to get a closing tag on a new line with the cursor
+positioned between the tags.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P1nlBVHurYNnn8zs2bN+mbWzPq+95zTx719Tntv1WovqdWSWt57JAGSAGEkEN57EN5777333nsoqiiK8kV5772557ly70Sb0gYKKIxEPGvdtWtnRobPiLgiInP/U0JCgpycnJycnJycnJycnJycnL6qxMRE5efny8Gzk5OTk5OTk5OTk5OTk9M15ODZycnJycnJycnJycnJyekGcvDs5OTk1ETRYDo5OTk5fX0Uri13cnJyulXRrjh4dnJycrqOaCjj4+MVGxvr5OTk5PQ1kt+GN27XnZycnG5FDp6dnJycbiD
[...]
+<p>Some attributes in the suggestion list will have predefined values
+others like "length" require the user to enter a value between the
+quotes.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABFIAAANDCAYAAACOlzu6AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7L0FfFxHuubte3e/e7/d/XZ2L8wdyvBMJolnMnTvcDKQSWbC6CROYgcc2zEzowxiWWaBLYuZmZnVgpbU6hYzM7P8fPWcVjuy004Mkh079f5+f8t9oE7Rqar3OXXqLLp8+TJmZmYU5v5/LtPT0xKJRCKRSCQSiUQikUgk9wXGtA+DJsK/5Hp2lZBCGODU1NRVTE5OSiQSiUQikUgkEolEIpHcF1yre8wVV+YKKsZskUE8MQgoExMTCuPj41cYGxuTSCQSiUQikUgkEolEIrkvMOgdBg3EIK4Y9BGDkGJMTFGEFB7MkwwCCgMd
[...]
+
+<p>Press tab after entering value for length to place the cursor outside
+of the quotes. Press ctrl+space to add another attribute from the list.
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABEwAAANFCAYAAABhqWn8AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7P0FnF3HnecNKzPZ3Xn2ed7dfd+ZeWZmk5mdJCZJseOwJ5mgQw44McdOzLIlWRYzs7rVzMzMzMzMt/veZmZmbv3e+p3bV2q1rqUWg6s+n690+5w6xadO/X+nqs46CHfp0qXLLC0tKSwuLl7DwsKCRCKRSCQSySMLXXx8AgIDg5CUlIycnFwUF5egoqISVVUqqFQ1qK5Wo6ZGI5FIHgDU6lrU1tZBo9FSV9eA4qIScQ8Hw8nJVfm7trb+Kj+8Rl9YN4su7tzcfNE/VN90uOxL6usb0N7eibY20iF5hOnt7UdmZi4MDc3x5psf
[...]
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P1nlBVHurYNnn8zs2bN+mbWzPq+95zTx719Tntv1WovqdWSWt57JAGSAGEkEN57EN5777333nsoqiiK8kV5772557ly70Sb0gYKKIxEPGvdtWtnRobPiLgiInP/U0JCgpycnJycnJycnJycnJycnL6qxMRE5efny8Gzk5OTk5OTk5OTk5OTk9M15ODZycnJycnJycnJycnJyekGcvDs5OTk1ETRYDo5OTk5fX0Uri13cnJyulXRrjh4dnJycrqOaCjj4+MVGxvr5OTk5PQ1kt+GN27XnZycnG5FDp6dnJycbiD
[...]
+<p>Hovering over a highlighted attribute in the suggestion list will
+show an arrow on the right. Click the arrow to see a description of the
+attribute if the description is not already visible.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABEkAAANACAYAAADXTTMLAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7P0FmGTHneYLyzMLc/fu3d3vm5k7M2vP7NgWdbckyywzyPZYBtliS7K4pW51q9XMjFVdzMzMzMzMlZVZzMzM1e+N92Rld3Upm6sapIjn+VVlnhMn+MSJ/5sRcR7CCnfp0qVrsrS0JJFIJBKJRCKRSCQSiUTyuUCf9qGIJCsP6DwvLi5+hoWFBYlEIpFIJBKJRCKRSCSSBx59usdDK8UR3UF6np+fv8zc3JxEIpFIJBKJRCKRSCQSyecOnfZBLUQRSVbOHlkpjMzOzmJmZkZhenpaIpFIJBKJRCKRSCQSieRzg07zINRAHlot
[...]
+
+<p>Selecting an attribute that has predetermined choices will supply a
+list of those choice. Select an lengthKind from the list and press
+enter.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABEsAAANDCAYAAABVLJGYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7L0FnGTHnefZnvHuzu3d7e7d7NzMrD2zY1vULUuWWWO2ZRjZlmyxJVncUrfUajUzY1UXMzMzMzNzVmUWMzNz9e/i97Kyu7qUzVVNivh8vlWZ78ULfvHi/8uIeBsuXrwIsrS0pLC4uHgJftedW1hY0IvuOn3nrgfjmJubQ2trK3Jzc1FdXY2Ojg4MDg5iYmIC09PTmJ2dVfzMz8/rDUMikUgkEonkZuHYpa6uDp6eXoiLi0dGRiYKCgpRVlaOykoVqqqqoVLVoKZGI5FI7kHU6lrU1tZBo9FSV9eA4qISBAYGw8nJVfleW1t/
[...]
+
+<p>Select one of the predefined values for lengthKind from the list of
+values.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABEkAAAM6CAYAAAB99B2sAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7P0FmF3Hne4LKzMH5p577jnn+2bmzsxJZs4kcWxLjh2HHQYnmTjgxBzbMcuWbFkWM2O3mpmZmZmZuTc0MzNz6731rt1barW3ZEG3ZNlVz/Pr3nutWsVVq/7vrlVr0+XLl3E9lpeXJRKJRCKRSCQSiUQikUg+ExjSPlajiCR6z0tLSx9jcXFRIpFIJBKJRCKRSCQSieS+x5DusVpA2aQ/SM8LCwtXmJ+fl0gkEolEIpFIJBKJRCL5zKHXPlaLJxRKFJFktTAyNzeH2dlZhZmZGYlEIpFIJBKJRCKRSCSSzwx6zYNQA9GLJhRL
[...]
+
+<p>End the tag with ‘>’ to get a closing tag on a new line with the
+cursor positioned between the tags. On the new line press ctrl+space to
+get a list of element choices for the element tag.</p>
+<img role="img" width="975" height="678"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P1nlBVHurYNnn8zs2bN+mbWzPq+95zTx719Tntv1WovqdWSWt57JAGSAGEkEN57EN5777333nsoqiiK8kV5772557ly70Sb0gYKKIxEPGvdtWtnRobPiLgiInP/U0JCgpycnJycnJycnJycnJycnL6qxMRE5efny8Gzk5OTk5OTk5OTk5OTk9M15ODZycnJycnJycnJycnJyekGcvDs5OTk1ETRYDo5OTk5fX0Uri13cnJyulXRrjh4dnJycrqOaCjj4+MVGxvr5OTk5PQ1kt+GN27XnZycnG5FDp6dnJyc
[...]
+
+<p>Select annotation from the list of choices for element</p>
+<img role="img" width="975" height="678"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P1nlBVHurYNnn8zs2bN+mbWzPq+95zTx719Tntv1WovqdWSWt57JAGSAGEkEN57EN5777333nsoqiiK8kV5772557ly70Sb0gYKKIxEPGvdtWtnRobPiLgiInP/U0JCgpycnJycnJycnJycnJycnL6qxMRE5efny8Gzk5OTk5OTk5OTk5OTk9M15ODZycnJycnJycnJycnJyekGcvDs5OTk1ETRYDo5OTk5fX0Uri13cnJyulXRrjh4dnJycrqOaCjj4+MVGxvr5OTk5PQ1kt+GN27XnZycnG5FDp6dnJyc
[...]
+
+<p>Type ctrl+space to get the list of choices for the annotation
+tag.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P1nlBVHurYNnn8zs2bN+mbWzPq+95zTx719Tntv1WovqdWSWt57JAGSAGEkEN57EN5777333nsoqiiK8kV5772557ly70Sb0gYKKIxEPGvdtWtnRobPiLgiInP/U0JCgpycnJycnJycnJycnJycnL6qxMRE5efny8Gzk5OTk5OTk5OTk5OTk9M15ODZycnJycnJycnJycnJyekGcvDs5OTk1ETRYDo5OTk5fX0Uri13cnJyulXRrjh4dnJycrqOaCjj4+MVGxvr5OTk5PQ1kt+GN27XnZycnG5FDp6dnJycbiD
[...]
+<p>Select a choice and press ctrl+space to supply a list of choices
+available in the appinfo tag set.</p>
+<p>Select the only choice, appinfo then press ctrl+space to supply a
+list of choices available in the appinfo tag.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABE0AAANACAYAAADeppNxAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7P0HmFzHmaUJU92zM72zuzPz/z293T1S97QkiiQAkaI8W16ipBZlKHqKpOhBAiQIwntvq1Dee++99957n1mZ5b333hfOxrlZCRSKSbAAFBwZ3/O8VZnXhL9x4zsZN+4DkCZNmjRp0qRJkyZNmjRp0qRJk/YJW7docvnyZYlEIpFIJBKJRCKRSCSS+5712hXRxFAgepaXlyUSiUQikUgkEolEIpFIPhcY0j7WQntg9Qb9yUtLS59gcXFRIpFIJBKJRCKRSCQSieS+x5DusVpQ0X9WRJPVQglPXlhYuML8/LxEIpFIJBKJRCKR
[...]
+
+<p>From the new list of choices select discriminator and press enter</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABEgAAANECAYAAACjHhojAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7P0FmFzXme6LKzMH5p577jnn/5+ZOzMnmTmTxLEtyXYcdhicZOKAE3NixyxbsmRZzIzdamZmZmZm5q6uamZm5tZ717urS2q1S9wtsNf3PL/uqg2L99rre2vttTdAmjRp0qRJkyZNmjRp0qRJkybtc25SIJEmTZo0adKkSZMmTZo0adKkfe7tlgSSy5cvSyQSiUQikUgkEolEIpE89FzPFIFE3wk6lpaWJBKJRCKRSCQSiUQikUg+E+jTPsgG3QfdgYuLi59iYWFBIpFIJBKJRCKRSCQSieShR5/uQT1kw0pRhAfOz89fYW5u
[...]
+
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P1llB1HurYNnn8zs2bN+mbWzPq+95zTh94+p5m53Wy73bbb3GaSbUm2JVlkyWJmyWJmZmZmZqlUJSouFTMz3PNcuXfKW+UtqUoqlWQrnrXuqr0zI4MzIq6IyNz/FBcXJycnJycnJycnJycnJycnpy8rPj5eubm5cvDs5OTk5OTk5OTk5OTk5HQTOXh2cnJycnJycnJycnJycrqNHDw7OTk5NVA0mE5OTk5OXx2Fa8udnJyc7lS0Kw6enZycnG4hGsrY2FhFR0c7OTk5OX2F5Lfh9dt1JycnpzuRg2cnJyen2wh
[...]
+<p>Type ctrl+space to add an attribute to the discriminator tag.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABE4AAANBCAYAAAD+zfvXAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7P0HmBzHneYJUzN7u3N7d7v7fbNzM7PSzI4kiiQAkaI8pZGnpBFlKHqKpOhBAiQIwntvu9Hee++99957X9VV7b333jfeizerC2g0C77hyIjn+XVXZUaGz8j4vxUR+dDFixexvLyMpaUlhcXFRSwsLFxifn5eIpFIJBKJRCKRSCQSieRzh177oBZCqItQI9FDzeQh/ReeXC2WzM3NYXZ2VmFmZkYikUgkEolEIpFIJBKJ5HODXvMg1ED0QspaAUURTvSiyWrBhIFMT09jamoKk5OTmJiYkEgkEolEIpFIJBKJRCJ54KHOQb2D
[...]
+
+<p>Select test from the list of attributes.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABE4AAANBCAYAAAD+zfvXAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7P0HmBzHneYJUzN7u3N7d7v7fbNzM7PSzI4kiiQAkaI8pZGnpBFlKHqKpOhBAiQIwntvu9Hee++99957X9VV7b333jfeizerC2g0C77hyIjn+XVXZUaGz8j4vxUR+dDFixexvLyMpaUlhcXFRSwsLFxifn5eIpFIJBKJRCKRSCQSieRzh177oBZCqItQI9FDzeQh/ReeXC2WzM3NYXZ2VmFmZkYikUgkEolEIpFIJBKJ5HODXvMg1ED0QspaAUURTvSiyWrBhIFMT09jamoKk5OTmJiYkEgkEolEIpFIJBKJRCJ54KHOQb2D
[...]
+
+<p>The discriminator test dfdl attribute doesn’t have a specific list of
+choices. Enter a test value like ".ne. '12345'".</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABEoAAANDCAYAAAC67vqmAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7P0FmGTHneYLyzMLc/fu3d3vm5k7M2vP7NgWdbckyywzyPZYBtliS7K4pW51q9XMjFVdzMzMzMzMlZVZzMzM1e+N92Rld3Upm6sapIjn+VVlnhMn+MSJ/5sRcR6CcJcuXbrM0tKSwuLi4mdYWFiQSCQSiUQikUgkEolEInng0ad7UA95aKVAojvBC+bn5y8zNzcnkUgkEolEIpFIJBKJRPK5Q6d96AQURShZOYtkpTgyOzuLmZkZhenpaYlEIpFIJBKJRCKRSCSSzw06zYNQA6EW8tBqkWSlQMKLpqamMDk5iYmJCYyPj0sk
[...]
+
+<p>Press tab to exit the double quotes. The cursor will be positioned
+immediately after the ending double quote. Type "/" to add the end
tag.
+Press escape to remove the suggestion list.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABFAAAANCCAYAAABBPjgiAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7P0HeFzHneYLyzN7d+fuvXd3v2927sysPbNjW5ZEypLlrHG2ZXssB1lZlmTlQEoUxZxzBIicc84555xz7kY3gEbOOefA99Z7Gk2CUEtiAEhRqnqeH4k+ofKpqv97qurcMzM7h5themZWIpFIJBLJXcjs3Dzm5heRlZWFqqoqdHR0YGhoCFNTU1hYWMDi4iKWl5exsrKCy5cvSyQSiUQikXzuuR73sQKKsQGXganpGYlEIpFIJHcp7MspomRkZqKyshJtbW0YHBzExMQE5ufnFdaKKBKJRCKRSCSfd4yJKuv5iIBiTCiZnJr+
[...]
+
+<p>To add additional attributes to an existing element tag, position the
+cursor within the opening tag, press ctrl+space, or space to get a list
+of attribute choices for that tag.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABFYAAANJCAYAAAAm57imAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7P0FmGTHneYLyzMLc/feb3e/b2buzK49s2NbltQtS5ZZY7ZleyyDLJYlWdxSS2q1mpmxqouZmZmZmbmyMouZmbn6/eI9Wae7upTNLEU8z68q80DwiYj/mxFxHoB00kknnXTSSSeddNJJJ5100kknnXTX7ez9C3FDwsr58+clEolEIpFIJBKJRCKRSO57bsbZ+xUYFlYMBaSysrIikUgkEolEIpFIJBKJRPK5wJD2sZ7LOXvf/EuFlbU3qQEsLy9/hqWlJYlEIpFIJBKJRCKRSCSS+x5Dusda0WXt5/XO0SfvorCyVlBRPWIA
[...]
+
+<p>Adding a new line anywhere in the schema and pressing ctrl+space will
+provide a list of choices available between the tags at the current
+position.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAKmCAYAAABzB6zlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P1llB1HurYNnn8zs2bN+mbWzPq+91Cfc94+p5m53Wy73bbb3GaSbUm2JVlgSxYzSxYzMzMzM0ulKkFxlYqZGe55rtw75a3yLqkklciKZ627du3MyOCMiCsiMvc/xcfHy8nJycnJycnJycnJycnJ6atKSEhQXl6eHDw7OTk5OTk5OTk5OTk5OTUiB89OTk5OTk5OTk5OTk5OTjeQg2cnJyenJooG08nJycnpwVG4ttzJycnpVkW74uDZycnJ6TqioYyLi1NMTIyTk5OT0wMkvw1v2K47OTk53YocPDs5OTndQIB
[...]
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABE4AAAM+CAYAAAAEuUTDAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7L0FmFzHne7t3e/uXr7f7r137979NsnuxizFFG+SDW7ASRxwEsd2YrYMsiyymEfSjDSCkTTMrGFmZmbq6e5hZmYmvV+9p6el0bglC0ZkV83ze6b7nDrFp079366q89ClS5ewtLSExcVFhYWFBczPz19mbm5OIpFIJBKJRCKRSCQSieQLx0r9g3oIdRFqJHqomTyk/6IXTPQXz87OYmZmBtPT0xKJRCKRSCQSiUQikUgkXzioexBqIHohZbWA8pB+poleNKFnXjw1NYXJyUlMTExgfHxcIpFIJBKJRCKRSCQSieQLA/UO6h7U
[...]
+<p>If a closing tag is deleted or missing, type ‘>’ to re-add the
+closing tag at the cursor position.
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABEsAAANDCAYAAABVLJGYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7L0FmFzHne7t3e/uXr7f7r137979NsnuJkYppniTbHADTuKA4zi2E7NlkGUx80iakUYwkoaZNczMzAzd09PDzMxMer96T09Lo3FLFozAdpWe3zPqc+oUnzr1f09VnYeWlpZw+fJl8O/i4qLCwsIC5ufnrzA3NyeRSCQSiUQikUgkEolE8oVjpf5BPYS6yEN6oYToRRL9BbOzs5iZmcH09LREIpFIJBKJRCKRSCQSyRcO6h6EGohePFFmluhnlOiFEnrgBVNTU5icnMTExATGx8clEolEIpFIJBKJRCKRSL4wUO+g7kH9Qy+c
[...]
+<p>The closing tag will be re-added and cursor will be placed at the end
+of the line.</p>
+<img role="img" width="1000"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABE0AAAM+CAYAAADvjv/AAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7L0HfB3Hfe+r5N3k9vuSe29ubl5sJ7FVKNJqdmwnbnFR3JssyZasRhWKIimKvYMkQIKd6L0Tvffe60EHTkPvvffeyN+b3x4cEoQOJRaQIsUZfb4Cz+7s9J2d/29nZh+ZnpmFRCKRSCSSzy8zs3OYm19AVlY21Go12tvbMTQ0hMnJSczPz2NxcRFLS0u4cuUKHjY3Pj6OmpoalJSUoLW1FQMDA5iYmMDc3BwWFhYe2nKRTjrppJNOOukM7qZEk6npGYlEIpFIJA8o0zNzmJ1bQGZWFiorKxXRZHBw8KpoQnGAwsnly5cVgeBh
[...]
+
+<p>XPath expressions can be code-completed.</p>
+</details>
+
+<h1
id="debugging-a-dfdl-schema-using-the-apache-daffodil-extension-for-visual-studio-codes-bundled-daffodil-data-parse-debugger">Debugging
+a DFDL Schema Using the Apache Daffodil™ Extension for Visual Studio
+Code’s Bundled Daffodil Data Parse Debugger</h1>
+<h2 id="debug-configuration">Debug Configuration</h2>
+<p>Debugging a DFDL Schema needs both the DFDL Schema to use and a data
+file to parse. Instead of having to select the DFDL Schema and the data
+file each time from a file picker, a "launch configuration" can be
+created, which is a JSON description of the debugging session.</p>
+<p>To create the launch profile:</p>
+<ol type="1">
+<li><p>Before proceeding to the next steps, ensure you have opened a
+desired working directory. Select <code>File -> Open Folder</code>
+from the VS Code menu bar. This will allow you to select a desired
+working directory.</p></li>
+<li><p>Select <code>Run -> Open Configurations</code> from the VS
+Code menu bar. This will load a <code>launch.json</code> file into the
+editor. There may be existing <code>configurations</code>, or it may be
+empty.</p></li>
+<li><p>Press <code>Add Configuration...</code> and select the
+<code>Daffodil Debug - Launch</code> option.</p></li>
+</ol>
+<p>Once the <code>launch.json</code> file has been created it will look
+something like this</p>
+<div class="sourceCode" id="cb1"><pre class="sourceCode json"><code
class="sourceCode json"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true"
tabindex="-1"></a><span class="fu">{</span></span>
+<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a> <span
class="dt">"type"</span><span class="fu">:</span> <span
class="st">"dfdl"</span><span class="fu">,</span></span>
+<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a> <span
class="dt">"request"</span><span class="fu">:</span> <span
class="st">"launch"</span><span class="fu">,</span></span>
+<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a> <span
class="dt">"name"</span><span class="fu">:</span> <span
class="st">"Ask for file name"</span><span class="fu">,</span></span>
+<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a> <span
class="dt">"program"</span><span class="fu">:</span> <span
class="st">"${command:AskForProgramName}"</span><span
class="fu">,</span></span>
+<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a> <span
class="dt">"stopOnEntry"</span><span class="fu">:</span> <span
class="kw">true</span><span class="fu">,</span></span>
+<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a> <span
class="dt">"data"</span><span class="fu">:</span> <span
class="st">"${command:AskForDataName}"</span><span
class="fu">,</span></span>
+<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a> <span
class="dt">"infosetOutput"</span><span class="fu">:</span> <span
class="fu">{</span></span>
+<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a>
<span class="dt">"type"</span><span class="fu">:</span> <span
class="st">"file"</span><span class="fu">,</span></span>
+<span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a>
<span class="dt">"path"</span><span class="fu">:</span> <span
class="st">"${workspaceFolder}/infoset.xml"</span></span>
+<span id="cb1-11"><a href="#cb1-11" aria-hidden="true" tabindex="-1"></a>
<span class="fu">},</span></span>
+<span id="cb1-12"><a href="#cb1-12" aria-hidden="true" tabindex="-1"></a>
<span class="dt">"debugServer"</span><span class="fu">:</span> <span
class="dv">4711</span></span>
+<span id="cb1-13"><a href="#cb1-13" aria-hidden="true" tabindex="-1"></a><span
class="fu">}</span></span></code></pre></div>
+<p>This default configuration will prompt the user to select the DFDL
+Schema and data files. If desired, the "program" and
"data" elements can
+be mapped to the user's files to avoid being prompted each time.</p>
+<p>📝 Note: Use <code>${workspaceFolder}</code> for files in the VS Code
+workspace and use absolute paths for files outside the workspace.</p>
+<div class="sourceCode" id="cb2"><pre class="sourceCode json"><code
class="sourceCode json"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true"
tabindex="-1"></a><span class="fu">{</span></span>
+<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a> <span
class="dt">"type"</span><span class="fu">:</span> <span
class="st">"dfdl"</span><span class="fu">,</span></span>
+<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a> <span
class="dt">"request"</span><span class="fu">:</span> <span
class="st">"launch"</span><span class="fu">,</span></span>
+<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a> <span
class="dt">"name"</span><span class="fu">:</span> <span
class="st">"DFDL parse: My Data"</span><span
class="fu">,</span></span>
+<span id="cb2-5"><a href="#cb2-5" aria-hidden="true" tabindex="-1"></a> <span
class="dt">"program"</span><span class="fu">:</span> <span
class="st">"${workspaceFolder}/schema.dfdl.xsd"</span><span
class="fu">,</span></span>
+<span id="cb2-6"><a href="#cb2-6" aria-hidden="true" tabindex="-1"></a> <span
class="dt">"stopOnEntry"</span><span class="fu">:</span> <span
class="kw">true</span><span class="fu">,</span></span>
+<span id="cb2-7"><a href="#cb2-7" aria-hidden="true" tabindex="-1"></a> <span
class="dt">"data"</span><span class="fu">:</span> <span
class="st">"/path/to/my/data"</span><span class="fu">,</span></span>
+<span id="cb2-8"><a href="#cb2-8" aria-hidden="true" tabindex="-1"></a> <span
class="dt">"infosetOutput"</span><span class="fu">:</span> <span
class="fu">{</span></span>
+<span id="cb2-9"><a href="#cb2-9" aria-hidden="true" tabindex="-1"></a>
<span class="dt">"type"</span><span class="fu">:</span> <span
class="st">"file"</span><span class="fu">,</span></span>
+<span id="cb2-10"><a href="#cb2-10" aria-hidden="true" tabindex="-1"></a>
<span class="dt">"path"</span><span class="fu">:</span> <span
class="st">"${workspaceFolder}/infoset.xml"</span></span>
+<span id="cb2-11"><a href="#cb2-11" aria-hidden="true" tabindex="-1"></a>
<span class="fu">},</span></span>
+<span id="cb2-12"><a href="#cb2-12" aria-hidden="true" tabindex="-1"></a>
<span class="dt">"debugServer"</span><span class="fu">:</span> <span
class="dv">4711</span></span>
+<span id="cb2-13"><a href="#cb2-13" aria-hidden="true" tabindex="-1"></a><span
class="fu">}</span></span></code></pre></div>
+<h2 id="daffodil-version">Daffodil Version</h2>
+<p>The VSCode extension for Daffodil supports multiple versions of
+Daffodil. The latest Daffodil version is built into the extension
+package, but two older versions are typically supported as well. By
+entering the desired version in the launch configuration, the requested
+Daffodil version will be downloaded when you start the debugger.</p>
+<img role="img" aria-label="image" width="471" height="75" alt="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAdcAAABLCAYAAAAiV81NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAjCSURBVHhe7d09jhRHGMZxnwTZB0DCiS1hLYnlxPIXESEn4ABIOOEC9gHISGyRIQJkS2QkJGCJExCTkJAQtPWs9K5fnn2rP6vXzOx/pZ/Yqa6uqu4e1TM108x+duXKlQEAAPTzmRcAAIBtCFcAADojXAEA6IxwBQCgM8IVAIDOCNdP3J07d4aXL18Or1+/Hh4/fnxWrt9Vpm2q4/vNdfPmzeHFixfD/fv3z20LDx48OK2jur4NAHDe6nCdM+EqAKbqbLF3+2Ny3zoXCjr37Nmz4e
[...]
+
+<h2 id="timeout">Timeout</h2>
+<p>This setting allows the user to control how long the extension will
+wait for confirmation of connection to the Daffodil server before
+declaring an error. It is required that this setting end with a single
+character indicating the units: seconds(s), minutes(m), or hours(h).</p>
+<img role="img" aria-label="image" width="471" height="77" alt="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAdcAAABNCAYAAAD0Di5QAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAoiSURBVHhe7d09rhRnFsZxrwTwApBw4pE8uiTWJNbYM6yAkIgFIHkSNuBZACGBR0QQIY9EBAkJHokVEJNAQELQowfpjM88fU51ffXtvt3/K/0Et/qt96uq3qeru2m+unbt2gYAAKznK98AAACWIVwBAFgZ4QoAwMoIVwAAVka4AgCwMsIVAICVEa4H8vDhw82bN2829+/f33psX8a2qXKvX7/e3LlzZ+uxy/Lo0aPNixcvNhcXF1uP7ZvGrfGrD/7YOdOx0DF59uzZ5vr161uPA/
[...]
+
+<h2 id="dropdown-for-log-level">Dropdown for Log Level</h2>
+<p>A dropdown list has been added in the launch config wizard under Log
+Level settings. There are four different options to select including
+DEBUG, INFO, WARNING, ERROR, and CRITICAL.</p>
+<ul>
+<li>Debug - A log level used for events considered to be useful during
+software debugging when more granular information is needed</li>
+<li>Info - An event happened, the event is purely informative and can be
+ignored during normal operations</li>
+<li>Warning - Unexpected behavior, but key features still works</li>
+<li>Error - One or more functionalities not working as expected</li>
+<li>Critical - Key feature not working, preventing whole program from
+working</li>
+</ul>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqsAAAI5CAIAAAAJ1+TuAAAAAXNSR0IArs4c6QAAIABJREFUeAHsvQdQHMmW7/0ivhfffhsbL+Lt3X1779wxWOGRQSMhg7yEEzQNNG3w3nvvvffQeOG9h4YGIYywMnjvvZdBEgg0mrmze+MbyFW9vo2EzGBHp6JDKqqyTp76ZXXmvzJPZv8PFtiAABAAAkAACACBr4bA//rXP6PP//hqbhluFAgAASAABIAAEGD52hUALy+vtLR0QECAp6fnpUuX4IkAAkAACAABIPCVENhDBSAsLKyoqGhmZiYpKcnPz78/QFGLbmZmZvuPm5WVlaqq6qlTp65fv25gYGBkZHTp0iUuLi4hISEDA4Pq6urMzExRUdH9cRJyAQJAAAgAASBw4AT2UAHIycnFx8fX1NQ
[...]
+<p>Referenced Links:</p>
+<ul>
+<li><a
href="https://sematext.com/blog/logging-levels/">https://sematext.com/blog/logging-levels/</a></li>
+<li><a
href="https://www.crowdstrike.com/en-us/cybersecurity-101/next-gen-siem/logging-levels/">https://www.crowdstrike.com/en-us/cybersecurity-101/next-gen-siem/logging-levels/</a></li>
+</ul>
+<h2 id="root-element-and-namespace-auto-suggestionsfinding">Root element
+and namespace auto suggestions/finding</h2>
+<p>In the launch.json file, there's a new suggestion mode that gives you
+suggestions to fill in for the rootname. If you specify the specific
+schema path, and then save the file, and reopen it. Go to rootname and
+delete whatever value is set-- it will show you various suggestions.</p>
+<p><img role="img" aria-label="auto-suggestion"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAm4AAAHECAYAAACAx6YGAAAAAXNSR0IArs4c6QAAIABJREFUeF7svQmYVdWZ7/1nqFIoUgwySSCAoEFkEMV0O+CAcK+0BgN8Ro2KiS1+rZ/aKJpbomZSETuiXrXVK3aMaKLExgQCwRtwiCKmFUMQRRNBIBBmoSgGoYqq+nrtvdc5a6+z9t5rn/nU+dfz5InU2Xutd/3WPuf86l1Tq759+zaDPyRAAiRAAiRAAiRQZgSam5sh/tfU1OT8f2NjY+J/1dXVWacx+NwLcfjAflS2a48j9Yed8psaG53/P1i3G+2ruzj/fcLpo7H2vT+gbeVR2L7uE1R17ooOXbo5/92K4pb1fmGBJEACJEACJEACJUAgn+L29TPHol11Z0fG2lRUov7gfvQZM
[...]
+<h2 id="launch-a-dfdl-parse-debugging-session">Launch a DFDL Parse
+Debugging Session</h2>
+<p>Using the launch profile above a <code>DFDL parse: My Data</code>
+menu item at the top of the <code>Run and Debug</code> pane
+(Command-Shift-D) will display. Then press the <code>play</code> button
+to start the debugging session.</p>
+<p>In the Terminal, log output from the DFDL debugger backend service
+will display. If something is not working as expected, check the output
+in this Terminal window for hints.</p>
+<p>The DFDL Schema file will also be loaded in VS Code and there should
+be a visible marking at the beginning where the debugger has paused upon
+entry to the debugging session. Control the debugger using the available
+VS Code debugger controls such as <code>setting breakpoints</code>,
+<code>removing breakpoints</code>, <code>continue</code>,
+<code>step over</code>, <code>step into</code>, and
+<code>step out</code>.</p>
+<h2 id="other-options-for-launching-a-dfdl-parse-debugging-session">Other
+Options for Launching a DFDL Parse Debugging Session</h2>
+<ul>
+<li><p><strong>Option 1:</strong></p>
+<ul>
+<li>Open the DFDL Schema file to debug</li>
+<li>From inside the file open the Command Palette (Mac =
+Command+Shift+P, Windows/Linux = Ctrl+Shift+P)</li>
+<li>Once the command Palette is opened start typing
+<code>Daffodil Debug:</code>
+<ul>
+<li>Option 1 = <code>Daffodil Debug: Debug File</code> - This will allow
+the user to fully step through the DFDL Schema. Once fully completed, it
+will produce an infoset to a file named <code>SCHEMA-infoset.xml</code>
+which it then opens as well.</li>
+<li>Option 2 = <code>Daffodil Debug: Run File</code> - This will run the
+DFDL Schema, producing the infoset to a file named
+<code>SCHEMA-infoset.xml</code>.</li>
+</ul></li>
+</ul></li>
+<li><p><strong>Option 2:</strong></p>
+<ul>
+<li>Open the schema file to debug</li>
+<li>Click the play button in the top right, two options will be
+provided:
+<ul>
+<li>Option 1 = <code>Debug File</code> - This will allow the user to
+fully step through the schema (WIP). Once fully completed, it will
+produce an infoset to a file named <code>SCHEMA-infoset.xml</code> which
+it then opens as well.</li>
+<li>Option 2 = <code>Run File</code> - This will run the DFDL Schema,
+producing the infoset to a file named <code>SCHEMA-infoset.xml</code>
+which it then opens as well.</li>
+</ul></li>
+</ul></li>
+</ul>
+<h2 id="setting-breakpoints-in-the-schema">Setting Breakpoints in the
+schema</h2>
+<p>If you want to be able to set breakpoints in the schema file, make
+sure that the language mode is set to DFDL. If not, it will not allow
+you to set breakpoints in the file. To change the language mode, click
+on the language on the bottom right where DFDL is, and the command
+palette will allow you to select various languages.</p>
+<p><img role="img" aria-label="{2559195A-206E-4051-97DD-630850F0A4DC}"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYAAAAA1CAYAAABItzzNAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAjtSURBVHhe7dwvbCJPGwfw772WBEGTo6ai3JnmkqshwbxiMVWbNNQ0OUsQFcUUS7JJLTVbUUGwTTAlTVbVgHhNE0xranpbUfPjkkM0Qf9eMbvL7CzsLn9Lu99PcgJ2C7uzM/PMPDPcl+3t7X9BRESJ8x/1DSIiSgYGACKihGIAICJKKAYAIqKEYgAgIkooBgAiooRiACAiSigGACKihGIAICJKKAYAIqKEYgAgIkooBgAiooRiACAiSigGACKihGIAICJKKAYAIqKEYgAgIkooBg
[...]
+<h2 id="custom-dfdl-debugger-views">Custom DFDL Debugger Views</h2>
+<h3 id="infoset-tools">Infoset Tools</h3>
+<p>Find the infoset tools from the command menu (Mac = Command+Shift+P,
+Windows/Linux = Ctrl+Shift+P)</p>
+<h3 id="inputstream-hex-viewer">Inputstream Hex Viewer</h3>
+<p>Find the hex view from the command menu (Mac = Command+Shift+P,
+Windows/Linux = Ctrl+Shift+P)</p>
+<h1 id="dfdl-command-panel">DFDL Command Panel</h1>
+<p>Enhanced Debugging in Visual Studio Code (VS Code) by developing a
+dedicated command panel for DFDL. Now, all debugging-related commands
+are conveniently grouped in one place, making them easier to find and
+use. This command panel dynamically updates to only show relevant
+commands based on the current debug mode and can be quickly executed
+using a play button.</p>
+<p><img role="img" aria-label="{D03B1D68-20CC-4F42-901F-0728C8137038}"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAi8AAAHwCAYAAABuVI8jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAPLWSURBVHhe7L1/XFTHvf//UgKCi0tYXDFGRBY1bkzZYNAlicalkjVtNlJsjWiNTUPlht4bvb2S2k9y5cvFpk0a7b1iW3K1pLkJJRJbKMnalg0WbJIGlEqhMRiU5Zcx4MoSVld+iX7/YM/hnNnfy6Kg7+fjsQ9lZs6cOXNmz7zO+/2e2SmzZ8++DoIgCIIgiEnCVDaBIAiCIAhiIkPihSAIgiCISQWJF4IgCIIgJhUkXgiCIAiCmFSQeCEIgiAIYlJB4oUgCIIgiEkFiReCIAiCIC
[...]
+<p>Commands will only appear on this panel if they are valid in the
+current context. Below is a table showing when these commands are
+enabled. The bottom section in the first screenshot describes the
+keywords used by the extension to dynamically figure out whether to
+enable a command. Splitting them into two screenshots to prevent
+distortion.</p>
+<img role="img" aria-label="image" width="1058" height="256" alt="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABCIAAAEACAYAAABmjdfJAAAgAElEQVR4Xu2dPXLcONOA26kv8SYeBy6dYHwAl6XEkVJlo2hLqtpSplCZAo9CKVPqyIlGJ5BOoFKwM8l3En0Af0ESJMAZ/vNxtGtzgMbTQLPRbDQ+/fPPvx9HR1+FPxCAAAQgAAEIQAACEIAABCAAAQhAoG0Cnz5//vzx+/dvOT8/l4+Pj7b7o/0BEfi///s/+d///jcgiRAFAsMhwPoYji6QBAJzI4D9mZvGGS8EIACBeRHQ77kkELFareY1ekYrODpMAgiUE2B9MDsgAIG+CGB/+iJPvxCAAAQg0AUBAhFdUB5wHzg6A1YOovVOgPXRuwoQAAKzJYD9ma3qGTgEIACB
[...]
+
+<img role="img" aria-label="image" width="652" height="97" alt="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAowAAABhCAYAAABcdvCjAAAgAElEQVR4Xu1dPVYkvZIV7tvEc7ra4LCC6hU07WCVyzljwHiNg1cmHk7hTWO8c3CxcChWACuog/EVRr+VMKHMVKb+FcpUCakqPmfmNVlSZNyr0FUopDz617/+9cngv//5n/9l//nP//H/l/4rwAOERwEgFG4CcaRwgDKaR1zI6OxCuiLMCwFiT8zA8Onoz58/jWCk/8gD5AHyAHmAPEAeIA+QB8gDNg8cfcJ//A///e9/2b///W/yUiEeIDwKAaJgM4gjBYOT2TTiQmaHF9AdYV4ACHtkAoZPJBgLBRwDXqGmk1mZPEAcyeToCrohLlQAUmITCfPEDj3w5jB8IsFYKEkw4B
[...]
+
+<h1 id="tdml-support">TDML Support</h1>
+<p>When uploading files to the mailing list, it may be easier to upload
+a zip file containing a TDML file, the DFDL Schema file, the input data
+file, and, optionally, the infoset file. Sending this file to the
+mailing list will allow other users to unpack your zip file and run your
+test case. It becomes even easier if you have multiple test cases.</p>
+<details>
+<summary>Generate a TDML file</summary>
+
+<ul>
+<li>Open the launch.config file.</li>
+<li>Scroll down to TDML Action section.</li>
+<li>Select generate.</li>
+<li>Run a debug session.</li>
+<li>After running a session, when the infoset generates, a temporary
+TDML schema file will generate.</li>
+</ul>
+<p>Set the TDML Action to generate and give a TDML Test Case Name.</p>
+<img role="img" aria-label="image" width="393" height="174" alt="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYkAAACuCAYAAADDA/GHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAABzCSURBVHhe7d1/jBXlvcfxh3sFFJYfFlxAlgKmRSsCSoJFUSqhUmxFU7GAConaVk1qLA2hofWiV4nWxphSr03VNsAN1EIbaBX/MFWCIb29IIkFAatcYmlZfi0obFkRWRPuvp+d7/HZYeb8mHMW2bOfV3Ky58zPZ+bMfL/zPM/smS5Dhw495URERBL8W/RXRETkNEoSIiKSSklCRERSKUmIiEgqJQkREUmlJCEiIqmUJEREJJWShIiIpFKSEBGRVEoSIiKSSklCRERSKUmIiEgqJ
[...]
+
+<p>Run the debug extension and choose a DFDL schema and data file. Make
+sure the language mode is DFDL.</p>
+<img role="img" aria-label="image" width="263" height="41" alt="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQcAAAApCAYAAAA4euxVAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAkwSURBVHhe7ZwPbBPXHce/HRuKbLrUEDWwzkaLgZlGSdqS4Ya6UlIVoyqu2m513EX1pJFYCgySrYOJBSWksWDVyKAEJtiSsEpGUY21MWmmVZ2KsclqliyBQTRhUUxVmy0gZaTZsBXB0Pbe3XNiG8c1SZwd8+8jWXl/7u7dOff7/n7v98730PLly/8DgiCIJL4g/hIEQSTwUHFxMUUOBEHcA00rCIJICU0rCIJICYkDQRApIXEgCCIlJA4EQaSExIEgiJTMerVi1apVokQQuceVK1
[...]
+
+<p>Press the continue button to produce the infoset.</p>
+<p><img role="img" aria-label="tdml-produce-infoset"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAApIAAAGGCAYAAADIJ2F2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhe7P0HeF3HeS0MU/a93281qzj35rbn+25JYkmO7cSOEyc3rrFl2Y6r3NWri3rvhaTYxd4bWEASJACCIHrvveOg995771j/WnPOBg4ODwopSqJkzHnWs+fMvDN79uzZM2veaSs+dWIIV58cdoB2/Rc8Bx3XIUjGjmF8inKfOjmCq0+N4VqvcYLX02O4XldPuh9nPEcH8amjvfjUkW6iZwbXuMHVHt0XjU8d7pqDqw8tgoOUO9CJ/9+hbqw4OoRP723BNQc7cTXd/nJHNf7btkrcvLsBK44NY8XJ
[...]
+<p>When the infoset generates, a temporary TDML schema file will
+generate.</p>
+<p><img role="img" aria-label="tdml-generate-temp"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtAAAAGtCAYAAAA/A0MeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhe7P11kF1Xmu4Je2IiZu6N75+Jifnm3rl3uroLbFmWZSiuLq6u6ip3lwttl5lly8wkZmbIVIIyJSUzKpmZmZmZM8/Jk/jM825QnkydBMlpO2XtN+KNs/di2mv/1jprr3XH/3LFhDtcR3GH0zDucBzEHQ4DuONC/wLts6FDqjqI0q/TiKouDEv0Is2d6deJbh3FfQ/uON+NO8514Y4zHbjjNPUsr0XPdF6vZ63Ulp34F5WwrPXUMnqy/Xpdyu5m9UTb9boSNwv1uKbW1zejx1pVPaLp0RvQI802tM
[...]
+</details>
+
+<p>Once the Daffodil Parse has finished, an infoset and a temporary TDML
+schema file will be created. Any breakpoints set during the Daffodil
+Parse will be included in the test case and will carryover when the test
+case is executed. The TDML file contains relative paths to the DFDL
+Schema file, input data file, and infoset file. When creating an archive
+for these files, preserve the directory structure in the archive.</p>
+<details>
+<summary>Notes regarding the temporary TDML schema file</summary>
+
+<p>The temporary TDML schema will be generated in your operation
+system's temp directory as <code>generatedTDML.tdml</code>. On Windows,
+<code>generatedTDML.tdml</code> will be in
+<code>C:\Users\USERNAME\AppData\Local\Temp</code> folder. Note that this
+value will be hardcoded for the immediate future because of how
+Append/Create interact with the generated TDML file.</p>
+<p><img role="img" aria-label="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArUAAACdCAYAAACqwIAzAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAEHdSURBVHhe7Z19bBzXee4fp06bIHGCXCtp0i4ZLlUxasOkQpC0WOKWiUgLq8RhCtgsCG2CEnAFklZiWYlBEASL/hNvFUIo6uoPlSR43buyy5QGk9uGccWNzJXLoGQc9CuOGjhUxFXITS5gOOkF0iJubEn3vGfOzJ6dndmdJZfSrvj8rGPOnDnzzpkzX8+85z2zd73nPe+5CUIIIYQQQpqYN5i/hBBCCCGENC0UtYQQQgghpOm568EHH2T4ASGEEEIIaWoYU0sIIYQQQpoehh8QQgghhJCmh6KWEEIIIYQ0PRS1hBBCCCGk6aG
[...]
+<p>For copying the TDML file and appending TDML test case(s) as
+described below, the extension uses the latest version of
+<code>generatedTDML.tdml</code> for the operations. Regenerating the
+TDML schema updates the temporary TDML schema. This also means that
+<code>generatedTDML.tdml</code> must already exist in your system's temp
+directory to work properly. Otherwise, an error message will be
+displayed.</p>
+<p><img role="img" aria-label="Append TDML error message example"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAe8AAACeCAYAAAAbgIIdAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAACb7SURBVHhe7Z0PbBzXnd+/si0p6cq06HXWVk3HWcYVnYbEFXtEnbqlCJRXJD5AlGEeAp8PR9KwGZzPqI6BaTcMi5xiHK1cQt/xdEgclBVMqrjUCMokIoG4QcsCEgvh0rJEDxRwWTXhxg1Tn9emKcle+yRbVt9v5s3sm9mZ3dnl8s+I348w4uz8efP+f9/v997u7LrrrruugxBCCCEbxhtvXcKdd9ymP62fm/RfQgghhMQEijchhBASMyjehBBCSMygeBNCCCExg+JNCCGExAyKNyGEEBI
[...]
+</details>
+
+<details>
+<summary>Visual steps to copy the temporary TDML file to your
project.</summary>
+
+<p>Open the command view panel, and select "Create TDML File".<br />
+<img role="img" aria-label="tdml-copy"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABMQAAAJLCAYAAAAIBkrNAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7J13eBzF3YDfLXenU++9WJLVbFm25d4rLpheTLUB0wMkIQFCKOkhBAJpBEiogYSEklACGLBx792WbVVbklWs3suV3Z3vj7sTsrCNZUz5YN/n2cfy7t7stJ2d+c2vSEIIcdNNN6FpGsuXL8fExMTExMTE5EwhhBh46lvJ2WefjaIoPPPMMwMv9eGbj73//vsDL33rkCRp4CkTExMTExMTk9Nm4cKFn5qLyR9++CGaptHR0XHMzSYmJiYmJiYmnxdJksxDkujo6EDXdT788MOBVQRA//nYwN9+Gw8TExMTExMTkz
[...]
+<p>Enter a name for the TDML file, click “Save TDML File.<br />
+<img role="img" aria-label="tdml-save"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABMQAAAJRCAYAAACqS2swAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7N11nB3XffD/z8ClvcvMzNqVVsxsyWwndkxxHGrSpGmepGnD0PZ5ymlTbn9N06ZJOa0dW3ZMkgySTCKLWdrVMvNenjnn98e9e71a0a4kQ+zz9mteXs29d+DMGTjfOaCVlJRIFEVRFEVRZkhK9eigvHdpmjZ9lqIoiqIoykU0FRBTFEVRFEVRFEVRFEVRPkj06TMURVEURVEURVEURVEU5f1M1RBTFEX5gJNSqiZwiqIoinIFmqap5riKoijvMyogpiiK8gElpcQwDJKSknA6nepBX1EURVEuIxwOMzExQSQSUf
[...]
+<p>Close the DFDL schema in the editor window. Click the explore tab to
+verify file is in project folder.<br />
+<img role="img" aria-label="tdml-explore-view"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABMcAAAJVCAYAAADa7ZIlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7N13fFRV2sDx3y0zk947IYGEhIQSEnpHQKqi2BUVBfu6ll2767676zZdy667bresrq5r712ki3QILSQBEkgICel1Zm457x8zE0LoxbJ6vp/PVXJn5vZy7nOfc44ihBB0cf3112OaJh9++GHX0ZIkSZIkSaekW5Hje2vmzJlomsY///nP7h91CpTHPvjgg+4ffe8oitJ9lCRJkiRJ0kmbMWPGIWUxtesXPv74Y0zTpLm5uetoSZIkSZKkU6YoihwUhebmZizL4uOPP+6+iaBbeaz7b7+PgyRJkiRJ0u
[...]
+</details>
+
+<p>To Append a new test case to an existing TDML file, use similar steps
+for Generating a TDML file:</p>
+<ul>
+<li>Open a TDML file</li>
+<li>From inside the file, open the Command Palette (Mac =
+Command+Shift+P, Windows/Linux = Ctrl+Shift+P)</li>
+<li>Once the Command Palette is opened, select the
+<code>Daffodil Debug: Append TDML</code> command</li>
+<li>Or select the Append TDML option at the top right of window</li>
+<li>From there, you will be asked to provide the input data file, the
+TDML test case name, and the TDML file</li>
+<li>The Append option will append the TDML from the temp directory to
+the currently open TDML if the two files are different</li>
+</ul>
+<details>
+<summary>Visual steps to append to a TDML file</summary>
+
+<p>To append to the existing TDML file, open the TDML file and click the
+button in the upper right corner to open in a text editor.<br />
+<img role="img" aria-label="TDML-open-text"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAGPCAYAAABiTOKGAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P1ncFzJma6Lsi0NTPkqlAMKBe+9Ibx3JLz33ntLOMIRAL33ZLOdutWy3VLLSzMazWhmpPF+tGfv2bPtxN4R55z74/64EffEPfHeeLOw2GABJIE2EsleP96oqrXSfJkr16p88suVecDDwwOyZMmSJUvW8ySDwSDrOZfzNZUlS5YsWbKedR1wPiBLlixZsmTJkiVLlixZsmTJelQyPMuSJeuFED1ZOp1OlixZsmQ9Z5JnIsiSJet5kQzPsmTJeu6l1+thNpsREBCAkJAQWbJkyZL1nCgoKAgWi0U8x52f7
[...]
+<p>If the tdml file is different from the tdml file in the temp
+directory, it will append the tdml test case from the temp directory.
+<img role="img" aria-label="TDML-change-case-name"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArUAAACdCAYAAACqwIAzAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAEHdSURBVHhe7Z19bBzXee4fp06bIHGCXCtp0i4ZLlUxasOkQpC0WOKWiUgLq8RhCtgsCG2CEnAFklZiWYlBEASL/hNvFUIo6uoPlSR43buyy5QGk9uGccWNzJXLoGQc9CuOGjhUxFXITS5gOOkF0iJubEn3vGfOzJ6dndmdJZfSrvj8rGPOnDnzzpkzX8+85z2zd73nPe+5CUIIIYQQQpqYN5i/hBBCCCGENC0UtYQQQgghpOm568EHH2T4ASGEEEIIaWoYU0sIIYQQQpoehh8QQgghhJCmh6KWEEIIIYQ0PR
[...]
+<p>Select append from the TDML dropdown menu at the upper right. <img
role="img" aria-label="TDML-append"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABN4AAAH8CAYAAAAOrWK8AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7J13dF3FubefXU5R75JlVVvFkiVLsmzLTe4FG2OqjW06hgCB4EBCGrm5Sb4UEm7K5aYntJubQEIntAAuuPfeJcuWbPXezzm7zffHORJuGMmYluxnrb1s7bPL7Onzm3fekbKzswU2NjY2NjY2NjY2NjY2NjY2NjY2lxQpOztbdHZ2nn3exsbGxsbGxuZTRQh7btDm4pEk6exTNjY2NjY2NjafOLbwZmNjY2NjY2NjY2N
[...]
+<p>The original default test case from the temp directory will be
+appended to the saved TDML file with the renamed new test case. <img
role="img" aria-label="TDML-appended"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA88AAAFMCAYAAAD1MI6cAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7P13cFtJnu8LqqwMHTwIEAAB0HvvSYmk6CR670TvPUWKnhRFkfLeu/LVVe1NtZ+Znpme7jE93tyx996Z6+/b+97b2Ij9YyPexr74bnwTPCoIoiSqqtQtqfKPbwDIk/7kOchP/tLs8Pf3h5SUlJSU1Isko9Eo9YLL855KSUlJSUk979rh6SAlJSUlJSUlJSUlJSUlJfWgJDxLSUm9FKIlS6/XS0lJSUm9YJIzEaSkpF
[...]
+</details>
+
+<p>Once the Daffodil Parse has finished, an infoset will be created, and
+a test case will be added to the existing TDML file. The TDML test case
+name cannot be the same as another TDML test case in the same TDML file.
+To create an archive for a TDML file with multiple test cases, the same
+guidelines for creating an archive from a TDML file created from a
+'Generate TDML' operation should be followed. All DFDL schema files,
+input data files, the TDML file, and, optionally, the infosets should be
+added to the archive. Additionally, any directory structure should be
+preserved in the archive to allow for the relative paths in the TDML
+file to be resolved.</p>
+<p>When running a zip archive created by another user, extract the
+archive into your workspace folder. If there is an infoset in the zip
+archive that you wish to compare with your infoset, make sure that the
+infoset from the zip archive is not located at the same place as the
+default infoset for the Daffodil Parse that will be run when executing a
+test case from the TDML file. This is because the Daffodil Parse run by
+executing the TDML test case uses the default location for its infoset
+and will overwrite anything that already exists there.</p>
+<p>To Execute a test case from a TDML file, use the following steps:</p>
+<ul>
+<li>There's three different ways to execute a test case</li>
+<li>One way is to select Execute TDML from the dropdown menu</li>
+<li>Second way is to select execute TDML from command explorer (You have
+to be on a TDML file)</li>
+<li>Third way is through the Command Palette, from inside the TDML file,
+open the Command Palette (Mac = Command+Shift+P, Windows/Linux =
+Ctrl+Shift+P)</li>
+<li>Once the Command Palette is opened, select the
+<code>Daffodil Debug: Execute TDML</code> command</li>
+<li>From there, you will be asked to select TDML test case name through
+dropdown menu</li>
+</ul>
+<p>New Dropdown Functionality for Execute TDML, if you have multiple
+test cases and run Execute TDML, it will show a dropdown and ask you to
+specify the test case. In the picture below, it has two test cases:
+Example Test Case, Default Test Case
+<img role="img" aria-label="{E5226635-A694-4F15-822F-E6315CB63E53}"
width="1919" height="300" alt="{E5226635-A694-4F15-822F-E6315CB63E53}"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB38AAAG5CAYAAACOQP6NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7N15XFXV+vjxD6MDyIzgACoOSQ4Eqag5wFVJC/OipaZpKmnZgPfezCyTuJplZt97o36ZGs1pWuo16VakV9TSSJMwDXMAFAcQkEEQZfz9cc7Z7LM5hxnH5/167Zectdbea+199oHjec6zloWnp2clQgghhBBCNEBlpfm3kjXVCSGEEEKIKhYWFtoiRU11QgghhBBCaFlqC4
[...]
+<details>
+<summary>Visual steps to execute a TDML file</summary>
+
+<details>
+<summary>Method 1: Dropdown menu</summary>
+Inside the TDML file, select the “Execute TDML” option from the dropdown.
+<img role="img" aria-label="image" width="1144" height="417" alt="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABHgAAAGhCAYAAAAa+wMDAAAQAElEQVR4AexdCWBU1dX+XiC4BJFNiEhQCAq4sBmRWqgpIgqNSkSMgriQuKCFUEWhYGmkBTe0Bn7AhVgFQaJiUFOoVGgUWhGjCGhBJSCGJSiCIlEkkPznezNv5s2bJTMhCVnO5J2527nnnvu9N5N535x7Jwr6UAQUAUVAEVAEFAFFQBFQBBQBRUARUAQUgbqOgM6vjiOgBE8dP8E6PUVAEVAEFAFFQBFQBBQBRUARUATCQ0C16hoCZUDUty1bnlLUunUrkfa7Y2PP3XX66ReK9N0VF/cbSmHbtl1Fz6hrc6+P81GCpz6edZ2zIqAIKAKKgCKgCCgCioAiUBEEtI8ioAhU
[...]
+
+<p>Quickly select a test case.
+<img role="img" aria-label="{E5226635-A694-4F15-822F-E6315CB63E53}"
width="1919" height="300" alt="{E5226635-A694-4F15-822F-E6315CB63E53}"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB38AAAG5CAYAAACOQP6NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7N15XFXV+vjxD6MDyIzgACoOSQ4Eqag5wFVJC/OipaZpKmnZgPfezCyTuJplZt97o36ZGs1pWuo16VakV9TSSJMwDXMAFAcQkEEQZfz9cc7Z7LM5hxnH5/167Zectdbea+199oHjec6zloWnp2clQgghhBBCNEBlpfm3kjXVCSGEEEKIKhYWFtoiRU11QgghhBBCaFlqC4
[...]
+<p>The DFDL schema and a new infoset will utilize the values from the
+TDML file.
+<img role="img" aria-label="{1CD20544-915E-4870-BB18-82AF04A6D893}"
width="1919" height="500" alt="{1CD20544-915E-4870-BB18-82AF04A6D893}"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB38AAAPxCAYAAAD61GelAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAP+lSURBVHhe7N17XFR1/sfxFyCIgiAgghcQ8ZJ4I4zCNBO2otuYi1tpZu4qq5ttalualSuxmmVq24a72epibbkmXWTN6Wb6kzJNimRBC00FFC8gcgdBEPj9Mbczh5lhQFDUz/PxOI+Y8/2ey5xzAOM9n+/Xwd/fvxEhhBBCCCGEEEIIIYQQQgghhBBXNUf1CiGEEEIIIYQQQgghhBBCCC
[...]
+</details>
+
+<details>
+<summary>Method 2: launch.json Configuration</summary>
+
+<p>Open the <code>launch.json</code> configuration wizard</p>
+<img role="img" aria-label="image" width="606" height="63" alt="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAl4AAAA/CAYAAAAxFsZQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAA66SURBVHhe7d0PTBX3AQfw77MlXSmG1yoWSKwMpwWidZLRDWNLSFYT5kbTGhtouzayYSQ1bKwNTp1maSdO0paN0mgkwbRbW+KymrK1JKSJQRvpaoK1GqS1ZmA3YSLra2RYQw37/X73e/d+9/6/x+OB+v0kJ/fuuHt39+797nu/3+/QlZmZOTl//nxMTk5iYmIC33zzDYiIiIgoerfeeitSUlLgcrlw6dIlO0/J13Lwjs+RoevatWu4cuUKQxcRERFRHGSGkllKZipvhZaXd1z+nC
[...]
+
+<p>In your config, set the TDML action to <code>execute</code>, specify
+the TDML test case name and file path, and then save the config. Note:
+The TDML file path defaults to <code>${AskForValidatedTDMLPath}</code>
+which indicates that a file dialog will prompt you for the TDML file to
+perform execute on, but you can set it to a file path directly pointing
+to a specific TDML file.</p>
+<img role="img" aria-label="image" width="380" height="230" alt="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXwAAADmCAYAAADWbT5bAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAClNSURBVHhe7Z0NrFXVmfcX7yugePGiwAXkEsHpIC1flhSltkEZqtJUdCoOoEJedaZqpqalYWhoedEq0XHia8o0mmrfBpgBLbTFxmIyRiVYYjsqCRUBC9RSDRf5VLhyReTaMOe37n5O193s87XP4XIv+/9Lds7Za6+vvc7e//WsZ+2zV7eLLrrohBNCCHHG87+iTyGEEGc4EnwhhMgIEnwhhMgIEnwhhMgIEnwhhMgIEnwhhMgIEnwhhMgIEnwhhMgIEnwhhMgIEnwhhMgIEnwhh
[...]
+
+<p>Execute the configuration you created</p>
+<img role="img" aria-label="image" width="456" height="68" alt="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcgAAABECAYAAAAFpKX9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAA/USURBVHhe7d0PTJt3egfw7y66KMIRGQ1ayJ1Idbi9mYtitJWF0eMmF60+neLq8O0IGjq0rQaN9A9sEdl6qUI9sqQ3HUsGrURuwd00KiSKNqjm3mlkYmxCjWB0W4gqrFvNdKa7cBMtawQoalRtz+99f7Zfm9fGcECAfD+Vy/v/fe1I/vp53h/4F44fP/5/H330EYiIiB5mhw8fxvvPDOg5gAFJREQkVEAuLS3pOeBz+icRERFZMCCJiIhsMCCJiIhsMCCJiIhscJAO0TZ57LHH9B
[...]
+
+<p>If you have <code>${AskForValidatedTDMLPath}</code> for the TDML file
+path, pick the TDML file you want to execute in the file prompt</p>
+<img role="img" aria-label="image" width="935" height="688" alt="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA6cAAAKwCAYAAABkuAnnAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAHueSURBVHhe7f0LYFT1nf//v4N4RbxUWwWTmIsGLyhaqWuoTUsoBKysXUsLX/x3s7UUst7qly7L8s+ua93mSyktizc2odR+Y3/yk4pUF1sIlNBSJK2129JSlSAJJhEvrVWreEEIv8/7M58zOTOZM5nJ7cyE56M9zrl+zsnMJJzXvD/nTM5JJ510RJzLLrtMTjjhBNmzZ4988pOflHXr1tn511xzjezatUva2trsOurdd9+VE088UX73u99Jfn6+jB07Vn7yk5/YZZ5E86+//nr5+
[...]
+
+<p>Your TDML file and TDML test case should be executing</p>
+<img role="img" aria-label="image" width="1096" height="714" alt="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABEgAAALKCAYAAAAh02Q/AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhe7N0LfBbVnT/+D5cICXlylQRygYQkwCMSJQICCnijhqJF2qpraWu17bZd17bbbd1dbF233fLvtm5Xu2svv1Yt3VpXrUVXqamtFUTFgiYrUQMkXKK5SDT3G4QE/uecOTPPzOS55nlyI583r3nxzMzzzOXMmcmc75xzZtKsWbPOwCU9PR1dXV16jM5GiYmJaG5u1mNEREREREREE9tk/T8RERERERER0YTFAAkRERERERERTXgMkBARERERERHRhMcACRERERERERFN
[...]
+
+</details>
+
+<details>
+<summary>Method 3: Command Palette</summary>
+From inside the TDML file, open the Command Palette (Mac = Command+Shift+P,
Windows/Linux = Ctrl+Shift+P)
+Then select the `Daffodil Debug: Execute TDML` command
+<img role="img" aria-label="image" width="1140" height="353" alt="image"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABHQAAAFhCAIAAACeTWpuAAAQAElEQVR4AexdCVxVVf4/smk+FxREprREJtTJJRKXGjQGjaaCEitwLGIMsiyFFhPRhnnDZIqZBVlmwxtHmRyhBQuqyZQhZXIJI5cGpT+iqYUIistLZfP/Pefce9/lvcemqIC/9zn3vnN/57ed74XH/b7fuRcHT3oRAu0Tgb7i5SFeffr0cXd3dxMvX1/fgTavEXG7IKdGCBAChAAhQAh0MATwB87mj95AzFH8SXTDH8c+ffqIP5Ue4s9m3/b5N5+yvsoI3HvvvZ999hn2Mg905OHNN9+cmpq6ffv2fPFCB4cQSrWG9jD/6quvhIWywyGEVvqQyChWcqvDK6NmFcXqUJ+S
[...]
+</details>
+
+</details>
+
+<p>A Daffodil Parse will then be launched. The DFDL Schema file and
+input data file to be used are determined by the selected test case in
+the TDML file. Optionally, the infoset generated from this parse can be
+compared to an infoset included in the zip archive containing the TDML
+file.</p>
+<h1 id="data-editor-1">Data Editor</h1>
+<p>This version of the Apache Daffodil™ Extension for Visual Studio Code
+includes a new Data Editor. To use the Data Editor, open the VS Code
+command palette and select <code>Daffodil Debug: Data Editor</code>.</p>
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABcIAAAEyCAYAAADZU6PeAAAKq2lDQ1BJQ0MgUHJvZmlsZQAASImVlwdUk9kSgO//p4eElhA6hN6ktwBSQmih9yYqIQkQSgiBoGJHxBVcCyoioAi6KqLgqhRZCyKKbVFUsLsgi4iyLhZsqLwfOITdfee9d97kzJkvk7kzc+/5b878AJDlOSJRBiwPQKYwVxzu60mPjYun44YBGhCRjxow53BzRMzQ0ECAyKz9u3zoA9CUvWM+levff/+vosDj53ABgEIRTuLlcDMRPoXoS65InAsAah/i11uSK5riToSpYqRBhO9PccoMj05x0jSjwXRMZDgLYSoAeBKHI04BgERH/PQ8bgqSh+SBsJWQJxAiLELYLTMzi4fwcYSNkRjER5rKz0j6S56Uv+VMkubkcFKkPLOXacF7C
[...]
+
+<p>A notification message will appear that informs where the Data Editor
+logged to. If problems occur, check this log file.</p>
+<img role="img" width="400"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA5oAAADuCAYAAABYrnjBAAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<p>Once the extension is connected to the server, the bottom left corner
+of the Data Editor shows the version of the Ωedit™ server powering the
+editor, and the port it's connected to. Hovering over the filled circle
+shows the CPU load average, the memory usage of the server in bytes, the
+server session count, the server uptime measured in seconds, and the
+round-trip latency measured in milliseconds.</p>
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACbYAAABKCAYAAABt7ZDjAAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<p>After selecting a file to edit, there will be a table with controls
+at the top of the Data Editor.</p>
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAADjwAAAHOCAYAAACWp0HSAAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<p>The first section of the table is called <code>File Metrics</code>
+and it contains the path of the file being edited, its initial size in
+bytes [<code>Disk Size</code>], the size as the file is being edited
+[<code>Computed Size</code>], and the detected Content Type. When
+changes are committed, the <code>Save</code> button will become enabled,
+allowing the changes to be saved to the file. The <code>Redo</code> and
+<code>Undo</code> buttons will redo and undo edit change transactions.
+The <code>Revert All</code> button will revert all edit changes since
+the file was opened. The <code>Profile</code> button will open the
+<code>Data Profiler</code> and allow profiling of all or a portion of
+the edited file.</p>
+<img role="img" width="400"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABL4AAAHECAYAAAA3Y+MMAAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<p>The <code>Data Profiler</code> allows for byte frequency profiling of
+all or a section of the file starting at an editable start offset and
+ending at an editable end offset, or an editable length of bytes. The
+offsets and lengths will use the chosen <code>Address Radix</code>. The
+frequency scale can be either <code>Linear</code> or
+<code>Logrithmic</code>. The graph can have either an <code>ASCII</code>
+overlay that appears behind the graph, or <code>None</code> for no
+overlay behind the graph. Hover over the bars to see the byte frequency
+and value. The frequency data can be downloaded as a Comma Separated
+Value (CSV) file using the <code>Profile as CSV</code> button. Click
+anywhere outside the <code>Data Profiler</code> to close it.</p>
+<p>📝 Note: The maximum length of bytes profiled in this version is
+capped at 10,000,000 (10M).</p>
+<img role="img" width="400"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABLwAAAcGCAYAAAAMZrm0AAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<p>The second section of the table is called <code>Search</code>, and it
+allows for seeking a desired offset and searching of byte sequences in
+the given <code>Edit Encoding</code> in the edited file. The
+<code>Seek</code> input box uses the selected <code>Address Radix</code>
+as the seek radix. If the <code>Edit Encoding</code> can be
+case-insensitive, a <code>Case Insensitive</code> toggle (located inside
+the <code>Search</code> input box) will be displayed allowing for that
+option to be enabled. The found sequences can be examined using the
+<code>First</code>, <code>Prev</code>, <code>Next</code>, and
+<code>Last</code> buttons in this section. The search can be canceled
+using the <code>Cancel</code> button.</p>
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACXIAAALqCAYAAACSOj7/AAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<p>Found sequences can also be replaced in the given
+<code>Edit Encoding</code> by filling in a replacement sequence and
+clicking the <code>Replace...</code> button.</p>
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACYIAAALICAYAAADIEhZbAAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<p>The third section of the table is called <code>Settings</code>, and
+it allows for setting the <code>Display Radix</code>,
+<code>Edit Encoding</code>, and <code>Editing</code> modes.</p>
+<p>The <code>Display Radix</code> can be one of <em>Hexadecimal</em>,
+<em>Decimal</em>, <em>Octal</em>, or <em>Binary</em>, and will affect
+the bytes displayed in the <code>Physical</code> viewport.</p>
+<p>The <code>Edit Encoding</code> can be one of <em>Hexadecimal</em>,
+<em>Binary</em>, <em>ASCII (7-Bit)</em>, <em>Latin-1 (8-bit)</em>,
+<em>UTF-8</em>, or <em>UTF-16LE</em> and will affect the selected bytes
+being edited in the <code>Edit</code> viewport.</p>
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABNQAAAHOCAYAAABQPVTTAAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<p>In <code>Single Byte Edit Mode</code>, individual bytes may be
+<em>deleted</em>, <em>inserted</em> (to the left or the right of the
+selected byte), and <em>overwritten</em> in the
+<code>Single Byte Edit Window</code> that appears when a byte in the
+<code>Physical</code> or <code>Logical</code> viewports is clicked.</p>
+<p>Mouse over the buttons of the <code>Ephemeral Edit Window</code> to
+determine what each button does. Mouse over the <code>Input Box</code>
+and it will show the byte offset position in the
+<code>Address Radix</code> selected radix. Buttons will become enabled
+or disabled depending on whether there is valid input in the
+<code>Input Box</code>. Values entered in the <code>Input Box</code>
+must match the format set by the byte <code>Display Radix</code> when
+editing bytes in the <code>Physical</code> viewport or be in <em>Latin-1
+(8-bit ASCII)</em> format when editing bytes in the <code>Logical</code>
+viewport.</p>
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAAKmCAYAAACsb4NKAAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<p>When clicking on a single byte in either the <code>Physical</code> or
+<code>Logical</code> viewports, the <code>Data Inspector</code> will
+populate giving the value of the byte in Latin-1, and various integer
+formats for the selected endianness. The <code>Data Inspector</code>
+will also show the byte offset position in the
+<code>Address Radix</code> selected radix. The values in the
+<code>Data Inspector</code> are editable by clicking on the value and
+entering a new value.</p>
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACrAAAAKuCAYAAADjW84YAAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<p>In <code>Multiple Byte Edit Mode</code>, a segment of bytes is
+selected from either the <code>Physical</code> or <code>Logical</code>
+viewports, then the selected segment of bytes is edited in the
+<code>Edit</code> viewport using the selected
+<code>Edit Encoding</code>.</p>
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAADhwAAAQ0CAYAAAA/y1faAAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<p>Now changes are made in the selected <code>Edit Encoding</code>.</p>
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAADjIAAAbqCAYAAADR9AjPAAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<p>When valid changes have been made to the segment of bytes in the
+<code>Edit</code> viewport, the <code>Apply</code> button will become
+enabled.</p>
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAADiYAAAeKCAYAAABRMi2zAAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<p>Once editing of the selected segment is completed and is valid, the
+<code>Apply</code> button is pressed, and the edited segment replaces
+the selected segment. As with changes made in
+<code>Single Byte Mode</code>, changes in
+<code>Multiple Byte Edit Mode</code> are also applied as edit
+transactions that can be undone and redone.</p>
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAADkAAAAeoCAYAAADHr/25AAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<p>Byte addresses can be expressed in <em>hexadecimal</em>,
+<em>decimal</em>, or <em>octal</em>. The selected
+<code>Address Radix</code> is also what is used entering an offset into
+the <code>Offset</code> input and for offsets and length in the
+<code>Data Profiler</code>. If an offset is entered in the
+<code>Offset</code> input and the <code>Address Radix</code> is changed,
+the offset will automatically be converted into the selected radix.</p>
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACKgAAAIuCAYAAACR/qIdAAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+<br />
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACLAAAAI6CAYAAAA9wCOMAAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<p>The Data Editor supports light and dark modes. The mode is determined
+by the VSCode theme. If the VSCode theme is set to a light theme, the
+Data Editor will be in light mode. If the VSCode theme is set to a dark
+theme, the Data Editor will be in dark mode.</p>
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABbAAAADkCAYAAABJ/wL9AAAKq2lDQ1BJQ0MgUHJvZmlsZQAASImVlwdUk9kSgO//p4eElhA6hN6ktwBSQmih9yYqIQkQSgiBoGJHxBVcCyoioAi6KqLgqhRZCyKKbVFUsLsgi4iyLhZsqLwfOITdfee9d97kzJkvk7kzc+/5b878AJDlOSJRBiwPQKYwVxzu60mPjYun44YBGhCRjxow53BzRMzQ0ECAyKz9u3zoA9CUvWM+levff/+vosDj53ABgEIRTuLlcDMRPoXoS65InAsAah/i11uSK5riToSpYqRBhO9PccoMj05x0jSjwXRMZDgLYSoAeBKHI04BgERH/PQ8bgqSh+SBsJWQJxAiLELYLTMzi4fwcYSNkRjER5rKz0j6S56Uv+VMkubkcFKkPLOXacF7C
[...]
+<br />
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAADnYAAAesCAYAAAA5003QAAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<h2 id="navigation">Navigation</h2>
+<p>The Data Editor can be navigated using the mouse or keyboard.</p>
+<p>Clicking on the <code>File Progress Indicator Bar</code> will
+navigate to the position in the file that corresponds to the position
+clicked.</p>
+<img role="img" width="800"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABwQAAACQCAYAAAAGPd+oAAAKrWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQU+kWgP97bzoJJQkRkBJ6E6QTQEoILYCCdLARkgChhBgSVGyIiCu4FkREwIauiii4FkDWiigWFkXFrguyCCjrYkFUVN4FhrC7b957887MmfPdc89/zvn/uf/MuQBQVHkSSRqsCkC6WCYN8/dmxsTGMfG9AAe0gBqgAoTHz5SwQ0ODASqT9u/y8T6Axuxdq7Fc//7+v4qaQJjJBwAKRTlBkMlPR/kUqq/4EqkMAGQv6jdcIpOMcTPKdCnaIMoPxzhpggfGOGGcMWA8JiKMgzIdAAKZx5MmAUBmon5mFj8JzUP2QtlGLBCJUZag7JGeniFA+TjKZmgM6iOP5Wcl/CVP0t9yJihy8nhJCp7Yy
[...]
+
+<p>Below the <code>File Progress Indicator Bar</code> are a series of
+buttons that allow for navigating the file. The <code>Home</code> button
+will take you to the beginning, the <code>Page Up</code> button will
+take you to the previous page, the <code>Page Down</code> button will
+take you to the next page, and the <code>End</code> button will take you
+to the end. The <code>Line Up</code> button will take you to the
+previous line, and the <code>Line Down</code> button will take you to
+the next line.</p>
+<h2 id="keyboard-shortcuts">Keyboard Shortcuts</h2>
+<p>The following keyboard shortcuts are available in the Data
+Editor:</p>
+<p>For any input box, including the input box for
+<code>Single Byte Editing Mode</code>, <code>ENTER</code> will submit
+the input, and <code>ESC</code> will cancel the input.</p>
+<p>When using <code>Single Byte Editing Mode</code>,
+<code>CTRL-ENTER</code> will insert a byte to the left of the selected
+byte, <code>SHIFT-ENTER</code> will insert a byte to the right of the
+selected byte, and <code>DELETE</code> will delete the selected
+byte.</p>
+<p>When browsing the data in the <code>Physical</code> or
+<code>Logical</code> viewports, <code>Home</code> will take you to the
+top of the edited file, <code>End</code> will take you to the end of the
+edited file, <code>Page-Up</code> will give you the previous page of the
+edited file, <code>Page-Down</code> will give you the next page of the
+edited file, <code>Arrow-Up</code> will give you the previous line of
+the edited file, and <code>Arrow-Down</code> will give you the next line
+of the edited file.</p>
+<h1 id="known-issues-in-v150">Known Issues in v1.5.0</h1>
+<h2 id="general-issues">General Issues</h2>
+<ul>
+<li>At this time the debugger “Step in" action is temporarily replicated
+for the "Step over" and "Step out" actions. Support for
“Step over” and
+“Step out” will be added in a future release. This problem occurs in all
+Operating Systems. This is <a
href="https://github.com/apache/daffodil-vscode/issues/5">noted as a
+GitHub Issue</a>.</li>
+<li>Some nightly tests are still failing intermittently due to GitHub
+runners.</li>
+<li>Byte highlighting doesn't always work when scrolling through the
+results in the Data Editor</li>
+<li>If debug session is active with the data editor open, another
+instance of the data editor cannot be opened.</li>
+<li>VS Code application may leave a background process running if the
+application is closed while the data editor window is open. This can
+prevent the data editor from opening properly afterward. To restore
+functionality, either stop the lingering process from task manager or
+reboot the system.</li>
+</ul>
+<h1 id="reporting-problems-and-requesting-new-features">Reporting
+Problems and Requesting New Features</h1>
+<p>If problems are encountered or new features are desired, create <a
href="https://github.com/apache/daffodil-vscode/issues">a GitHub
+Issue</a> and label the issue as appropriate. Be sure to include as much
+information as possible for us to fully understand the problem and/or
+suggestion.</p>
+<h1 id="getting-help">Getting Help</h1>
+<p>If additional help or guidance on using Daffodil and its tooling is
+needed, please engage with the community on <a
href="https://daffodil.apache.org/community/">mailing lists</a> and/or
+review the <a
href="https://lists.apache.org/[email protected]">archives</a>.</p>
+<h1 id="contributing">Contributing</h1>
+<p>If you would like to contribute to the project, please look at <a
href="https://github.com/apache/daffodil-vscode/blob/main/DEVELOPMENT.md">Development.md</a>
+for instructions on how to get started.</p>
+<h1 id="additional-resources">Additional Resources</h1>
+<ul>
+<li><a href="https://github.com/apache/daffodil-vscode/wiki">Apache
+Daffodil™ Extension for Visual Studio Code Wiki</a></li>
+<li><a href="https://github.com/apache/daffodil">Apache Daffodil
+Repository</a></li>
+</ul>
+<hr />
+</body>
+</html>
diff --git a/content/vscode/1.5.0/index.html b/content/vscode/1.5.0/index.html
index 346a79e..116e9c7 100644
--- a/content/vscode/1.5.0/index.html
+++ b/content/vscode/1.5.0/index.html
@@ -105,6 +105,11 @@
+ <div class="col-md-3 text-right" style="float: right; z-index: 3;">
+ <h3>Documentation</h3>
+ <a
href="/docs/vscode/1.5.0/Apache-Daffodil-Extension-for-Visual-Studio-Code-1.5.0.html">HTML</a>
| <a
href="/docs/vscode/1.5.0/Apache-Daffodil-Extension-for-Visual-Studio-Code-1.5.0.docx">DOCX</a>
+ </div>
+
<div class="col-md-12">
<h3>Get Release</h3>