From 4bab4616e63b47cf90c17d9266b9232b744787dc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Mar 2026 17:45:26 +0000 Subject: [PATCH 1/2] Initial plan From f6a1a9c93b9446cb94d19d79acf55d5515ccb5ea Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Mar 2026 18:06:13 +0000 Subject: [PATCH 2/2] feat: implement @pretextbook/schema package with upstream schema change detection Co-authored-by: oscarlevin <6504596+oscarlevin@users.noreply.github.com> --- .github/workflows/check-pretext-schema.yml | 87 + .github/workflows/publish-schema.yml | 68 + package-lock.json | 12 +- package.json | 2 +- packages/completions/package.json | 7 +- packages/completions/project.json | 10 +- .../scripts/generate-default-schema.mjs | 190 +- .../completions/src/default-dev-schema.ts | 9430 +---------------- packages/schema/README.md | 55 + packages/schema/package.json | 39 + packages/schema/project.json | 39 + packages/schema/scripts/generate-schema.mjs | 185 + packages/schema/src/index.ts | 2 + packages/schema/src/schema.ts | 9427 ++++++++++++++++ packages/schema/src/types.ts | 13 + packages/schema/tsconfig.json | 13 + packages/schema/tsconfig.lib.json | 9 + tsconfig.json | 3 + 18 files changed, 9969 insertions(+), 9622 deletions(-) create mode 100644 .github/workflows/check-pretext-schema.yml create mode 100644 .github/workflows/publish-schema.yml create mode 100644 packages/schema/README.md create mode 100644 packages/schema/package.json create mode 100644 packages/schema/project.json create mode 100644 packages/schema/scripts/generate-schema.mjs create mode 100644 packages/schema/src/index.ts create mode 100644 packages/schema/src/schema.ts create mode 100644 packages/schema/src/types.ts create mode 100644 packages/schema/tsconfig.json create mode 100644 packages/schema/tsconfig.lib.json diff --git a/.github/workflows/check-pretext-schema.yml b/.github/workflows/check-pretext-schema.yml new file mode 100644 index 0000000..23d271e --- /dev/null +++ b/.github/workflows/check-pretext-schema.yml @@ -0,0 +1,87 @@ +name: Check PreTeXt Schema for Updates + +on: + schedule: + # Runs every Monday at 08:00 UTC + - cron: "0 8 * * 1" + workflow_dispatch: {} + +jobs: + check-schema: + runs-on: ubuntu-latest + permissions: + issues: write + contents: read + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Download latest pretext-dev.rng + run: | + curl -fsSL \ + "https://raw.githubusercontent.com/PreTeXtBook/pretext/refs/heads/master/schema/pretext-dev.rng" \ + -o /tmp/pretext-dev-latest.rng + + - name: Compare with stored schema + id: compare + run: | + STORED="extension/assets/schema/pretext-dev.rng" + LATEST="/tmp/pretext-dev-latest.rng" + + if [ ! -f "$STORED" ]; then + echo "changed=true" >> "$GITHUB_OUTPUT" + echo "reason=Stored schema file not found" >> "$GITHUB_OUTPUT" + exit 0 + fi + + STORED_HASH=$(sha256sum "$STORED" | cut -d ' ' -f1) + LATEST_HASH=$(sha256sum "$LATEST" | cut -d ' ' -f1) + + echo "Stored hash: $STORED_HASH" + echo "Latest hash: $LATEST_HASH" + + if [ "$STORED_HASH" != "$LATEST_HASH" ]; then + echo "changed=true" >> "$GITHUB_OUTPUT" + echo "reason=SHA-256 hash mismatch" >> "$GITHUB_OUTPUT" + else + echo "changed=false" >> "$GITHUB_OUTPUT" + fi + + - name: Check for existing open schema update issue + if: steps.compare.outputs.changed == 'true' + id: existing-issue + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + ISSUE_NUMBER=$(gh issue list \ + --label "schema-update" \ + --state open \ + --json number \ + --jq '.[0].number // empty') + echo "issue_number=${ISSUE_NUMBER}" >> "$GITHUB_OUTPUT" + + - name: Create issue for schema update + if: steps.compare.outputs.changed == 'true' && steps.existing-issue.outputs.issue_number == '' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + LATEST_COMMIT=$(curl -fsSL \ + "https://api.github.com/repos/PreTeXtBook/pretext/commits?path=schema/pretext-dev.rng&per_page=1" \ + | python3 -c "import sys,json; data=json.load(sys.stdin); print(data[0]['sha'][:7] if data else 'unknown')") + + gh issue create \ + --title "Schema update needed: pretext-dev.rng has changed upstream" \ + --label "schema-update" \ + --body "The PreTeXt schema file \`pretext-dev.rng\` in the [PreTeXtBook/pretext](https://github.com/PreTeXtBook/pretext) repository has changed since our last update. + + **Latest upstream commit:** \`${LATEST_COMMIT}\` + + ## Steps to update + + 1. Run \`npm run refresh:schemas\` from the workspace root to download the latest schema and regenerate \`packages/schema/src/schema.ts\`. + 2. Review the diff to understand what changed in the schema. + 3. Update any element descriptions or extra metadata in \`packages/schema/src/schema.ts\` as needed. + 4. Commit the updated \`extension/assets/schema/pretext-dev.rng\` and \`packages/schema/src/schema.ts\`. + + This issue was created automatically by the [check-pretext-schema workflow](https://github.com/${{ github.repository }}/actions/workflows/check-pretext-schema.yml)." diff --git a/.github/workflows/publish-schema.yml b/.github/workflows/publish-schema.yml new file mode 100644 index 0000000..25a4fd2 --- /dev/null +++ b/.github/workflows/publish-schema.yml @@ -0,0 +1,68 @@ +name: Publish Schema Package + +on: + workflow_dispatch: + inputs: + level: + description: "Release level" + required: true + type: choice + default: "patch" + options: + - "patch" + - "minor" + - "major" + +permissions: + id-token: write + contents: write + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "24" + registry-url: "https://registry.npmjs.org" + + - name: Install Dependencies + run: npm install + + - name: Build Package + run: npx nx build schema + + - name: Bump Version + run: | + cd packages/schema + npm version ${{ inputs.level }} + cd ../.. + + - name: Get Version + id: version + run: echo "VERSION=$(jq -r '.version' packages/schema/package.json)" >> $GITHUB_OUTPUT + + - name: Publish to npm + run: | + cd packages/schema + npm publish --provenance + + - name: Commit and Push + run: | + git config user.name "${{ github.actor }}" + git config user.email "${{ github.actor }}@users.noreply.github.com" + git add packages/schema/package.json + git commit -m "chore(schema): bump to v${{ steps.version.outputs.VERSION }}" + git push origin main + + - name: Create Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh release create "schema-v${{ steps.version.outputs.VERSION }}" \ + --repo="$GITHUB_REPOSITORY" \ + --title="Schema Package v${{ steps.version.outputs.VERSION }}" diff --git a/package-lock.json b/package-lock.json index 8ca6364..7496b32 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6782,6 +6782,10 @@ "resolved": "packages/latex-pretext", "link": true }, + "node_modules/@pretextbook/schema": { + "resolved": "packages/schema", + "link": true + }, "node_modules/@pretextbook/visual-editor": { "resolved": "packages/visual-editor", "link": true @@ -27229,6 +27233,7 @@ "version": "0.0.3", "license": "MIT", "dependencies": { + "@pretextbook/schema": "*", "vscode-languageserver": "^9.0.1" } }, @@ -27239,7 +27244,7 @@ }, "packages/latex-pretext": { "name": "@pretextbook/latex-pretext", - "version": "0.0.2", + "version": "0.0.3", "license": "MIT", "dependencies": { "@unified-latex/unified-latex-to-pretext": "github:pretextplus/unified-latex#release/unified-latex-to-pretext", @@ -27260,6 +27265,11 @@ "eslint-config-prettier": "^10.1.8" } }, + "packages/schema": { + "name": "@pretextbook/schema", + "version": "0.0.1", + "license": "MIT" + }, "packages/visual-editor": { "name": "@pretextbook/visual-editor", "version": "0.0.1", diff --git a/package.json b/package.json index 27d326b..a9fd0e3 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "build": "nx build vscode-extension", "build:dev": "nx build:dev vscode-extension", "watch": "NX_TUI=false nx build:watch vscode-extension --outputStyle=stream", - "refresh:schemas": "node ./scripts/getSchemas.js && node ./packages/completions/scripts/generate-default-schema.mjs", + "refresh:schemas": "node ./scripts/getSchemas.js && node ./packages/schema/scripts/generate-schema.mjs", "lint": "nx run-many -t eslint:lint", "test": "nx run-many -t test" }, diff --git a/packages/completions/package.json b/packages/completions/package.json index 4fd0852..edee0fe 100644 --- a/packages/completions/package.json +++ b/packages/completions/package.json @@ -28,12 +28,9 @@ "src/**/*", "README.md" ], - "scripts": { - "fetch:dev-schema": "node ../../scripts/getSchemas.js --only-pretext-dev", - "generate:schema": "node ./scripts/generate-default-schema.mjs", - "prebuild": "npm run fetch:dev-schema && npm run generate:schema" - }, + "scripts": {}, "dependencies": { + "@pretextbook/schema": "*", "vscode-languageserver": "^9.0.1" }, "publishConfig": { diff --git a/packages/completions/project.json b/packages/completions/project.json index 12ef24f..04fad72 100644 --- a/packages/completions/project.json +++ b/packages/completions/project.json @@ -8,7 +8,7 @@ "targets": { "build": { "executor": "nx:run-commands", - "dependsOn": ["refresh-schema", "^build"], + "dependsOn": ["^build"], "options": { "cwd": "packages/completions", "command": "tsc --build tsconfig.lib.json" @@ -27,14 +27,6 @@ "cache": true, "inputs": ["default", "^default"] }, - "refresh-schema": { - "executor": "nx:run-commands", - "options": { - "cwd": "packages/completions", - "command": "npm run fetch:dev-schema && npm run generate:schema" - }, - "cache": false - }, "test": { "executor": "nx:run-commands", "options": { diff --git a/packages/completions/scripts/generate-default-schema.mjs b/packages/completions/scripts/generate-default-schema.mjs index 5f441cb..5a56360 100644 --- a/packages/completions/scripts/generate-default-schema.mjs +++ b/packages/completions/scripts/generate-default-schema.mjs @@ -1,185 +1,17 @@ -import fs from "fs"; +// This script is deprecated. The PreTeXt schema is now generated and maintained +// in packages/schema. Run `packages/schema/scripts/generate-schema.mjs` instead, +// or use `npm run refresh:schemas` from the workspace root. + +import { execFileSync } from "child_process"; import path from "path"; import { fileURLToPath } from "url"; -import { fromXml } from "xast-util-from-xml"; -import { CONTINUE, SKIP, visit } from "unist-util-visit"; -import deepmerge from "deepmerge"; const scriptDir = path.dirname(fileURLToPath(import.meta.url)); -const workspaceRoot = path.resolve(scriptDir, "../../.."); -const schemaPath = path.join( - workspaceRoot, - "extension", - "assets", - "schema", - "pretext-dev.rng", -); -const outputPath = path.join( - workspaceRoot, - "packages", - "completions", - "src", - "default-dev-schema.ts", -); - -function getAst(rngPath) { - let rngFile = fs.readFileSync(rngPath, "utf8"); - const includeRegex = //g; - let match = includeRegex.exec(rngFile); - - while (match !== null) { - const rngDir = path.dirname(rngPath); - const includePath = path.join(rngDir, match[2]); - let includeContent = fs.readFileSync(includePath, "utf8"); - includeContent = includeContent.replace(/<\?xml.*?\?>/, ""); - rngFile = rngFile.replace(match[0], includeContent); - match = includeRegex.exec(rngFile); - } - - return fromXml(rngFile); -} - -function getChildren(elemNode) { - if ( - elemNode.type !== "element" || - !elemNode.children || - elemNode.children.length === 0 - ) { - return {}; - } - - const elements = []; - const attributes = []; - const refs = []; - - visit(elemNode, (node, _index, parent) => { - if (!parent) { - return CONTINUE; - } - - if (node.name === "element") { - if (node.attributes && node.attributes.name) { - elements.push(node.attributes.name); - return SKIP; - } - } else if (node.name === "attribute") { - if (node.attributes && node.attributes.name) { - attributes.push(node.attributes.name); - return SKIP; - } - } else if (node.name === "ref") { - if (node.attributes && node.attributes.name) { - refs.push(node.attributes.name); - return SKIP; - } - } - - return CONTINUE; - }); - - return { elements, attributes, refs }; -} - -function resolveRefs(elements, aliases) { - const resolvedElements = {}; - - for (const elem in elements) { - const resolvedElement = { ...elements[elem] }; - if (!resolvedElement.refs) { - continue; - } - - while (resolvedElement.refs.length > 0) { - const ref = resolvedElement.refs.pop(); - if (ref && aliases[ref]) { - resolvedElement.elements.push(...aliases[ref].elements); - resolvedElement.attributes.push(...aliases[ref].attributes); - if (aliases[ref].refs) { - resolvedElement.refs.push(...aliases[ref].refs); - } - } - } +const newScript = path.resolve(scriptDir, "../../schema/scripts/generate-schema.mjs"); - resolvedElement.elements = [...new Set(resolvedElement.elements)]; - resolvedElement.attributes = [...new Set(resolvedElement.attributes)]; - resolvedElement.refs = undefined; - resolvedElements[elem] = resolvedElement; - } - - return resolvedElements; -} - -function createSchemaElementChildren(schemaAst) { - const tmpElementChildren = {}; - const aliasMap = {}; - - visit(schemaAst, (node) => { - if (node.type === "root") { - return CONTINUE; - } - if (node.type !== "element") { - return SKIP; - } - - if (node.name === "start") { - return SKIP; - } - - if (node.name === "define") { - const nodeName = node.attributes?.name; - if (nodeName) { - aliasMap[nodeName] = deepmerge(aliasMap[nodeName] || {}, getChildren(node)); - } - } else if (node.name === "element") { - const nodeName = node.attributes?.name; - if (nodeName) { - tmpElementChildren[nodeName] = deepmerge( - tmpElementChildren[nodeName] || {}, - getChildren(node), - ); - } - } - - return CONTINUE; - }); - - return resolveRefs(tmpElementChildren, aliasMap); -} - -function sortSchemaElementChildren(elementChildren) { - const sortedNames = Object.keys(elementChildren).sort((a, b) => a.localeCompare(b)); - const sorted = {}; - - for (const name of sortedNames) { - sorted[name] = { - elements: [...elementChildren[name].elements].sort((a, b) => - a.localeCompare(b), - ), - attributes: [...elementChildren[name].attributes].sort((a, b) => - a.localeCompare(b), - ), - }; - } - - return sorted; -} - -function main() { - const schemaAst = getAst(schemaPath); - const elementChildren = createSchemaElementChildren(schemaAst); - const sortedElementChildren = sortSchemaElementChildren(elementChildren); - - const content = `import type { CompletionSchema } from "./types"; - -// Generated by packages/completions/scripts/generate-default-schema.mjs from extension/assets/schema/pretext-dev.rng. -// Do not edit manually. -export const defaultDevSchema: CompletionSchema = { - elementChildren: ${JSON.stringify(sortedElementChildren, null, 2)} -}; -`; - - fs.writeFileSync(outputPath, content); - console.log(`Wrote default schema to ${outputPath}`); -} +console.warn( + "[DEPRECATED] generate-default-schema.mjs is deprecated. " + + "Delegating to packages/schema/scripts/generate-schema.mjs instead.", +); -main(); +execFileSync(process.execPath, [newScript], { stdio: "inherit" }); diff --git a/packages/completions/src/default-dev-schema.ts b/packages/completions/src/default-dev-schema.ts index 2f3da8b..03ccd79 100644 --- a/packages/completions/src/default-dev-schema.ts +++ b/packages/completions/src/default-dev-schema.ts @@ -1,9427 +1,3 @@ -import type { CompletionSchema } from "./types"; - -// Generated by packages/completions/scripts/generate-default-schema.mjs from extension/assets/schema/pretext-dev.rng. -// Do not edit manually. -export const defaultDevSchema: CompletionSchema = { - elementChildren: { - "abbr": { - "elements": [ - "copyleft", - "copyright", - "dblprime", - "degree", - "ellipsis", - "icon", - "kbd", - "langle", - "ldblbracket", - "lq", - "lsq", - "mdash", - "midpoint", - "minus", - "nbsp", - "ndash", - "obelus", - "permille", - "phonomark", - "pilcrow", - "plusminus", - "prime", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "section-mark", - "servicemark", - "solidus", - "swungdash", - "times", - "trademark" - ], - "attributes": [] - }, - "abstract": { - "elements": [ - "blockquote", - "console", - "idx", - "image", - "p", - "pre", - "program", - "tabular", - "video" - ], - "attributes": [ - "component", - "label", - "xml:id" - ] - }, - "acknowledgement": { - "elements": [ - "aside", - "biographical", - "blockquote", - "console", - "historical", - "idx", - "image", - "p", - "paragraphs", - "pre", - "program", - "sbsgroup", - "sidebyside", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "acro": { - "elements": [ - "copyleft", - "copyright", - "dblprime", - "degree", - "ellipsis", - "icon", - "kbd", - "langle", - "ldblbracket", - "lq", - "lsq", - "mdash", - "midpoint", - "minus", - "nbsp", - "ndash", - "obelus", - "permille", - "phonomark", - "pilcrow", - "plusminus", - "prime", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "section-mark", - "servicemark", - "solidus", - "swungdash", - "times", - "trademark" - ], - "attributes": [] - }, - "activity": { - "elements": [ - "answer", - "areas", - "aside", - "biographical", - "blockquote", - "blocks", - "choices", - "conclusion", - "console", - "feedback", - "figure", - "hint", - "historical", - "idx", - "image", - "interactive", - "introduction", - "list", - "listing", - "matches", - "myopenmath", - "ol", - "p", - "postamble", - "postlude", - "pre", - "preamble", - "prelude", - "program", - "response", - "sage", - "sbsgroup", - "sidebyside", - "solution", - "statement", - "table", - "tabular", - "task", - "title", - "video", - "webwork" - ], - "attributes": [ - "adaptive", - "attachment", - "component", - "indentation", - "label", - "language", - "number", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "ad": { - "elements": [], - "attributes": [] - }, - "address": { - "elements": [], - "attributes": [] - }, - "affiliation": { - "elements": [ - "department", - "institution", - "location" - ], - "attributes": [] - }, - "alert": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "algorithm": { - "elements": [ - "argument", - "aside", - "biographical", - "blockquote", - "console", - "creator", - "explanation", - "figure", - "historical", - "idx", - "image", - "interactive", - "justification", - "list", - "listing", - "p", - "pre", - "program", - "proof", - "reasoning", - "sage", - "sbsgroup", - "sidebyside", - "statement", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "alteration": { - "elements": [ - "copyleft", - "copyright", - "dblprime", - "degree", - "ellipsis", - "flat", - "icon", - "kbd", - "langle", - "ldblbracket", - "lq", - "lsq", - "mdash", - "midpoint", - "minus", - "nbsp", - "ndash", - "obelus", - "permille", - "phonomark", - "pilcrow", - "plusminus", - "prime", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "section-mark", - "servicemark", - "sharp", - "solidus", - "swungdash", - "times", - "trademark" - ], - "attributes": [] - }, - "am": { - "elements": [], - "attributes": [] - }, - "angles": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "answer": { - "elements": [ - "argument", - "aside", - "biographical", - "blockquote", - "console", - "explanation", - "figure", - "historical", - "idx", - "image", - "interactive", - "justification", - "list", - "listing", - "p", - "pre", - "program", - "proof", - "reasoning", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "appendix": { - "elements": [ - "activity", - "algorithm", - "argument", - "aside", - "assemblage", - "assumption", - "author", - "axiom", - "biographical", - "blockquote", - "claim", - "computation", - "conclusion", - "conjecture", - "console", - "convention", - "corollary", - "data", - "definition", - "example", - "exercise", - "exercises", - "explanation", - "exploration", - "fact", - "figure", - "fragment", - "glossary", - "handout", - "heuristic", - "historical", - "hypothesis", - "identity", - "idx", - "image", - "insight", - "interactive", - "introduction", - "investigation", - "justification", - "lemma", - "list", - "list-of", - "listing", - "notation-list", - "note", - "objectives", - "observation", - "outcomes", - "p", - "paragraphs", - "plaintitle", - "poem", - "pre", - "principle", - "problem", - "program", - "project", - "proof", - "proposition", - "question", - "reading-questions", - "reasoning", - "references", - "remark", - "sage", - "sbsgroup", - "section", - "shorttitle", - "sidebyside", - "solutions", - "subsection", - "table", - "tabular", - "technology", - "theorem", - "title", - "video", - "warning", - "worksheet" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "archive": { - "elements": [], - "attributes": [ - "from" - ] - }, - "area": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [ - "correct" - ] - }, - "areas": { - "elements": [ - "p" - ], - "attributes": [] - }, - "argument": { - "elements": [ - "aside", - "biographical", - "blockquote", - "case", - "console", - "figure", - "historical", - "idx", - "image", - "interactive", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "article": { - "elements": [ - "activity", - "algorithm", - "argument", - "aside", - "assemblage", - "assumption", - "axiom", - "backmatter", - "biographical", - "blockquote", - "claim", - "computation", - "conclusion", - "conjecture", - "console", - "convention", - "corollary", - "data", - "definition", - "example", - "exercise", - "exercises", - "explanation", - "exploration", - "fact", - "figure", - "fragment", - "frontmatter", - "glossary", - "handout", - "heuristic", - "historical", - "hypothesis", - "identity", - "idx", - "image", - "insight", - "interactive", - "introduction", - "investigation", - "justification", - "lemma", - "list", - "list-of", - "listing", - "note", - "objectives", - "observation", - "outcomes", - "p", - "paragraphs", - "plaintitle", - "poem", - "pre", - "principle", - "problem", - "program", - "project", - "proof", - "proposition", - "question", - "reading-questions", - "reasoning", - "references", - "remark", - "sage", - "sbsgroup", - "section", - "shorttitle", - "sidebyside", - "solutions", - "subtitle", - "table", - "tabular", - "technology", - "theorem", - "title", - "video", - "warning", - "worksheet" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "articletitle": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "aside": { - "elements": [ - "blockquote", - "console", - "idx", - "image", - "p", - "pre", - "program", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "assemblage": { - "elements": [ - "blockquote", - "console", - "idx", - "image", - "p", - "pre", - "program", - "sbsgroup", - "sidebyside", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "assumption": { - "elements": [ - "creator", - "idx", - "statement", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "asymptote": { - "elements": [], - "attributes": [ - "component", - "label" - ] - }, - "asymptote-preamble": { - "elements": [], - "attributes": [] - }, - "attr": { - "elements": [], - "attributes": [] - }, - "attribution": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "line", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "author": { - "elements": [ - "abbr", - "acro", - "ad", - "affiliation", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "biography", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "department", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "institution", - "kbd", - "langle", - "latex", - "ldblbracket", - "location", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "personname", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "support", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [ - "corresponding", - "halign", - "xml:id" - ] - }, - "author-biographies": { - "elements": [], - "attributes": [ - "length" - ] - }, - "axiom": { - "elements": [ - "creator", - "idx", - "statement", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "backmatter": { - "elements": [ - "appendix", - "colophon", - "idx", - "index", - "references", - "solutions", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "bc": { - "elements": [], - "attributes": [] - }, - "bibinfo": { - "elements": [ - "author", - "copyright", - "credit", - "date", - "edition", - "editor", - "keywords", - "support", - "website" - ], - "attributes": [] - }, - "biblio": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "author", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "editor", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "ibid", - "icon", - "idx", - "ie", - "init", - "insert", - "journal", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "note", - "number", - "obelus", - "pages", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "publisher", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "series", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "title", - "today", - "trademark", - "url", - "var", - "viz", - "volume", - "vs", - "webwork", - "xelatex", - "xetex", - "xref", - "year" - ], - "attributes": [ - "component", - "label", - "type", - "xml:id" - ] - }, - "biographical": { - "elements": [ - "blockquote", - "console", - "idx", - "image", - "p", - "pre", - "program", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "biography": { - "elements": [ - "aside", - "biographical", - "blockquote", - "console", - "historical", - "idx", - "image", - "p", - "paragraphs", - "pre", - "program", - "sbsgroup", - "sidebyside", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "block": { - "elements": [ - "blockquote", - "choice", - "cline", - "console", - "image", - "p", - "pre", - "program", - "tabular", - "video" - ], - "attributes": [ - "correct", - "order" - ] - }, - "blockquote": { - "elements": [ - "attribution", - "idx", - "p", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "blocks": { - "elements": [ - "block" - ], - "attributes": [ - "layout", - "randomize" - ] - }, - "blurb": { - "elements": [], - "attributes": [ - "shelf" - ] - }, - "book": { - "elements": [ - "backmatter", - "chapter", - "frontmatter", - "handout", - "idx", - "part", - "plaintitle", - "shorttitle", - "subtitle", - "title", - "worksheet" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "brandlogo": { - "elements": [], - "attributes": [ - "source", - "url" - ] - }, - "c": { - "elements": [], - "attributes": [] - }, - "ca": { - "elements": [], - "attributes": [] - }, - "caption": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "case": { - "elements": [ - "aside", - "biographical", - "blockquote", - "console", - "figure", - "historical", - "idx", - "image", - "interactive", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "direction", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "cd": { - "elements": [ - "cline" - ], - "attributes": [ - "latexsep" - ] - }, - "cell": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "line", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "p", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [ - "bottom", - "colspan", - "halign", - "right" - ] - }, - "chapter": { - "elements": [ - "activity", - "algorithm", - "argument", - "aside", - "assemblage", - "assumption", - "author", - "axiom", - "biographical", - "blockquote", - "claim", - "computation", - "conclusion", - "conjecture", - "console", - "convention", - "corollary", - "data", - "definition", - "example", - "exercise", - "exercises", - "explanation", - "exploration", - "fact", - "figure", - "fragment", - "glossary", - "handout", - "heuristic", - "historical", - "hypothesis", - "identity", - "idx", - "image", - "insight", - "interactive", - "introduction", - "investigation", - "justification", - "lemma", - "list", - "list-of", - "listing", - "note", - "objectives", - "observation", - "outcomes", - "p", - "paragraphs", - "plaintitle", - "poem", - "pre", - "principle", - "problem", - "program", - "project", - "proof", - "proposition", - "question", - "reading-questions", - "reasoning", - "references", - "remark", - "sage", - "sbsgroup", - "section", - "shorttitle", - "sidebyside", - "solutions", - "table", - "tabular", - "technology", - "theorem", - "title", - "video", - "warning", - "worksheet" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "checkpoint": { - "elements": [ - "feedback", - "prompt" - ], - "attributes": [ - "answer", - "answer-variable", - "line" - ] - }, - "choice": { - "elements": [ - "blockquote", - "cline", - "console", - "feedback", - "image", - "p", - "pre", - "program", - "statement", - "tabular", - "video" - ], - "attributes": [ - "correct" - ] - }, - "choices": { - "elements": [ - "choice" - ], - "attributes": [ - "randomize" - ] - }, - "chord": { - "elements": [ - "alteration" - ], - "attributes": [ - "bass", - "bps", - "mode", - "parentheses", - "root", - "suspended" - ] - }, - "claim": { - "elements": [ - "argument", - "aside", - "biographical", - "blockquote", - "console", - "creator", - "explanation", - "figure", - "historical", - "idx", - "image", - "interactive", - "justification", - "list", - "listing", - "p", - "pre", - "program", - "proof", - "reasoning", - "sage", - "sbsgroup", - "sidebyside", - "statement", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "cline": { - "elements": [], - "attributes": [] - }, - "code": { - "elements": [], - "attributes": [] - }, - "col": { - "elements": [], - "attributes": [ - "halign", - "right", - "top", - "width" - ] - }, - "colophon": { - "elements": [ - "blockquote", - "colophon-items", - "console", - "idx", - "image", - "p", - "pre", - "program", - "sbsgroup", - "sidebyside", - "tabular", - "video" - ], - "attributes": [ - "component", - "label", - "xml:id" - ] - }, - "colophon-items": { - "elements": [], - "attributes": [] - }, - "computation": { - "elements": [ - "aside", - "biographical", - "blockquote", - "console", - "figure", - "historical", - "idx", - "image", - "interactive", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "conclusion": { - "elements": [ - "activity", - "algorithm", - "argument", - "aside", - "assemblage", - "assumption", - "axiom", - "biographical", - "blockquote", - "claim", - "computation", - "conjecture", - "console", - "convention", - "corollary", - "data", - "definition", - "example", - "exercise", - "explanation", - "exploration", - "fact", - "figure", - "fragment", - "heuristic", - "historical", - "hypothesis", - "identity", - "idx", - "image", - "insight", - "interactive", - "investigation", - "justification", - "lemma", - "list", - "list-of", - "listing", - "note", - "observation", - "p", - "poem", - "pre", - "principle", - "problem", - "program", - "project", - "proof", - "proposition", - "question", - "reasoning", - "remark", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "technology", - "theorem", - "title", - "video", - "warning" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "conjecture": { - "elements": [ - "creator", - "idx", - "statement", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "console": { - "elements": [ - "input", - "output" - ], - "attributes": [ - "component", - "continuation", - "margins", - "prompt", - "width" - ] - }, - "contributor": { - "elements": [ - "affiliation", - "department", - "email", - "idx", - "institution", - "location", - "personname" - ], - "attributes": [ - "component", - "label", - "xml:id" - ] - }, - "contributors": { - "elements": [ - "contributor" - ], - "attributes": [] - }, - "convention": { - "elements": [ - "aside", - "biographical", - "blockquote", - "console", - "figure", - "historical", - "idx", - "image", - "interactive", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "copyleft": { - "elements": [], - "attributes": [] - }, - "copyright": { - "elements": [ - "holder", - "minilicense", - "shortlicense", - "year" - ], - "attributes": [] - }, - "corollary": { - "elements": [ - "argument", - "aside", - "biographical", - "blockquote", - "console", - "creator", - "explanation", - "figure", - "historical", - "idx", - "image", - "interactive", - "justification", - "list", - "listing", - "p", - "pre", - "program", - "proof", - "reasoning", - "sage", - "sbsgroup", - "sidebyside", - "statement", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "creator": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "viz", - "vs", - "webwork", - "xelatex", - "xetex" - ], - "attributes": [] - }, - "credit": { - "elements": [ - "author", - "entity", - "role", - "title" - ], - "attributes": [] - }, - "cross-references": { - "elements": [], - "attributes": [ - "text" - ] - }, - "data": { - "elements": [ - "aside", - "biographical", - "blockquote", - "console", - "figure", - "historical", - "idx", - "image", - "interactive", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "date": { - "elements": [ - "ad", - "am", - "bc", - "ca", - "copyleft", - "copyright", - "dblprime", - "degree", - "eg", - "ellipsis", - "etal", - "etc", - "fillin", - "icon", - "ie", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "mdash", - "midpoint", - "minus", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "section-mark", - "servicemark", - "solidus", - "swungdash", - "tex", - "timeofday", - "times", - "today", - "trademark", - "viz", - "vs", - "webwork", - "xelatex", - "xetex" - ], - "attributes": [] - }, - "dblbrackets": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "dblprime": { - "elements": [], - "attributes": [] - }, - "dedication": { - "elements": [ - "idx", - "p", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "definition": { - "elements": [ - "idx", - "notation", - "statement", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "degree": { - "elements": [], - "attributes": [] - }, - "delete": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "department": { - "elements": [ - "copyleft", - "copyright", - "dblprime", - "degree", - "ellipsis", - "icon", - "kbd", - "langle", - "ldblbracket", - "line", - "lq", - "lsq", - "mdash", - "midpoint", - "minus", - "nbsp", - "ndash", - "obelus", - "permille", - "phonomark", - "pilcrow", - "plusminus", - "prime", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "section-mark", - "servicemark", - "solidus", - "swungdash", - "times", - "trademark" - ], - "attributes": [] - }, - "description": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "line", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "p", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tabular", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "viz", - "vs", - "webwork", - "xelatex", - "xetex" - ], - "attributes": [] - }, - "division": { - "elements": [], - "attributes": [ - "part" - ] - }, - "dl": { - "elements": [ - "li" - ], - "attributes": [ - "component", - "width" - ] - }, - "docinfo": { - "elements": [ - "asymptote-preamble", - "author-biographies", - "blurb", - "brandlogo", - "cross-references", - "document-id", - "feedback", - "images", - "initialism", - "latex-image-preamble", - "macros", - "math-package", - "numbering", - "parsons", - "programs", - "rename" - ], - "attributes": [ - "xml:base", - "xml:lang" - ] - }, - "document-id": { - "elements": [], - "attributes": [ - "edition" - ] - }, - "doubleflat": { - "elements": [], - "attributes": [] - }, - "doublesharp": { - "elements": [], - "attributes": [] - }, - "edition": { - "elements": [], - "attributes": [] - }, - "editor": { - "elements": [ - "affiliation", - "department", - "email", - "institution", - "location", - "personname" - ], - "attributes": [] - }, - "eg": { - "elements": [], - "attributes": [] - }, - "ellipsis": { - "elements": [], - "attributes": [] - }, - "em": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "email": { - "elements": [], - "attributes": [] - }, - "entity": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "etal": { - "elements": [], - "attributes": [] - }, - "etc": { - "elements": [], - "attributes": [] - }, - "event": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "example": { - "elements": [ - "answer", - "aside", - "biographical", - "blockquote", - "conclusion", - "console", - "figure", - "hint", - "historical", - "idx", - "image", - "interactive", - "introduction", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "solution", - "statement", - "table", - "tabular", - "task", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "exercise": { - "elements": [ - "answer", - "areas", - "aside", - "biographical", - "blockquote", - "blocks", - "choices", - "conclusion", - "console", - "feedback", - "figure", - "hint", - "historical", - "idx", - "image", - "interactive", - "introduction", - "list", - "listing", - "matches", - "myopenmath", - "ol", - "p", - "postamble", - "pre", - "preamble", - "program", - "response", - "sage", - "sbsgroup", - "sidebyside", - "solution", - "statement", - "table", - "tabular", - "task", - "title", - "video", - "webwork" - ], - "attributes": [ - "adaptive", - "attachment", - "component", - "indentation", - "label", - "language", - "number", - "workspace", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "exercisegroup": { - "elements": [ - "conclusion", - "exercise", - "idx", - "introduction", - "title" - ], - "attributes": [ - "cols", - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "exercises": { - "elements": [ - "conclusion", - "exercise", - "exercisegroup", - "idx", - "interactive", - "introduction", - "plaintitle", - "shorttitle", - "subexercises", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "explanation": { - "elements": [ - "aside", - "biographical", - "blockquote", - "case", - "console", - "figure", - "historical", - "idx", - "image", - "interactive", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "exploration": { - "elements": [ - "answer", - "areas", - "aside", - "biographical", - "blockquote", - "blocks", - "choices", - "conclusion", - "console", - "feedback", - "figure", - "hint", - "historical", - "idx", - "image", - "interactive", - "introduction", - "list", - "listing", - "matches", - "myopenmath", - "ol", - "p", - "postamble", - "postlude", - "pre", - "preamble", - "prelude", - "program", - "response", - "sage", - "sbsgroup", - "sidebyside", - "solution", - "statement", - "table", - "tabular", - "task", - "title", - "video", - "webwork" - ], - "attributes": [ - "adaptive", - "attachment", - "component", - "indentation", - "label", - "language", - "number", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "fact": { - "elements": [ - "argument", - "aside", - "biographical", - "blockquote", - "console", - "creator", - "explanation", - "figure", - "historical", - "idx", - "image", - "interactive", - "justification", - "list", - "listing", - "p", - "pre", - "program", - "proof", - "reasoning", - "sage", - "sbsgroup", - "sidebyside", - "statement", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "feedback": { - "elements": [ - "argument", - "aside", - "biographical", - "blockquote", - "console", - "explanation", - "figure", - "historical", - "idx", - "image", - "interactive", - "justification", - "list", - "listing", - "p", - "pre", - "program", - "proof", - "reasoning", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "url", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "figure": { - "elements": [ - "caption", - "idx", - "image", - "interactive", - "sbsgroup", - "score", - "sidebyside", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "landscape", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "fillin": { - "elements": [], - "attributes": [ - "characters", - "cols", - "fill", - "rows" - ] - }, - "flat": { - "elements": [], - "attributes": [] - }, - "fn": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "idx", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [ - "component", - "label", - "xml:id" - ] - }, - "foreign": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [ - "xml:lang" - ] - }, - "fragment": { - "elements": [ - "code", - "fragref", - "title" - ], - "attributes": [ - "filename", - "xml:id" - ] - }, - "fragref": { - "elements": [], - "attributes": [ - "ref" - ] - }, - "frontmatter": { - "elements": [ - "abstract", - "acknowledgement", - "bibinfo", - "biography", - "colophon", - "dedication", - "idx", - "preface", - "title", - "titlepage" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "genus": { - "elements": [], - "attributes": [] - }, - "gi": { - "elements": [ - "aside", - "biographical", - "blockquote", - "console", - "historical", - "idx", - "image", - "p", - "pre", - "program", - "sbsgroup", - "sidebyside", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "glossary": { - "elements": [ - "gi", - "headnote", - "idx", - "plaintitle", - "shorttitle", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "h": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "viz", - "vs", - "webwork", - "xelatex", - "xetex" - ], - "attributes": [ - "sortby" - ] - }, - "handout": { - "elements": [ - "activity", - "algorithm", - "argument", - "aside", - "assemblage", - "assumption", - "axiom", - "biographical", - "blockquote", - "claim", - "computation", - "conclusion", - "conjecture", - "console", - "convention", - "corollary", - "data", - "definition", - "example", - "exercise", - "explanation", - "exploration", - "fact", - "figure", - "fragment", - "heuristic", - "historical", - "hypothesis", - "identity", - "idx", - "image", - "insight", - "interactive", - "introduction", - "investigation", - "justification", - "lemma", - "list", - "list-of", - "listing", - "note", - "objectives", - "observation", - "outcomes", - "p", - "page", - "plaintitle", - "poem", - "pre", - "principle", - "problem", - "program", - "project", - "proof", - "proposition", - "question", - "reasoning", - "remark", - "sage", - "sbsgroup", - "shorttitle", - "sidebyside", - "table", - "tabular", - "technology", - "theorem", - "title", - "video", - "warning" - ], - "attributes": [ - "bottom", - "component", - "label", - "left", - "margin", - "right", - "top", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "headnote": { - "elements": [ - "aside", - "biographical", - "blockquote", - "console", - "historical", - "image", - "p", - "pre", - "program", - "sbsgroup", - "sidebyside", - "tabular", - "video" - ], - "attributes": [] - }, - "heuristic": { - "elements": [ - "creator", - "idx", - "statement", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "hint": { - "elements": [ - "argument", - "aside", - "biographical", - "blockquote", - "console", - "explanation", - "figure", - "historical", - "idx", - "image", - "interactive", - "justification", - "list", - "listing", - "p", - "pre", - "program", - "proof", - "reasoning", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "historical": { - "elements": [ - "blockquote", - "console", - "idx", - "image", - "p", - "pre", - "program", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "holder": { - "elements": [], - "attributes": [] - }, - "hypothesis": { - "elements": [ - "creator", - "idx", - "statement", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "ibid": { - "elements": [], - "attributes": [] - }, - "icon": { - "elements": [], - "attributes": [ - "name" - ] - }, - "identity": { - "elements": [ - "argument", - "aside", - "biographical", - "blockquote", - "console", - "creator", - "explanation", - "figure", - "historical", - "idx", - "image", - "interactive", - "justification", - "list", - "listing", - "p", - "pre", - "program", - "proof", - "reasoning", - "sage", - "sbsgroup", - "sidebyside", - "statement", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "idx": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "h", - "icon", - "idx", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "see", - "seealso", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "viz", - "vs", - "webwork", - "xelatex", - "xetex" - ], - "attributes": [ - "component", - "finish", - "label", - "sortby", - "start", - "xml:id" - ] - }, - "ie": { - "elements": [], - "attributes": [] - }, - "image": { - "elements": [ - "asymptote", - "description", - "latex-image", - "sageplot", - "shortdescription" - ], - "attributes": [ - "archive", - "component", - "decorative", - "margins", - "pg-name", - "rotate", - "source", - "width", - "xml:id" - ] - }, - "images": { - "elements": [ - "archive" - ], - "attributes": [] - }, - "index": { - "elements": [ - "idx", - "index-list", - "plaintitle", - "shorttitle", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "index-list": { - "elements": [], - "attributes": [] - }, - "init": { - "elements": [ - "copyleft", - "copyright", - "dblprime", - "degree", - "ellipsis", - "icon", - "kbd", - "langle", - "ldblbracket", - "lq", - "lsq", - "mdash", - "midpoint", - "minus", - "nbsp", - "ndash", - "obelus", - "permille", - "phonomark", - "pilcrow", - "plusminus", - "prime", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "section-mark", - "servicemark", - "solidus", - "swungdash", - "times", - "trademark" - ], - "attributes": [] - }, - "initialism": { - "elements": [], - "attributes": [] - }, - "input": { - "elements": [], - "attributes": [ - "continuation", - "onclick", - "onkeypress", - "prompt", - "style", - "type", - "value" - ] - }, - "insert": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "insight": { - "elements": [ - "aside", - "biographical", - "blockquote", - "console", - "figure", - "historical", - "idx", - "image", - "interactive", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "institution": { - "elements": [ - "copyleft", - "copyright", - "dblprime", - "degree", - "ellipsis", - "icon", - "kbd", - "langle", - "ldblbracket", - "line", - "lq", - "lsq", - "mdash", - "midpoint", - "minus", - "nbsp", - "ndash", - "obelus", - "permille", - "phonomark", - "pilcrow", - "plusminus", - "prime", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "section-mark", - "servicemark", - "solidus", - "swungdash", - "times", - "trademark" - ], - "attributes": [] - }, - "instruction": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "viz", - "vs", - "webwork", - "xelatex", - "xetex" - ], - "attributes": [] - }, - "instructions": { - "elements": [ - "blockquote", - "console", - "idx", - "image", - "p", - "pre", - "program", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "interactive": { - "elements": [ - "instructions", - "sbsgroup", - "sidebyside", - "slate", - "static" - ], - "attributes": [ - "aspect", - "component", - "iframe", - "label", - "platform", - "preview", - "source", - "version", - "width", - "xml:id" - ] - }, - "interlude": { - "elements": [ - "blockquote", - "console", - "image", - "p", - "pre", - "program", - "tabular", - "video" - ], - "attributes": [] - }, - "intertext": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "introduction": { - "elements": [ - "activity", - "algorithm", - "argument", - "aside", - "assemblage", - "assumption", - "axiom", - "biographical", - "blockquote", - "claim", - "computation", - "conjecture", - "console", - "convention", - "corollary", - "data", - "definition", - "example", - "exercise", - "explanation", - "exploration", - "fact", - "figure", - "fragment", - "heuristic", - "historical", - "hypothesis", - "identity", - "idx", - "image", - "insight", - "interactive", - "investigation", - "justification", - "lemma", - "list", - "list-of", - "listing", - "note", - "observation", - "p", - "poem", - "pre", - "principle", - "problem", - "program", - "project", - "proof", - "proposition", - "question", - "reasoning", - "remark", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "technology", - "theorem", - "title", - "video", - "warning" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "investigation": { - "elements": [ - "answer", - "areas", - "aside", - "biographical", - "blockquote", - "blocks", - "choices", - "conclusion", - "console", - "feedback", - "figure", - "hint", - "historical", - "idx", - "image", - "interactive", - "introduction", - "list", - "listing", - "matches", - "myopenmath", - "ol", - "p", - "postamble", - "postlude", - "pre", - "preamble", - "prelude", - "program", - "response", - "sage", - "sbsgroup", - "sidebyside", - "solution", - "statement", - "table", - "tabular", - "task", - "title", - "video", - "webwork" - ], - "attributes": [ - "adaptive", - "attachment", - "component", - "indentation", - "label", - "language", - "number", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "iotest": { - "elements": [ - "input", - "output" - ], - "attributes": [] - }, - "journal": { - "elements": [ - "copyleft", - "copyright", - "dblprime", - "degree", - "ellipsis", - "icon", - "kbd", - "langle", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "nbsp", - "ndash", - "obelus", - "permille", - "phonomark", - "pilcrow", - "plusminus", - "prime", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "section-mark", - "servicemark", - "solidus", - "swungdash", - "times", - "trademark" - ], - "attributes": [] - }, - "justification": { - "elements": [ - "aside", - "biographical", - "blockquote", - "case", - "console", - "figure", - "historical", - "idx", - "image", - "interactive", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "kbd": { - "elements": [], - "attributes": [ - "name" - ] - }, - "keyword": { - "elements": [ - "copyleft", - "copyright", - "dblprime", - "degree", - "ellipsis", - "icon", - "kbd", - "langle", - "ldblbracket", - "lq", - "lsq", - "mdash", - "midpoint", - "minus", - "nbsp", - "ndash", - "obelus", - "permille", - "phonomark", - "pilcrow", - "plusminus", - "prime", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "section-mark", - "servicemark", - "solidus", - "swungdash", - "times", - "trademark" - ], - "attributes": [ - "primary" - ] - }, - "keywords": { - "elements": [ - "keyword", - "title" - ], - "attributes": [ - "authority", - "variant" - ] - }, - "langle": { - "elements": [], - "attributes": [] - }, - "latex": { - "elements": [], - "attributes": [] - }, - "latex-image": { - "elements": [], - "attributes": [ - "component", - "label" - ] - }, - "latex-image-preamble": { - "elements": [], - "attributes": [] - }, - "ldblbracket": { - "elements": [], - "attributes": [] - }, - "lemma": { - "elements": [ - "argument", - "aside", - "biographical", - "blockquote", - "console", - "creator", - "explanation", - "figure", - "historical", - "idx", - "image", - "interactive", - "justification", - "list", - "listing", - "p", - "pre", - "program", - "proof", - "reasoning", - "sage", - "sbsgroup", - "sidebyside", - "statement", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "letter": { - "elements": [], - "attributes": [] - }, - "li": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "aside", - "attr", - "bc", - "biographical", - "blockquote", - "c", - "ca", - "cd", - "chord", - "console", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "dl", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "figure", - "fillin", - "flat", - "fn", - "foreign", - "historical", - "icon", - "idx", - "ie", - "image", - "init", - "insert", - "interactive", - "kbd", - "langle", - "latex", - "ldblbracket", - "list", - "listing", - "lq", - "lsq", - "m", - "md", - "mdash", - "mdn", - "me", - "men", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "notation", - "obelus", - "ol", - "p", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "pre", - "prefigure", - "pretext", - "prime", - "program", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "sage", - "sbsgroup", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "sidebyside", - "solidus", - "sq", - "stale", - "swungdash", - "table", - "tabular", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "title", - "today", - "trademark", - "ul", - "url", - "var", - "video", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "line": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [ - "indent" - ] - }, - "list": { - "elements": [ - "conclusion", - "dl", - "idx", - "introduction", - "ol", - "plaintitle", - "shorttitle", - "title", - "ul" - ], - "attributes": [ - "component", - "label", - "landscape", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "list-of": { - "elements": [], - "attributes": [ - "divisions", - "elements", - "empty", - "scope" - ] - }, - "listing": { - "elements": [ - "console", - "idx", - "plaintitle", - "program", - "shorttitle", - "title" - ], - "attributes": [ - "component", - "label", - "landscape", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "location": { - "elements": [ - "copyleft", - "copyright", - "dblprime", - "degree", - "ellipsis", - "icon", - "kbd", - "langle", - "ldblbracket", - "line", - "lq", - "lsq", - "mdash", - "midpoint", - "minus", - "nbsp", - "ndash", - "obelus", - "permille", - "phonomark", - "pilcrow", - "plusminus", - "prime", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "section-mark", - "servicemark", - "solidus", - "swungdash", - "times", - "trademark" - ], - "attributes": [] - }, - "lq": { - "elements": [], - "attributes": [] - }, - "lsq": { - "elements": [], - "attributes": [] - }, - "m": { - "elements": [ - "fillin", - "var" - ], - "attributes": [] - }, - "macro-file": { - "elements": [], - "attributes": [] - }, - "macros": { - "elements": [], - "attributes": [] - }, - "mag": { - "elements": [], - "attributes": [] - }, - "match": { - "elements": [ - "premise", - "response" - ], - "attributes": [ - "order" - ] - }, - "matches": { - "elements": [ - "match" - ], - "attributes": [] - }, - "math-package": { - "elements": [], - "attributes": [ - "latex-name", - "mathjax-name" - ] - }, - "md": { - "elements": [ - "fillin", - "intertext", - "mrow", - "var", - "xref" - ], - "attributes": [ - "alignat-columns", - "alignment", - "break", - "number" - ] - }, - "mdash": { - "elements": [], - "attributes": [] - }, - "mdn": { - "elements": [ - "fillin", - "intertext", - "mrow", - "var" - ], - "attributes": [ - "alignat-columns", - "alignment", - "break", - "number" - ] - }, - "me": { - "elements": [ - "fillin", - "idx", - "var", - "xref" - ], - "attributes": [ - "component", - "label", - "xml:id" - ] - }, - "memo": { - "elements": [], - "attributes": [] - }, - "men": { - "elements": [ - "fillin", - "idx", - "var", - "xref" - ], - "attributes": [ - "component", - "label", - "xml:id" - ] - }, - "midpoint": { - "elements": [], - "attributes": [] - }, - "minilicense": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "viz", - "vs", - "webwork", - "xelatex", - "xetex" - ], - "attributes": [] - }, - "minus": { - "elements": [], - "attributes": [] - }, - "mrow": { - "elements": [ - "fillin", - "idx", - "var", - "xref" - ], - "attributes": [ - "break", - "component", - "label", - "number", - "tag", - "xml:id" - ] - }, - "myopenmath": { - "elements": [], - "attributes": [ - "params", - "problem" - ] - }, - "n": { - "elements": [], - "attributes": [ - "acc", - "octave", - "pc" - ] - }, - "name": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "viz", - "vs", - "webwork", - "xelatex", - "xetex" - ], - "attributes": [] - }, - "natural": { - "elements": [], - "attributes": [] - }, - "nb": { - "elements": [], - "attributes": [] - }, - "nbsp": { - "elements": [], - "attributes": [] - }, - "ndash": { - "elements": [], - "attributes": [] - }, - "notation": { - "elements": [ - "description", - "usage" - ], - "attributes": [] - }, - "notation-list": { - "elements": [], - "attributes": [] - }, - "note": { - "elements": [ - "aside", - "biographical", - "blockquote", - "console", - "figure", - "historical", - "idx", - "image", - "interactive", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "number": { - "elements": [], - "attributes": [] - }, - "numbering": { - "elements": [ - "division" - ], - "attributes": [] - }, - "obelus": { - "elements": [], - "attributes": [] - }, - "objectives": { - "elements": [ - "conclusion", - "dl", - "idx", - "introduction", - "ol", - "title", - "ul" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "observation": { - "elements": [ - "aside", - "biographical", - "blockquote", - "console", - "figure", - "historical", - "idx", - "image", - "interactive", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "ol": { - "elements": [ - "li" - ], - "attributes": [ - "cols", - "component", - "marker" - ] - }, - "outcomes": { - "elements": [ - "conclusion", - "dl", - "idx", - "introduction", - "ol", - "title", - "ul" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "output": { - "elements": [], - "attributes": [] - }, - "p": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "area", - "articletitle", - "attr", - "bc", - "c", - "ca", - "cd", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "dl", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "fn", - "foreign", - "icon", - "idx", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "line", - "lq", - "lsq", - "m", - "md", - "mdash", - "mdn", - "me", - "men", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "notation", - "obelus", - "ol", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "ul", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [ - "component", - "label", - "xml:id" - ] - }, - "page": { - "elements": [ - "activity", - "algorithm", - "argument", - "aside", - "assemblage", - "assumption", - "axiom", - "biographical", - "blockquote", - "claim", - "computation", - "conjecture", - "console", - "convention", - "corollary", - "data", - "definition", - "example", - "exercise", - "explanation", - "exploration", - "fact", - "figure", - "fragment", - "heuristic", - "historical", - "hypothesis", - "identity", - "image", - "insight", - "interactive", - "investigation", - "justification", - "lemma", - "list", - "list-of", - "listing", - "note", - "observation", - "p", - "poem", - "pre", - "principle", - "problem", - "program", - "project", - "proof", - "proposition", - "question", - "reasoning", - "remark", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "technology", - "theorem", - "video", - "warning" - ], - "attributes": [] - }, - "pages": { - "elements": [], - "attributes": [ - "end", - "start" - ] - }, - "paragraphs": { - "elements": [ - "activity", - "algorithm", - "argument", - "aside", - "assemblage", - "assumption", - "axiom", - "biographical", - "blockquote", - "claim", - "computation", - "conjecture", - "console", - "convention", - "corollary", - "data", - "definition", - "example", - "exercise", - "explanation", - "exploration", - "fact", - "figure", - "fragment", - "heuristic", - "historical", - "hypothesis", - "identity", - "idx", - "image", - "insight", - "interactive", - "investigation", - "justification", - "lemma", - "list", - "list-of", - "listing", - "note", - "observation", - "p", - "poem", - "pre", - "principle", - "problem", - "program", - "project", - "proof", - "proposition", - "question", - "reasoning", - "remark", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "technology", - "theorem", - "title", - "video", - "warning" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "parsons": { - "elements": [], - "attributes": [ - "language" - ] - }, - "part": { - "elements": [ - "chapter", - "idx", - "plaintitle", - "shorttitle", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "per": { - "elements": [], - "attributes": [ - "base", - "exp", - "prefix" - ] - }, - "permille": { - "elements": [], - "attributes": [] - }, - "personname": { - "elements": [ - "copyleft", - "copyright", - "dblprime", - "degree", - "ellipsis", - "icon", - "kbd", - "langle", - "ldblbracket", - "lq", - "lsq", - "mdash", - "midpoint", - "minus", - "nbsp", - "ndash", - "obelus", - "permille", - "phonomark", - "pilcrow", - "plusminus", - "prime", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "section-mark", - "servicemark", - "solidus", - "swungdash", - "times", - "trademark" - ], - "attributes": [] - }, - "pf": { - "elements": [], - "attributes": [ - "language" - ] - }, - "pg-code": { - "elements": [], - "attributes": [] - }, - "pg-macros": { - "elements": [ - "macro-file" - ], - "attributes": [] - }, - "phonomark": { - "elements": [], - "attributes": [] - }, - "pilcrow": { - "elements": [], - "attributes": [] - }, - "plaintitle": { - "elements": [], - "attributes": [] - }, - "plusminus": { - "elements": [], - "attributes": [] - }, - "pm": { - "elements": [], - "attributes": [] - }, - "poem": { - "elements": [ - "author", - "idx", - "line", - "stanza", - "title" - ], - "attributes": [ - "component", - "halign", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "postamble": { - "elements": [], - "attributes": [ - "indent", - "visible" - ] - }, - "postlude": { - "elements": [ - "blockquote", - "console", - "image", - "p", - "pre", - "program", - "tabular", - "video" - ], - "attributes": [] - }, - "pre": { - "elements": [ - "cline" - ], - "attributes": [] - }, - "preamble": { - "elements": [], - "attributes": [ - "indent", - "visible" - ] - }, - "preface": { - "elements": [ - "aside", - "attribution", - "biographical", - "blockquote", - "console", - "contributors", - "historical", - "idx", - "image", - "p", - "paragraphs", - "pre", - "program", - "sbsgroup", - "sidebyside", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "prefigure": { - "elements": [], - "attributes": [] - }, - "prelude": { - "elements": [ - "blockquote", - "console", - "image", - "p", - "pre", - "program", - "tabular", - "video" - ], - "attributes": [] - }, - "premise": { - "elements": [ - "blockquote", - "console", - "image", - "p", - "pre", - "program", - "tabular", - "video" - ], - "attributes": [] - }, - "pretext": { - "elements": [ - "article", - "book", - "docinfo", - "letter", - "memo" - ], - "attributes": [ - "xml:lang" - ] - }, - "prime": { - "elements": [], - "attributes": [] - }, - "principle": { - "elements": [ - "creator", - "idx", - "statement", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "problem": { - "elements": [ - "answer", - "aside", - "biographical", - "blockquote", - "conclusion", - "console", - "figure", - "hint", - "historical", - "idx", - "image", - "interactive", - "introduction", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "solution", - "statement", - "table", - "tabular", - "task", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "program": { - "elements": [ - "checkpoint", - "code", - "postamble", - "preamble", - "stdin", - "tests" - ], - "attributes": [ - "add-files", - "autorun", - "chatcodes", - "codelens", - "compile-also", - "compiler-args", - "component", - "database", - "download", - "extra-compiler-args", - "filename", - "hidecode", - "highlight-lines", - "include", - "interactive", - "interpreter-args", - "label", - "language", - "line-numbers", - "linker-args", - "margins", - "starting-step", - "timelimit", - "width", - "xml:id" - ] - }, - "programs": { - "elements": [], - "attributes": [ - "compiler-args", - "download", - "interpreter-args", - "language", - "linenumbers", - "linker-args", - "timeout" - ] - }, - "project": { - "elements": [ - "answer", - "areas", - "aside", - "biographical", - "blockquote", - "blocks", - "choices", - "conclusion", - "console", - "feedback", - "figure", - "hint", - "historical", - "idx", - "image", - "interactive", - "introduction", - "list", - "listing", - "matches", - "myopenmath", - "ol", - "p", - "postamble", - "postlude", - "pre", - "preamble", - "prelude", - "program", - "response", - "sage", - "sbsgroup", - "sidebyside", - "solution", - "statement", - "table", - "tabular", - "task", - "title", - "video", - "webwork" - ], - "attributes": [ - "adaptive", - "attachment", - "component", - "indentation", - "label", - "language", - "number", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "prompt": { - "elements": [ - "blockquote", - "console", - "image", - "p", - "pre", - "program", - "tabular", - "video" - ], - "attributes": [] - }, - "proof": { - "elements": [ - "aside", - "biographical", - "blockquote", - "case", - "console", - "figure", - "historical", - "idx", - "image", - "interactive", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "proposition": { - "elements": [ - "argument", - "aside", - "biographical", - "blockquote", - "console", - "creator", - "explanation", - "figure", - "historical", - "idx", - "image", - "interactive", - "justification", - "list", - "listing", - "p", - "pre", - "program", - "proof", - "reasoning", - "sage", - "sbsgroup", - "sidebyside", - "statement", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "ps": { - "elements": [], - "attributes": [] - }, - "publisher": { - "elements": [], - "attributes": [] - }, - "pubtitle": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "q": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "area", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "quantity": { - "elements": [ - "mag", - "per", - "unit" - ], - "attributes": [] - }, - "question": { - "elements": [ - "answer", - "aside", - "biographical", - "blockquote", - "conclusion", - "console", - "figure", - "hint", - "historical", - "idx", - "image", - "interactive", - "introduction", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "solution", - "statement", - "table", - "tabular", - "task", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "rangle": { - "elements": [], - "attributes": [] - }, - "rdblbracket": { - "elements": [], - "attributes": [] - }, - "reading-questions": { - "elements": [ - "conclusion", - "exercise", - "idx", - "introduction", - "plaintitle", - "shorttitle", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "reasoning": { - "elements": [ - "aside", - "biographical", - "blockquote", - "case", - "console", - "figure", - "historical", - "idx", - "image", - "interactive", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "references": { - "elements": [ - "biblio", - "conclusion", - "idx", - "introduction", - "plaintitle", - "shorttitle", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "registered": { - "elements": [], - "attributes": [] - }, - "remark": { - "elements": [ - "aside", - "biographical", - "blockquote", - "console", - "figure", - "historical", - "idx", - "image", - "interactive", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "rename": { - "elements": [], - "attributes": [ - "element", - "xml:lang" - ] - }, - "response": { - "elements": [ - "blockquote", - "console", - "image", - "p", - "pre", - "program", - "tabular", - "video" - ], - "attributes": [] - }, - "role": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "viz", - "vs", - "webwork", - "xelatex", - "xetex" - ], - "attributes": [] - }, - "row": { - "elements": [ - "cell" - ], - "attributes": [ - "bottom", - "halign", - "header", - "left", - "valign" - ] - }, - "rq": { - "elements": [], - "attributes": [] - }, - "rsq": { - "elements": [], - "attributes": [] - }, - "sage": { - "elements": [ - "input", - "output" - ], - "attributes": [ - "auto-evaluate", - "component", - "doctest", - "language", - "tolerance", - "type" - ] - }, - "sageplot": { - "elements": [], - "attributes": [ - "aspect", - "component", - "label", - "variant" - ] - }, - "sbsgroup": { - "elements": [ - "sidebyside" - ], - "attributes": [ - "component", - "margins", - "valign", - "valigns", - "width", - "widths" - ] - }, - "scaledeg": { - "elements": [], - "attributes": [] - }, - "score": { - "elements": [], - "attributes": [ - "musescore", - "musescoreuser" - ] - }, - "section": { - "elements": [ - "activity", - "algorithm", - "argument", - "aside", - "assemblage", - "assumption", - "author", - "axiom", - "biographical", - "blockquote", - "claim", - "computation", - "conclusion", - "conjecture", - "console", - "convention", - "corollary", - "data", - "definition", - "example", - "exercise", - "exercises", - "explanation", - "exploration", - "fact", - "figure", - "fragment", - "glossary", - "handout", - "heuristic", - "historical", - "hypothesis", - "identity", - "idx", - "image", - "insight", - "interactive", - "introduction", - "investigation", - "justification", - "lemma", - "list", - "list-of", - "listing", - "note", - "objectives", - "observation", - "outcomes", - "p", - "paragraphs", - "plaintitle", - "poem", - "pre", - "principle", - "problem", - "program", - "project", - "proof", - "proposition", - "question", - "reading-questions", - "reasoning", - "references", - "remark", - "sage", - "sbsgroup", - "shorttitle", - "sidebyside", - "solutions", - "subsection", - "table", - "tabular", - "technology", - "theorem", - "title", - "video", - "warning", - "worksheet" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "section-mark": { - "elements": [], - "attributes": [] - }, - "see": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "viz", - "vs", - "webwork", - "xelatex", - "xetex" - ], - "attributes": [] - }, - "seealso": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "viz", - "vs", - "webwork", - "xelatex", - "xetex" - ], - "attributes": [] - }, - "series": { - "elements": [], - "attributes": [] - }, - "servicemark": { - "elements": [], - "attributes": [] - }, - "sharp": { - "elements": [], - "attributes": [] - }, - "shortdescription": { - "elements": [ - "var" - ], - "attributes": [] - }, - "shortlicense": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "fn", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "shorttitle": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "viz", - "vs", - "webwork", - "xelatex", - "xetex" - ], - "attributes": [] - }, - "sidebyside": { - "elements": [ - "console", - "dl", - "exercise", - "figure", - "image", - "interactive", - "list", - "listing", - "ol", - "p", - "poem", - "pre", - "program", - "slate", - "stack", - "table", - "tabular", - "task", - "ul", - "video" - ], - "attributes": [ - "component", - "margins", - "valign", - "valigns", - "width", - "widths" - ] - }, - "slate": { - "elements": [ - "input", - "p", - "sidebyside", - "tabular", - "xhtml:button" - ], - "attributes": [ - "aspect", - "axis", - "component", - "grid", - "label", - "material", - "source", - "surface", - "xml:id" - ] - }, - "solidus": { - "elements": [], - "attributes": [] - }, - "solution": { - "elements": [ - "argument", - "aside", - "biographical", - "blockquote", - "console", - "explanation", - "figure", - "historical", - "idx", - "image", - "interactive", - "justification", - "list", - "listing", - "p", - "pre", - "program", - "proof", - "reasoning", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "solutions": { - "elements": [ - "conclusion", - "idx", - "introduction", - "plaintitle", - "shorttitle", - "title" - ], - "attributes": [ - "admit", - "component", - "divisional", - "inline", - "label", - "project", - "reading", - "scope", - "worksheet", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "species": { - "elements": [], - "attributes": [] - }, - "sq": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "area", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "stack": { - "elements": [ - "console", - "dl", - "image", - "ol", - "p", - "pre", - "program", - "slate", - "tabular", - "ul", - "video" - ], - "attributes": [] - }, - "stale": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "stanza": { - "elements": [ - "idx", - "line", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "statement": { - "elements": [ - "aside", - "biographical", - "blockquote", - "console", - "figure", - "historical", - "image", - "instruction", - "interactive", - "list", - "listing", - "ol", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "video" - ], - "attributes": [ - "correct" - ] - }, - "static": { - "elements": [ - "image" - ], - "attributes": [] - }, - "stdin": { - "elements": [], - "attributes": [] - }, - "subexercises": { - "elements": [ - "conclusion", - "exercise", - "exercisegroup", - "idx", - "introduction", - "plaintitle", - "shorttitle", - "title" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "subsection": { - "elements": [ - "activity", - "algorithm", - "argument", - "aside", - "assemblage", - "assumption", - "author", - "axiom", - "biographical", - "blockquote", - "claim", - "computation", - "conclusion", - "conjecture", - "console", - "convention", - "corollary", - "data", - "definition", - "example", - "exercise", - "exercises", - "explanation", - "exploration", - "fact", - "figure", - "fragment", - "glossary", - "handout", - "heuristic", - "historical", - "hypothesis", - "identity", - "idx", - "image", - "insight", - "interactive", - "introduction", - "investigation", - "justification", - "lemma", - "list", - "list-of", - "listing", - "note", - "objectives", - "observation", - "outcomes", - "p", - "paragraphs", - "plaintitle", - "poem", - "pre", - "principle", - "problem", - "program", - "project", - "proof", - "proposition", - "question", - "reading-questions", - "reasoning", - "references", - "remark", - "sage", - "sbsgroup", - "shorttitle", - "sidebyside", - "solutions", - "subsubsection", - "table", - "tabular", - "technology", - "theorem", - "title", - "video", - "warning", - "worksheet" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "subsubsection": { - "elements": [ - "activity", - "algorithm", - "argument", - "aside", - "assemblage", - "assumption", - "author", - "axiom", - "biographical", - "blockquote", - "claim", - "computation", - "conjecture", - "console", - "convention", - "corollary", - "data", - "definition", - "example", - "exercise", - "exercises", - "explanation", - "exploration", - "fact", - "figure", - "fragment", - "glossary", - "handout", - "heuristic", - "historical", - "hypothesis", - "identity", - "idx", - "image", - "insight", - "interactive", - "investigation", - "justification", - "lemma", - "list", - "list-of", - "listing", - "note", - "objectives", - "observation", - "outcomes", - "p", - "paragraphs", - "plaintitle", - "poem", - "pre", - "principle", - "problem", - "program", - "project", - "proof", - "proposition", - "question", - "reading-questions", - "reasoning", - "references", - "remark", - "sage", - "sbsgroup", - "shorttitle", - "sidebyside", - "solutions", - "table", - "tabular", - "technology", - "theorem", - "title", - "video", - "warning", - "worksheet" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "subtitle": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "line", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "support": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "cd", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "dl", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "fn", - "foreign", - "icon", - "idx", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "md", - "mdash", - "mdn", - "me", - "men", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "notation", - "obelus", - "ol", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "ul", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "swungdash": { - "elements": [], - "attributes": [] - }, - "table": { - "elements": [ - "idx", - "plaintitle", - "shorttitle", - "tabular", - "title" - ], - "attributes": [ - "component", - "label", - "landscape", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "tabular": { - "elements": [ - "col", - "row" - ], - "attributes": [ - "bottom", - "component", - "halign", - "left", - "margins", - "right", - "row-headers", - "top", - "valign", - "width" - ] - }, - "tag": { - "elements": [], - "attributes": [] - }, - "tage": { - "elements": [], - "attributes": [] - }, - "task": { - "elements": [ - "answer", - "aside", - "biographical", - "blockquote", - "conclusion", - "console", - "figure", - "hint", - "historical", - "idx", - "image", - "interactive", - "introduction", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "solution", - "statement", - "table", - "tabular", - "task", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "workspace", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "taxon": { - "elements": [ - "genus", - "species" - ], - "attributes": [ - "ncbi" - ] - }, - "technology": { - "elements": [ - "aside", - "biographical", - "blockquote", - "console", - "figure", - "historical", - "idx", - "image", - "interactive", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "term": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "tests": { - "elements": [ - "iotest" - ], - "attributes": [ - "visible" - ] - }, - "tex": { - "elements": [], - "attributes": [] - }, - "theorem": { - "elements": [ - "argument", - "aside", - "biographical", - "blockquote", - "console", - "creator", - "explanation", - "figure", - "historical", - "idx", - "image", - "interactive", - "justification", - "list", - "listing", - "p", - "pre", - "program", - "proof", - "reasoning", - "sage", - "sbsgroup", - "sidebyside", - "statement", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "timeofday": { - "elements": [], - "attributes": [] - }, - "times": { - "elements": [], - "attributes": [] - }, - "timesignature": { - "elements": [], - "attributes": [ - "bottom", - "top" - ] - }, - "title": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "line", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "url", - "var", - "viz", - "vs", - "webwork", - "xelatex", - "xetex", - "xref" - ], - "attributes": [] - }, - "titlepage": { - "elements": [ - "titlepage-items" - ], - "attributes": [] - }, - "titlepage-items": { - "elements": [], - "attributes": [] - }, - "today": { - "elements": [], - "attributes": [] - }, - "trademark": { - "elements": [], - "attributes": [] - }, - "ul": { - "elements": [ - "li" - ], - "attributes": [ - "cols", - "component", - "marker" - ] - }, - "unit": { - "elements": [], - "attributes": [ - "base", - "exp", - "prefix" - ] - }, - "url": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "viz", - "vs", - "webwork", - "xelatex", - "xetex" - ], - "attributes": [ - "href", - "visual" - ] - }, - "usage": { - "elements": [ - "m" - ], - "attributes": [] - }, - "var": { - "elements": [], - "attributes": [ - "category", - "evaluator", - "form", - "name", - "width" - ] - }, - "video": { - "elements": [], - "attributes": [ - "aspect", - "component", - "end", - "href", - "label", - "margins", - "play-at", - "preview", - "source", - "start", - "vimeo", - "width", - "xml:id", - "youtube", - "youtubeplaylist" - ] - }, - "viz": { - "elements": [], - "attributes": [] - }, - "volume": { - "elements": [], - "attributes": [] - }, - "vs": { - "elements": [], - "attributes": [] - }, - "warning": { - "elements": [ - "aside", - "biographical", - "blockquote", - "console", - "figure", - "historical", - "idx", - "image", - "interactive", - "list", - "listing", - "p", - "pre", - "program", - "sage", - "sbsgroup", - "sidebyside", - "table", - "tabular", - "title", - "video" - ], - "attributes": [ - "component", - "label", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "website": { - "elements": [ - "address", - "name", - "url" - ], - "attributes": [] - }, - "webwork": { - "elements": [ - "conclusion", - "description", - "hint", - "introduction", - "pg-code", - "pg-macros", - "solution", - "statement", - "task" - ], - "attributes": [ - "component", - "copy", - "label", - "seed", - "source", - "xml:id" - ] - }, - "worksheet": { - "elements": [ - "activity", - "algorithm", - "argument", - "aside", - "assemblage", - "assumption", - "axiom", - "biographical", - "blockquote", - "claim", - "computation", - "conclusion", - "conjecture", - "console", - "convention", - "corollary", - "data", - "definition", - "example", - "exercise", - "explanation", - "exploration", - "fact", - "figure", - "fragment", - "heuristic", - "historical", - "hypothesis", - "identity", - "idx", - "image", - "insight", - "interactive", - "introduction", - "investigation", - "justification", - "lemma", - "list", - "list-of", - "listing", - "note", - "objectives", - "observation", - "outcomes", - "p", - "page", - "plaintitle", - "poem", - "pre", - "principle", - "problem", - "program", - "project", - "proof", - "proposition", - "question", - "reasoning", - "remark", - "sage", - "sbsgroup", - "shorttitle", - "sidebyside", - "table", - "tabular", - "technology", - "theorem", - "title", - "video", - "warning" - ], - "attributes": [ - "bottom", - "component", - "label", - "left", - "margin", - "right", - "top", - "xml:base", - "xml:id", - "xml:lang" - ] - }, - "xelatex": { - "elements": [], - "attributes": [] - }, - "xetex": { - "elements": [], - "attributes": [] - }, - "xhtml:button": { - "elements": [], - "attributes": [ - "id", - "type" - ] - }, - "xref": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "viz", - "vs", - "webwork", - "xelatex", - "xetex" - ], - "attributes": [ - "detail", - "first", - "last", - "provisional", - "ref", - "text" - ] - }, - "year": { - "elements": [ - "abbr", - "acro", - "ad", - "alert", - "am", - "angles", - "articletitle", - "attr", - "bc", - "c", - "ca", - "chord", - "copyleft", - "copyright", - "dblbrackets", - "dblprime", - "degree", - "delete", - "doubleflat", - "doublesharp", - "eg", - "ellipsis", - "em", - "email", - "etal", - "etc", - "fillin", - "flat", - "foreign", - "icon", - "ie", - "init", - "insert", - "kbd", - "langle", - "latex", - "ldblbracket", - "lq", - "lsq", - "m", - "mdash", - "midpoint", - "minus", - "n", - "natural", - "nb", - "nbsp", - "ndash", - "obelus", - "permille", - "pf", - "phonomark", - "pilcrow", - "plusminus", - "pm", - "prefigure", - "pretext", - "prime", - "ps", - "pubtitle", - "q", - "quantity", - "rangle", - "rdblbracket", - "registered", - "rq", - "rsq", - "scaledeg", - "section-mark", - "servicemark", - "sharp", - "solidus", - "sq", - "stale", - "swungdash", - "tag", - "tage", - "taxon", - "term", - "tex", - "timeofday", - "times", - "timesignature", - "today", - "trademark", - "viz", - "vs", - "webwork", - "xelatex", - "xetex" - ], - "attributes": [] - } -} -}; +// Re-exported from @pretextbook/schema for backwards compatibility. +// The canonical schema data lives in packages/schema/src/schema.ts. +export { pretextDevSchema as defaultDevSchema } from "@pretextbook/schema"; diff --git a/packages/schema/README.md b/packages/schema/README.md new file mode 100644 index 0000000..1574a85 --- /dev/null +++ b/packages/schema/README.md @@ -0,0 +1,55 @@ +# @pretextbook/schema + +PreTeXt schema data and types, for use by other PreTeXt packages. + +## Overview + +This package provides TypeScript types and generated schema data for the [PreTeXt](https://pretextbook.org/) XML language. The schema data is derived from the official PreTeXt RelaxNG schema (`pretext-dev.rng`) and describes which child elements and attributes are permitted inside each PreTeXt element. + +Extra metadata (such as short descriptions for elements) can be added on top of the generated data. + +## Usage + +```typescript +import { pretextDevSchema, type PretextSchema } from "@pretextbook/schema"; + +// Access allowed child elements and attributes for a given element +const bookChildren = pretextDevSchema.elementChildren["book"]; +console.log(bookChildren.elements); // ["chapter", "backmatter", ...] +console.log(bookChildren.attributes); // ["xml:id", "xml:lang", ...] +``` + +## Types + +### `PretextSchemaElement` + +```typescript +type PretextSchemaElement = { + elements: string[]; // Allowed child element names + attributes: string[]; // Allowed attribute names + description?: string; // Optional short description +}; +``` + +### `PretextSchemaElementChildren` + +A map from element name to its `PretextSchemaElement` descriptor. + +### `PretextSchema` + +```typescript +type PretextSchema = { + elementChildren: PretextSchemaElementChildren; +}; +``` + +## Updating the Schema + +The schema data in `src/schema.ts` is generated automatically from the official PreTeXt RelaxNG schema. To regenerate it: + +```bash +npm run fetch:dev-schema # Download latest pretext-dev.rng +npm run generate:schema # Regenerate src/schema.ts +``` + +A GitHub Actions workflow (`check-pretext-schema.yml`) runs weekly to detect upstream schema changes and file an issue when the schema should be updated. diff --git a/packages/schema/package.json b/packages/schema/package.json new file mode 100644 index 0000000..447ccf4 --- /dev/null +++ b/packages/schema/package.json @@ -0,0 +1,39 @@ +{ + "name": "@pretextbook/schema", + "version": "0.0.1", + "description": "PreTeXt schema data and types", + "author": "PreTeXt Contributors", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/PreTeXtBook/pretext-tools.git" + }, + "bugs": { + "url": "https://github.com/PreTeXtBook/pretext-tools/issues" + }, + "homepage": "https://github.com/PreTeXtBook/pretext-tools/tree/main/packages/schema", + "private": false, + "type": "module", + "main": "./src/index.ts", + "module": "./src/index.ts", + "types": "./src/index.ts", + "exports": { + ".": { + "types": "./src/index.ts", + "import": "./src/index.ts", + "default": "./src/index.ts" + } + }, + "files": [ + "src/**/*", + "README.md" + ], + "scripts": { + "fetch:dev-schema": "node ../../scripts/getSchemas.js --only-pretext-dev", + "generate:schema": "node ./scripts/generate-schema.mjs", + "prebuild": "npm run fetch:dev-schema && npm run generate:schema" + }, + "publishConfig": { + "access": "public" + } +} diff --git a/packages/schema/project.json b/packages/schema/project.json new file mode 100644 index 0000000..e45b8cc --- /dev/null +++ b/packages/schema/project.json @@ -0,0 +1,39 @@ +{ + "name": "@pretextbook/schema", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "packages/schema/src", + "projectType": "library", + "private": false, + "tags": [], + "targets": { + "build": { + "executor": "nx:run-commands", + "dependsOn": ["refresh-schema", "^build"], + "options": { + "cwd": "packages/schema", + "command": "tsc --build tsconfig.lib.json" + }, + "cache": true, + "inputs": ["default", "^default"], + "outputs": ["{workspaceRoot}/dist/out-tsc"] + }, + "typecheck": { + "executor": "nx:run-commands", + "dependsOn": ["build", "^typecheck"], + "options": { + "cwd": "packages/schema", + "command": "tsc --build --emitDeclarationOnly" + }, + "cache": true, + "inputs": ["default", "^default"] + }, + "refresh-schema": { + "executor": "nx:run-commands", + "options": { + "cwd": "packages/schema", + "command": "npm run fetch:dev-schema && npm run generate:schema" + }, + "cache": false + } + } +} diff --git a/packages/schema/scripts/generate-schema.mjs b/packages/schema/scripts/generate-schema.mjs new file mode 100644 index 0000000..5afcd8b --- /dev/null +++ b/packages/schema/scripts/generate-schema.mjs @@ -0,0 +1,185 @@ +import fs from "fs"; +import path from "path"; +import { fileURLToPath } from "url"; +import { fromXml } from "xast-util-from-xml"; +import { CONTINUE, SKIP, visit } from "unist-util-visit"; +import deepmerge from "deepmerge"; + +const scriptDir = path.dirname(fileURLToPath(import.meta.url)); +const workspaceRoot = path.resolve(scriptDir, "../../.."); +const schemaPath = path.join( + workspaceRoot, + "extension", + "assets", + "schema", + "pretext-dev.rng", +); +const outputPath = path.join( + workspaceRoot, + "packages", + "schema", + "src", + "schema.ts", +); + +function getAst(rngPath) { + let rngFile = fs.readFileSync(rngPath, "utf8"); + const includeRegex = //g; + let match = includeRegex.exec(rngFile); + + while (match !== null) { + const rngDir = path.dirname(rngPath); + const includePath = path.join(rngDir, match[2]); + let includeContent = fs.readFileSync(includePath, "utf8"); + includeContent = includeContent.replace(/<\?xml.*?\?>/, ""); + rngFile = rngFile.replace(match[0], includeContent); + match = includeRegex.exec(rngFile); + } + + return fromXml(rngFile); +} + +function getChildren(elemNode) { + if ( + elemNode.type !== "element" || + !elemNode.children || + elemNode.children.length === 0 + ) { + return {}; + } + + const elements = []; + const attributes = []; + const refs = []; + + visit(elemNode, (node, _index, parent) => { + if (!parent) { + return CONTINUE; + } + + if (node.name === "element") { + if (node.attributes && node.attributes.name) { + elements.push(node.attributes.name); + return SKIP; + } + } else if (node.name === "attribute") { + if (node.attributes && node.attributes.name) { + attributes.push(node.attributes.name); + return SKIP; + } + } else if (node.name === "ref") { + if (node.attributes && node.attributes.name) { + refs.push(node.attributes.name); + return SKIP; + } + } + + return CONTINUE; + }); + + return { elements, attributes, refs }; +} + +function resolveRefs(elements, aliases) { + const resolvedElements = {}; + + for (const elem in elements) { + const resolvedElement = { ...elements[elem] }; + if (!resolvedElement.refs) { + continue; + } + + while (resolvedElement.refs.length > 0) { + const ref = resolvedElement.refs.pop(); + if (ref && aliases[ref]) { + resolvedElement.elements.push(...aliases[ref].elements); + resolvedElement.attributes.push(...aliases[ref].attributes); + if (aliases[ref].refs) { + resolvedElement.refs.push(...aliases[ref].refs); + } + } + } + + resolvedElement.elements = [...new Set(resolvedElement.elements)]; + resolvedElement.attributes = [...new Set(resolvedElement.attributes)]; + resolvedElement.refs = undefined; + resolvedElements[elem] = resolvedElement; + } + + return resolvedElements; +} + +function createSchemaElementChildren(schemaAst) { + const tmpElementChildren = {}; + const aliasMap = {}; + + visit(schemaAst, (node) => { + if (node.type === "root") { + return CONTINUE; + } + if (node.type !== "element") { + return SKIP; + } + + if (node.name === "start") { + return SKIP; + } + + if (node.name === "define") { + const nodeName = node.attributes?.name; + if (nodeName) { + aliasMap[nodeName] = deepmerge(aliasMap[nodeName] || {}, getChildren(node)); + } + } else if (node.name === "element") { + const nodeName = node.attributes?.name; + if (nodeName) { + tmpElementChildren[nodeName] = deepmerge( + tmpElementChildren[nodeName] || {}, + getChildren(node), + ); + } + } + + return CONTINUE; + }); + + return resolveRefs(tmpElementChildren, aliasMap); +} + +function sortSchemaElementChildren(elementChildren) { + const sortedNames = Object.keys(elementChildren).sort((a, b) => a.localeCompare(b)); + const sorted = {}; + + for (const name of sortedNames) { + sorted[name] = { + elements: [...elementChildren[name].elements].sort((a, b) => + a.localeCompare(b), + ), + attributes: [...elementChildren[name].attributes].sort((a, b) => + a.localeCompare(b), + ), + }; + } + + return sorted; +} + +function main() { + const schemaAst = getAst(schemaPath); + const elementChildren = createSchemaElementChildren(schemaAst); + const sortedElementChildren = sortSchemaElementChildren(elementChildren); + + const content = `import type { PretextSchema } from "./types"; + +// Generated by packages/schema/scripts/generate-schema.mjs from extension/assets/schema/pretext-dev.rng. +// Do not edit manually. +export const pretextDevSchema: PretextSchema = { + elementChildren: ${JSON.stringify(sortedElementChildren, null, 2)} +}; +`; + + fs.writeFileSync(outputPath, content); + console.log(`Wrote PreTeXt schema to ${outputPath}`); +} + +main(); diff --git a/packages/schema/src/index.ts b/packages/schema/src/index.ts new file mode 100644 index 0000000..d0bb0ac --- /dev/null +++ b/packages/schema/src/index.ts @@ -0,0 +1,2 @@ +export * from "./types"; +export * from "./schema"; diff --git a/packages/schema/src/schema.ts b/packages/schema/src/schema.ts new file mode 100644 index 0000000..0805658 --- /dev/null +++ b/packages/schema/src/schema.ts @@ -0,0 +1,9427 @@ +import type { PretextSchema } from "./types"; + +// Generated by packages/schema/scripts/generate-schema.mjs from extension/assets/schema/pretext-dev.rng. +// Do not edit manually. +export const pretextDevSchema: PretextSchema = { + elementChildren: { + "abbr": { + "elements": [ + "copyleft", + "copyright", + "dblprime", + "degree", + "ellipsis", + "icon", + "kbd", + "langle", + "ldblbracket", + "lq", + "lsq", + "mdash", + "midpoint", + "minus", + "nbsp", + "ndash", + "obelus", + "permille", + "phonomark", + "pilcrow", + "plusminus", + "prime", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "section-mark", + "servicemark", + "solidus", + "swungdash", + "times", + "trademark" + ], + "attributes": [] + }, + "abstract": { + "elements": [ + "blockquote", + "console", + "idx", + "image", + "p", + "pre", + "program", + "tabular", + "video" + ], + "attributes": [ + "component", + "label", + "xml:id" + ] + }, + "acknowledgement": { + "elements": [ + "aside", + "biographical", + "blockquote", + "console", + "historical", + "idx", + "image", + "p", + "paragraphs", + "pre", + "program", + "sbsgroup", + "sidebyside", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "acro": { + "elements": [ + "copyleft", + "copyright", + "dblprime", + "degree", + "ellipsis", + "icon", + "kbd", + "langle", + "ldblbracket", + "lq", + "lsq", + "mdash", + "midpoint", + "minus", + "nbsp", + "ndash", + "obelus", + "permille", + "phonomark", + "pilcrow", + "plusminus", + "prime", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "section-mark", + "servicemark", + "solidus", + "swungdash", + "times", + "trademark" + ], + "attributes": [] + }, + "activity": { + "elements": [ + "answer", + "areas", + "aside", + "biographical", + "blockquote", + "blocks", + "choices", + "conclusion", + "console", + "feedback", + "figure", + "hint", + "historical", + "idx", + "image", + "interactive", + "introduction", + "list", + "listing", + "matches", + "myopenmath", + "ol", + "p", + "postamble", + "postlude", + "pre", + "preamble", + "prelude", + "program", + "response", + "sage", + "sbsgroup", + "sidebyside", + "solution", + "statement", + "table", + "tabular", + "task", + "title", + "video", + "webwork" + ], + "attributes": [ + "adaptive", + "attachment", + "component", + "indentation", + "label", + "language", + "number", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "ad": { + "elements": [], + "attributes": [] + }, + "address": { + "elements": [], + "attributes": [] + }, + "affiliation": { + "elements": [ + "department", + "institution", + "location" + ], + "attributes": [] + }, + "alert": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "algorithm": { + "elements": [ + "argument", + "aside", + "biographical", + "blockquote", + "console", + "creator", + "explanation", + "figure", + "historical", + "idx", + "image", + "interactive", + "justification", + "list", + "listing", + "p", + "pre", + "program", + "proof", + "reasoning", + "sage", + "sbsgroup", + "sidebyside", + "statement", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "alteration": { + "elements": [ + "copyleft", + "copyright", + "dblprime", + "degree", + "ellipsis", + "flat", + "icon", + "kbd", + "langle", + "ldblbracket", + "lq", + "lsq", + "mdash", + "midpoint", + "minus", + "nbsp", + "ndash", + "obelus", + "permille", + "phonomark", + "pilcrow", + "plusminus", + "prime", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "section-mark", + "servicemark", + "sharp", + "solidus", + "swungdash", + "times", + "trademark" + ], + "attributes": [] + }, + "am": { + "elements": [], + "attributes": [] + }, + "angles": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "answer": { + "elements": [ + "argument", + "aside", + "biographical", + "blockquote", + "console", + "explanation", + "figure", + "historical", + "idx", + "image", + "interactive", + "justification", + "list", + "listing", + "p", + "pre", + "program", + "proof", + "reasoning", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "appendix": { + "elements": [ + "activity", + "algorithm", + "argument", + "aside", + "assemblage", + "assumption", + "author", + "axiom", + "biographical", + "blockquote", + "claim", + "computation", + "conclusion", + "conjecture", + "console", + "convention", + "corollary", + "data", + "definition", + "example", + "exercise", + "exercises", + "explanation", + "exploration", + "fact", + "figure", + "fragment", + "glossary", + "handout", + "heuristic", + "historical", + "hypothesis", + "identity", + "idx", + "image", + "insight", + "interactive", + "introduction", + "investigation", + "justification", + "lemma", + "list", + "list-of", + "listing", + "notation-list", + "note", + "objectives", + "observation", + "outcomes", + "p", + "paragraphs", + "plaintitle", + "poem", + "pre", + "principle", + "problem", + "program", + "project", + "proof", + "proposition", + "question", + "reading-questions", + "reasoning", + "references", + "remark", + "sage", + "sbsgroup", + "section", + "shorttitle", + "sidebyside", + "solutions", + "subsection", + "table", + "tabular", + "technology", + "theorem", + "title", + "video", + "warning", + "worksheet" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "archive": { + "elements": [], + "attributes": [ + "from" + ] + }, + "area": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [ + "correct" + ] + }, + "areas": { + "elements": [ + "p" + ], + "attributes": [] + }, + "argument": { + "elements": [ + "aside", + "biographical", + "blockquote", + "case", + "console", + "figure", + "historical", + "idx", + "image", + "interactive", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "article": { + "elements": [ + "activity", + "algorithm", + "argument", + "aside", + "assemblage", + "assumption", + "axiom", + "backmatter", + "biographical", + "blockquote", + "claim", + "computation", + "conclusion", + "conjecture", + "console", + "convention", + "corollary", + "data", + "definition", + "example", + "exercise", + "exercises", + "explanation", + "exploration", + "fact", + "figure", + "fragment", + "frontmatter", + "glossary", + "handout", + "heuristic", + "historical", + "hypothesis", + "identity", + "idx", + "image", + "insight", + "interactive", + "introduction", + "investigation", + "justification", + "lemma", + "list", + "list-of", + "listing", + "note", + "objectives", + "observation", + "outcomes", + "p", + "paragraphs", + "plaintitle", + "poem", + "pre", + "principle", + "problem", + "program", + "project", + "proof", + "proposition", + "question", + "reading-questions", + "reasoning", + "references", + "remark", + "sage", + "sbsgroup", + "section", + "shorttitle", + "sidebyside", + "solutions", + "subtitle", + "table", + "tabular", + "technology", + "theorem", + "title", + "video", + "warning", + "worksheet" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "articletitle": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "aside": { + "elements": [ + "blockquote", + "console", + "idx", + "image", + "p", + "pre", + "program", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "assemblage": { + "elements": [ + "blockquote", + "console", + "idx", + "image", + "p", + "pre", + "program", + "sbsgroup", + "sidebyside", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "assumption": { + "elements": [ + "creator", + "idx", + "statement", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "asymptote": { + "elements": [], + "attributes": [ + "component", + "label" + ] + }, + "asymptote-preamble": { + "elements": [], + "attributes": [] + }, + "attr": { + "elements": [], + "attributes": [] + }, + "attribution": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "line", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "author": { + "elements": [ + "abbr", + "acro", + "ad", + "affiliation", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "biography", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "department", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "institution", + "kbd", + "langle", + "latex", + "ldblbracket", + "location", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "personname", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "support", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [ + "corresponding", + "halign", + "xml:id" + ] + }, + "author-biographies": { + "elements": [], + "attributes": [ + "length" + ] + }, + "axiom": { + "elements": [ + "creator", + "idx", + "statement", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "backmatter": { + "elements": [ + "appendix", + "colophon", + "idx", + "index", + "references", + "solutions", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "bc": { + "elements": [], + "attributes": [] + }, + "bibinfo": { + "elements": [ + "author", + "copyright", + "credit", + "date", + "edition", + "editor", + "keywords", + "support", + "website" + ], + "attributes": [] + }, + "biblio": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "author", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "editor", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "ibid", + "icon", + "idx", + "ie", + "init", + "insert", + "journal", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "note", + "number", + "obelus", + "pages", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "publisher", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "series", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "title", + "today", + "trademark", + "url", + "var", + "viz", + "volume", + "vs", + "webwork", + "xelatex", + "xetex", + "xref", + "year" + ], + "attributes": [ + "component", + "label", + "type", + "xml:id" + ] + }, + "biographical": { + "elements": [ + "blockquote", + "console", + "idx", + "image", + "p", + "pre", + "program", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "biography": { + "elements": [ + "aside", + "biographical", + "blockquote", + "console", + "historical", + "idx", + "image", + "p", + "paragraphs", + "pre", + "program", + "sbsgroup", + "sidebyside", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "block": { + "elements": [ + "blockquote", + "choice", + "cline", + "console", + "image", + "p", + "pre", + "program", + "tabular", + "video" + ], + "attributes": [ + "correct", + "order" + ] + }, + "blockquote": { + "elements": [ + "attribution", + "idx", + "p", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "blocks": { + "elements": [ + "block" + ], + "attributes": [ + "layout", + "randomize" + ] + }, + "blurb": { + "elements": [], + "attributes": [ + "shelf" + ] + }, + "book": { + "elements": [ + "backmatter", + "chapter", + "frontmatter", + "handout", + "idx", + "part", + "plaintitle", + "shorttitle", + "subtitle", + "title", + "worksheet" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "brandlogo": { + "elements": [], + "attributes": [ + "source", + "url" + ] + }, + "c": { + "elements": [], + "attributes": [] + }, + "ca": { + "elements": [], + "attributes": [] + }, + "caption": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "case": { + "elements": [ + "aside", + "biographical", + "blockquote", + "console", + "figure", + "historical", + "idx", + "image", + "interactive", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "direction", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "cd": { + "elements": [ + "cline" + ], + "attributes": [ + "latexsep" + ] + }, + "cell": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "line", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "p", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [ + "bottom", + "colspan", + "halign", + "right" + ] + }, + "chapter": { + "elements": [ + "activity", + "algorithm", + "argument", + "aside", + "assemblage", + "assumption", + "author", + "axiom", + "biographical", + "blockquote", + "claim", + "computation", + "conclusion", + "conjecture", + "console", + "convention", + "corollary", + "data", + "definition", + "example", + "exercise", + "exercises", + "explanation", + "exploration", + "fact", + "figure", + "fragment", + "glossary", + "handout", + "heuristic", + "historical", + "hypothesis", + "identity", + "idx", + "image", + "insight", + "interactive", + "introduction", + "investigation", + "justification", + "lemma", + "list", + "list-of", + "listing", + "note", + "objectives", + "observation", + "outcomes", + "p", + "paragraphs", + "plaintitle", + "poem", + "pre", + "principle", + "problem", + "program", + "project", + "proof", + "proposition", + "question", + "reading-questions", + "reasoning", + "references", + "remark", + "sage", + "sbsgroup", + "section", + "shorttitle", + "sidebyside", + "solutions", + "table", + "tabular", + "technology", + "theorem", + "title", + "video", + "warning", + "worksheet" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "checkpoint": { + "elements": [ + "feedback", + "prompt" + ], + "attributes": [ + "answer", + "answer-variable", + "line" + ] + }, + "choice": { + "elements": [ + "blockquote", + "cline", + "console", + "feedback", + "image", + "p", + "pre", + "program", + "statement", + "tabular", + "video" + ], + "attributes": [ + "correct" + ] + }, + "choices": { + "elements": [ + "choice" + ], + "attributes": [ + "randomize" + ] + }, + "chord": { + "elements": [ + "alteration" + ], + "attributes": [ + "bass", + "bps", + "mode", + "parentheses", + "root", + "suspended" + ] + }, + "claim": { + "elements": [ + "argument", + "aside", + "biographical", + "blockquote", + "console", + "creator", + "explanation", + "figure", + "historical", + "idx", + "image", + "interactive", + "justification", + "list", + "listing", + "p", + "pre", + "program", + "proof", + "reasoning", + "sage", + "sbsgroup", + "sidebyside", + "statement", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "cline": { + "elements": [], + "attributes": [] + }, + "code": { + "elements": [], + "attributes": [] + }, + "col": { + "elements": [], + "attributes": [ + "halign", + "right", + "top", + "width" + ] + }, + "colophon": { + "elements": [ + "blockquote", + "colophon-items", + "console", + "idx", + "image", + "p", + "pre", + "program", + "sbsgroup", + "sidebyside", + "tabular", + "video" + ], + "attributes": [ + "component", + "label", + "xml:id" + ] + }, + "colophon-items": { + "elements": [], + "attributes": [] + }, + "computation": { + "elements": [ + "aside", + "biographical", + "blockquote", + "console", + "figure", + "historical", + "idx", + "image", + "interactive", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "conclusion": { + "elements": [ + "activity", + "algorithm", + "argument", + "aside", + "assemblage", + "assumption", + "axiom", + "biographical", + "blockquote", + "claim", + "computation", + "conjecture", + "console", + "convention", + "corollary", + "data", + "definition", + "example", + "exercise", + "explanation", + "exploration", + "fact", + "figure", + "fragment", + "heuristic", + "historical", + "hypothesis", + "identity", + "idx", + "image", + "insight", + "interactive", + "investigation", + "justification", + "lemma", + "list", + "list-of", + "listing", + "note", + "observation", + "p", + "poem", + "pre", + "principle", + "problem", + "program", + "project", + "proof", + "proposition", + "question", + "reasoning", + "remark", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "technology", + "theorem", + "title", + "video", + "warning" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "conjecture": { + "elements": [ + "creator", + "idx", + "statement", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "console": { + "elements": [ + "input", + "output" + ], + "attributes": [ + "component", + "continuation", + "margins", + "prompt", + "width" + ] + }, + "contributor": { + "elements": [ + "affiliation", + "department", + "email", + "idx", + "institution", + "location", + "personname" + ], + "attributes": [ + "component", + "label", + "xml:id" + ] + }, + "contributors": { + "elements": [ + "contributor" + ], + "attributes": [] + }, + "convention": { + "elements": [ + "aside", + "biographical", + "blockquote", + "console", + "figure", + "historical", + "idx", + "image", + "interactive", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "copyleft": { + "elements": [], + "attributes": [] + }, + "copyright": { + "elements": [ + "holder", + "minilicense", + "shortlicense", + "year" + ], + "attributes": [] + }, + "corollary": { + "elements": [ + "argument", + "aside", + "biographical", + "blockquote", + "console", + "creator", + "explanation", + "figure", + "historical", + "idx", + "image", + "interactive", + "justification", + "list", + "listing", + "p", + "pre", + "program", + "proof", + "reasoning", + "sage", + "sbsgroup", + "sidebyside", + "statement", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "creator": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "viz", + "vs", + "webwork", + "xelatex", + "xetex" + ], + "attributes": [] + }, + "credit": { + "elements": [ + "author", + "entity", + "role", + "title" + ], + "attributes": [] + }, + "cross-references": { + "elements": [], + "attributes": [ + "text" + ] + }, + "data": { + "elements": [ + "aside", + "biographical", + "blockquote", + "console", + "figure", + "historical", + "idx", + "image", + "interactive", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "date": { + "elements": [ + "ad", + "am", + "bc", + "ca", + "copyleft", + "copyright", + "dblprime", + "degree", + "eg", + "ellipsis", + "etal", + "etc", + "fillin", + "icon", + "ie", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "mdash", + "midpoint", + "minus", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "section-mark", + "servicemark", + "solidus", + "swungdash", + "tex", + "timeofday", + "times", + "today", + "trademark", + "viz", + "vs", + "webwork", + "xelatex", + "xetex" + ], + "attributes": [] + }, + "dblbrackets": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "dblprime": { + "elements": [], + "attributes": [] + }, + "dedication": { + "elements": [ + "idx", + "p", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "definition": { + "elements": [ + "idx", + "notation", + "statement", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "degree": { + "elements": [], + "attributes": [] + }, + "delete": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "department": { + "elements": [ + "copyleft", + "copyright", + "dblprime", + "degree", + "ellipsis", + "icon", + "kbd", + "langle", + "ldblbracket", + "line", + "lq", + "lsq", + "mdash", + "midpoint", + "minus", + "nbsp", + "ndash", + "obelus", + "permille", + "phonomark", + "pilcrow", + "plusminus", + "prime", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "section-mark", + "servicemark", + "solidus", + "swungdash", + "times", + "trademark" + ], + "attributes": [] + }, + "description": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "line", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "p", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tabular", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "viz", + "vs", + "webwork", + "xelatex", + "xetex" + ], + "attributes": [] + }, + "division": { + "elements": [], + "attributes": [ + "part" + ] + }, + "dl": { + "elements": [ + "li" + ], + "attributes": [ + "component", + "width" + ] + }, + "docinfo": { + "elements": [ + "asymptote-preamble", + "author-biographies", + "blurb", + "brandlogo", + "cross-references", + "document-id", + "feedback", + "images", + "initialism", + "latex-image-preamble", + "macros", + "math-package", + "numbering", + "parsons", + "programs", + "rename" + ], + "attributes": [ + "xml:base", + "xml:lang" + ] + }, + "document-id": { + "elements": [], + "attributes": [ + "edition" + ] + }, + "doubleflat": { + "elements": [], + "attributes": [] + }, + "doublesharp": { + "elements": [], + "attributes": [] + }, + "edition": { + "elements": [], + "attributes": [] + }, + "editor": { + "elements": [ + "affiliation", + "department", + "email", + "institution", + "location", + "personname" + ], + "attributes": [] + }, + "eg": { + "elements": [], + "attributes": [] + }, + "ellipsis": { + "elements": [], + "attributes": [] + }, + "em": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "email": { + "elements": [], + "attributes": [] + }, + "entity": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "etal": { + "elements": [], + "attributes": [] + }, + "etc": { + "elements": [], + "attributes": [] + }, + "event": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "example": { + "elements": [ + "answer", + "aside", + "biographical", + "blockquote", + "conclusion", + "console", + "figure", + "hint", + "historical", + "idx", + "image", + "interactive", + "introduction", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "solution", + "statement", + "table", + "tabular", + "task", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "exercise": { + "elements": [ + "answer", + "areas", + "aside", + "biographical", + "blockquote", + "blocks", + "choices", + "conclusion", + "console", + "feedback", + "figure", + "hint", + "historical", + "idx", + "image", + "interactive", + "introduction", + "list", + "listing", + "matches", + "myopenmath", + "ol", + "p", + "postamble", + "pre", + "preamble", + "program", + "response", + "sage", + "sbsgroup", + "sidebyside", + "solution", + "statement", + "table", + "tabular", + "task", + "title", + "video", + "webwork" + ], + "attributes": [ + "adaptive", + "attachment", + "component", + "indentation", + "label", + "language", + "number", + "workspace", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "exercisegroup": { + "elements": [ + "conclusion", + "exercise", + "idx", + "introduction", + "title" + ], + "attributes": [ + "cols", + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "exercises": { + "elements": [ + "conclusion", + "exercise", + "exercisegroup", + "idx", + "interactive", + "introduction", + "plaintitle", + "shorttitle", + "subexercises", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "explanation": { + "elements": [ + "aside", + "biographical", + "blockquote", + "case", + "console", + "figure", + "historical", + "idx", + "image", + "interactive", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "exploration": { + "elements": [ + "answer", + "areas", + "aside", + "biographical", + "blockquote", + "blocks", + "choices", + "conclusion", + "console", + "feedback", + "figure", + "hint", + "historical", + "idx", + "image", + "interactive", + "introduction", + "list", + "listing", + "matches", + "myopenmath", + "ol", + "p", + "postamble", + "postlude", + "pre", + "preamble", + "prelude", + "program", + "response", + "sage", + "sbsgroup", + "sidebyside", + "solution", + "statement", + "table", + "tabular", + "task", + "title", + "video", + "webwork" + ], + "attributes": [ + "adaptive", + "attachment", + "component", + "indentation", + "label", + "language", + "number", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "fact": { + "elements": [ + "argument", + "aside", + "biographical", + "blockquote", + "console", + "creator", + "explanation", + "figure", + "historical", + "idx", + "image", + "interactive", + "justification", + "list", + "listing", + "p", + "pre", + "program", + "proof", + "reasoning", + "sage", + "sbsgroup", + "sidebyside", + "statement", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "feedback": { + "elements": [ + "argument", + "aside", + "biographical", + "blockquote", + "console", + "explanation", + "figure", + "historical", + "idx", + "image", + "interactive", + "justification", + "list", + "listing", + "p", + "pre", + "program", + "proof", + "reasoning", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "url", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "figure": { + "elements": [ + "caption", + "idx", + "image", + "interactive", + "sbsgroup", + "score", + "sidebyside", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "landscape", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "fillin": { + "elements": [], + "attributes": [ + "characters", + "cols", + "fill", + "rows" + ] + }, + "flat": { + "elements": [], + "attributes": [] + }, + "fn": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "idx", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [ + "component", + "label", + "xml:id" + ] + }, + "foreign": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [ + "xml:lang" + ] + }, + "fragment": { + "elements": [ + "code", + "fragref", + "title" + ], + "attributes": [ + "filename", + "xml:id" + ] + }, + "fragref": { + "elements": [], + "attributes": [ + "ref" + ] + }, + "frontmatter": { + "elements": [ + "abstract", + "acknowledgement", + "bibinfo", + "biography", + "colophon", + "dedication", + "idx", + "preface", + "title", + "titlepage" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "genus": { + "elements": [], + "attributes": [] + }, + "gi": { + "elements": [ + "aside", + "biographical", + "blockquote", + "console", + "historical", + "idx", + "image", + "p", + "pre", + "program", + "sbsgroup", + "sidebyside", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "glossary": { + "elements": [ + "gi", + "headnote", + "idx", + "plaintitle", + "shorttitle", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "h": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "viz", + "vs", + "webwork", + "xelatex", + "xetex" + ], + "attributes": [ + "sortby" + ] + }, + "handout": { + "elements": [ + "activity", + "algorithm", + "argument", + "aside", + "assemblage", + "assumption", + "axiom", + "biographical", + "blockquote", + "claim", + "computation", + "conclusion", + "conjecture", + "console", + "convention", + "corollary", + "data", + "definition", + "example", + "exercise", + "explanation", + "exploration", + "fact", + "figure", + "fragment", + "heuristic", + "historical", + "hypothesis", + "identity", + "idx", + "image", + "insight", + "interactive", + "introduction", + "investigation", + "justification", + "lemma", + "list", + "list-of", + "listing", + "note", + "objectives", + "observation", + "outcomes", + "p", + "page", + "plaintitle", + "poem", + "pre", + "principle", + "problem", + "program", + "project", + "proof", + "proposition", + "question", + "reasoning", + "remark", + "sage", + "sbsgroup", + "shorttitle", + "sidebyside", + "table", + "tabular", + "technology", + "theorem", + "title", + "video", + "warning" + ], + "attributes": [ + "bottom", + "component", + "label", + "left", + "margin", + "right", + "top", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "headnote": { + "elements": [ + "aside", + "biographical", + "blockquote", + "console", + "historical", + "image", + "p", + "pre", + "program", + "sbsgroup", + "sidebyside", + "tabular", + "video" + ], + "attributes": [] + }, + "heuristic": { + "elements": [ + "creator", + "idx", + "statement", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "hint": { + "elements": [ + "argument", + "aside", + "biographical", + "blockquote", + "console", + "explanation", + "figure", + "historical", + "idx", + "image", + "interactive", + "justification", + "list", + "listing", + "p", + "pre", + "program", + "proof", + "reasoning", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "historical": { + "elements": [ + "blockquote", + "console", + "idx", + "image", + "p", + "pre", + "program", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "holder": { + "elements": [], + "attributes": [] + }, + "hypothesis": { + "elements": [ + "creator", + "idx", + "statement", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "ibid": { + "elements": [], + "attributes": [] + }, + "icon": { + "elements": [], + "attributes": [ + "name" + ] + }, + "identity": { + "elements": [ + "argument", + "aside", + "biographical", + "blockquote", + "console", + "creator", + "explanation", + "figure", + "historical", + "idx", + "image", + "interactive", + "justification", + "list", + "listing", + "p", + "pre", + "program", + "proof", + "reasoning", + "sage", + "sbsgroup", + "sidebyside", + "statement", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "idx": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "h", + "icon", + "idx", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "see", + "seealso", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "viz", + "vs", + "webwork", + "xelatex", + "xetex" + ], + "attributes": [ + "component", + "finish", + "label", + "sortby", + "start", + "xml:id" + ] + }, + "ie": { + "elements": [], + "attributes": [] + }, + "image": { + "elements": [ + "asymptote", + "description", + "latex-image", + "sageplot", + "shortdescription" + ], + "attributes": [ + "archive", + "component", + "decorative", + "margins", + "pg-name", + "rotate", + "source", + "width", + "xml:id" + ] + }, + "images": { + "elements": [ + "archive" + ], + "attributes": [] + }, + "index": { + "elements": [ + "idx", + "index-list", + "plaintitle", + "shorttitle", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "index-list": { + "elements": [], + "attributes": [] + }, + "init": { + "elements": [ + "copyleft", + "copyright", + "dblprime", + "degree", + "ellipsis", + "icon", + "kbd", + "langle", + "ldblbracket", + "lq", + "lsq", + "mdash", + "midpoint", + "minus", + "nbsp", + "ndash", + "obelus", + "permille", + "phonomark", + "pilcrow", + "plusminus", + "prime", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "section-mark", + "servicemark", + "solidus", + "swungdash", + "times", + "trademark" + ], + "attributes": [] + }, + "initialism": { + "elements": [], + "attributes": [] + }, + "input": { + "elements": [], + "attributes": [ + "continuation", + "onclick", + "onkeypress", + "prompt", + "style", + "type", + "value" + ] + }, + "insert": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "insight": { + "elements": [ + "aside", + "biographical", + "blockquote", + "console", + "figure", + "historical", + "idx", + "image", + "interactive", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "institution": { + "elements": [ + "copyleft", + "copyright", + "dblprime", + "degree", + "ellipsis", + "icon", + "kbd", + "langle", + "ldblbracket", + "line", + "lq", + "lsq", + "mdash", + "midpoint", + "minus", + "nbsp", + "ndash", + "obelus", + "permille", + "phonomark", + "pilcrow", + "plusminus", + "prime", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "section-mark", + "servicemark", + "solidus", + "swungdash", + "times", + "trademark" + ], + "attributes": [] + }, + "instruction": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "viz", + "vs", + "webwork", + "xelatex", + "xetex" + ], + "attributes": [] + }, + "instructions": { + "elements": [ + "blockquote", + "console", + "idx", + "image", + "p", + "pre", + "program", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "interactive": { + "elements": [ + "instructions", + "sbsgroup", + "sidebyside", + "slate", + "static" + ], + "attributes": [ + "aspect", + "component", + "iframe", + "label", + "platform", + "preview", + "source", + "version", + "width", + "xml:id" + ] + }, + "interlude": { + "elements": [ + "blockquote", + "console", + "image", + "p", + "pre", + "program", + "tabular", + "video" + ], + "attributes": [] + }, + "intertext": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "introduction": { + "elements": [ + "activity", + "algorithm", + "argument", + "aside", + "assemblage", + "assumption", + "axiom", + "biographical", + "blockquote", + "claim", + "computation", + "conjecture", + "console", + "convention", + "corollary", + "data", + "definition", + "example", + "exercise", + "explanation", + "exploration", + "fact", + "figure", + "fragment", + "heuristic", + "historical", + "hypothesis", + "identity", + "idx", + "image", + "insight", + "interactive", + "investigation", + "justification", + "lemma", + "list", + "list-of", + "listing", + "note", + "observation", + "p", + "poem", + "pre", + "principle", + "problem", + "program", + "project", + "proof", + "proposition", + "question", + "reasoning", + "remark", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "technology", + "theorem", + "title", + "video", + "warning" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "investigation": { + "elements": [ + "answer", + "areas", + "aside", + "biographical", + "blockquote", + "blocks", + "choices", + "conclusion", + "console", + "feedback", + "figure", + "hint", + "historical", + "idx", + "image", + "interactive", + "introduction", + "list", + "listing", + "matches", + "myopenmath", + "ol", + "p", + "postamble", + "postlude", + "pre", + "preamble", + "prelude", + "program", + "response", + "sage", + "sbsgroup", + "sidebyside", + "solution", + "statement", + "table", + "tabular", + "task", + "title", + "video", + "webwork" + ], + "attributes": [ + "adaptive", + "attachment", + "component", + "indentation", + "label", + "language", + "number", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "iotest": { + "elements": [ + "input", + "output" + ], + "attributes": [] + }, + "journal": { + "elements": [ + "copyleft", + "copyright", + "dblprime", + "degree", + "ellipsis", + "icon", + "kbd", + "langle", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "nbsp", + "ndash", + "obelus", + "permille", + "phonomark", + "pilcrow", + "plusminus", + "prime", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "section-mark", + "servicemark", + "solidus", + "swungdash", + "times", + "trademark" + ], + "attributes": [] + }, + "justification": { + "elements": [ + "aside", + "biographical", + "blockquote", + "case", + "console", + "figure", + "historical", + "idx", + "image", + "interactive", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "kbd": { + "elements": [], + "attributes": [ + "name" + ] + }, + "keyword": { + "elements": [ + "copyleft", + "copyright", + "dblprime", + "degree", + "ellipsis", + "icon", + "kbd", + "langle", + "ldblbracket", + "lq", + "lsq", + "mdash", + "midpoint", + "minus", + "nbsp", + "ndash", + "obelus", + "permille", + "phonomark", + "pilcrow", + "plusminus", + "prime", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "section-mark", + "servicemark", + "solidus", + "swungdash", + "times", + "trademark" + ], + "attributes": [ + "primary" + ] + }, + "keywords": { + "elements": [ + "keyword", + "title" + ], + "attributes": [ + "authority", + "variant" + ] + }, + "langle": { + "elements": [], + "attributes": [] + }, + "latex": { + "elements": [], + "attributes": [] + }, + "latex-image": { + "elements": [], + "attributes": [ + "component", + "label" + ] + }, + "latex-image-preamble": { + "elements": [], + "attributes": [] + }, + "ldblbracket": { + "elements": [], + "attributes": [] + }, + "lemma": { + "elements": [ + "argument", + "aside", + "biographical", + "blockquote", + "console", + "creator", + "explanation", + "figure", + "historical", + "idx", + "image", + "interactive", + "justification", + "list", + "listing", + "p", + "pre", + "program", + "proof", + "reasoning", + "sage", + "sbsgroup", + "sidebyside", + "statement", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "letter": { + "elements": [], + "attributes": [] + }, + "li": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "aside", + "attr", + "bc", + "biographical", + "blockquote", + "c", + "ca", + "cd", + "chord", + "console", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "dl", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "figure", + "fillin", + "flat", + "fn", + "foreign", + "historical", + "icon", + "idx", + "ie", + "image", + "init", + "insert", + "interactive", + "kbd", + "langle", + "latex", + "ldblbracket", + "list", + "listing", + "lq", + "lsq", + "m", + "md", + "mdash", + "mdn", + "me", + "men", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "notation", + "obelus", + "ol", + "p", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "pre", + "prefigure", + "pretext", + "prime", + "program", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "sage", + "sbsgroup", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "sidebyside", + "solidus", + "sq", + "stale", + "swungdash", + "table", + "tabular", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "title", + "today", + "trademark", + "ul", + "url", + "var", + "video", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "line": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [ + "indent" + ] + }, + "list": { + "elements": [ + "conclusion", + "dl", + "idx", + "introduction", + "ol", + "plaintitle", + "shorttitle", + "title", + "ul" + ], + "attributes": [ + "component", + "label", + "landscape", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "list-of": { + "elements": [], + "attributes": [ + "divisions", + "elements", + "empty", + "scope" + ] + }, + "listing": { + "elements": [ + "console", + "idx", + "plaintitle", + "program", + "shorttitle", + "title" + ], + "attributes": [ + "component", + "label", + "landscape", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "location": { + "elements": [ + "copyleft", + "copyright", + "dblprime", + "degree", + "ellipsis", + "icon", + "kbd", + "langle", + "ldblbracket", + "line", + "lq", + "lsq", + "mdash", + "midpoint", + "minus", + "nbsp", + "ndash", + "obelus", + "permille", + "phonomark", + "pilcrow", + "plusminus", + "prime", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "section-mark", + "servicemark", + "solidus", + "swungdash", + "times", + "trademark" + ], + "attributes": [] + }, + "lq": { + "elements": [], + "attributes": [] + }, + "lsq": { + "elements": [], + "attributes": [] + }, + "m": { + "elements": [ + "fillin", + "var" + ], + "attributes": [] + }, + "macro-file": { + "elements": [], + "attributes": [] + }, + "macros": { + "elements": [], + "attributes": [] + }, + "mag": { + "elements": [], + "attributes": [] + }, + "match": { + "elements": [ + "premise", + "response" + ], + "attributes": [ + "order" + ] + }, + "matches": { + "elements": [ + "match" + ], + "attributes": [] + }, + "math-package": { + "elements": [], + "attributes": [ + "latex-name", + "mathjax-name" + ] + }, + "md": { + "elements": [ + "fillin", + "intertext", + "mrow", + "var", + "xref" + ], + "attributes": [ + "alignat-columns", + "alignment", + "break", + "number" + ] + }, + "mdash": { + "elements": [], + "attributes": [] + }, + "mdn": { + "elements": [ + "fillin", + "intertext", + "mrow", + "var" + ], + "attributes": [ + "alignat-columns", + "alignment", + "break", + "number" + ] + }, + "me": { + "elements": [ + "fillin", + "idx", + "var", + "xref" + ], + "attributes": [ + "component", + "label", + "xml:id" + ] + }, + "memo": { + "elements": [], + "attributes": [] + }, + "men": { + "elements": [ + "fillin", + "idx", + "var", + "xref" + ], + "attributes": [ + "component", + "label", + "xml:id" + ] + }, + "midpoint": { + "elements": [], + "attributes": [] + }, + "minilicense": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "viz", + "vs", + "webwork", + "xelatex", + "xetex" + ], + "attributes": [] + }, + "minus": { + "elements": [], + "attributes": [] + }, + "mrow": { + "elements": [ + "fillin", + "idx", + "var", + "xref" + ], + "attributes": [ + "break", + "component", + "label", + "number", + "tag", + "xml:id" + ] + }, + "myopenmath": { + "elements": [], + "attributes": [ + "params", + "problem" + ] + }, + "n": { + "elements": [], + "attributes": [ + "acc", + "octave", + "pc" + ] + }, + "name": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "viz", + "vs", + "webwork", + "xelatex", + "xetex" + ], + "attributes": [] + }, + "natural": { + "elements": [], + "attributes": [] + }, + "nb": { + "elements": [], + "attributes": [] + }, + "nbsp": { + "elements": [], + "attributes": [] + }, + "ndash": { + "elements": [], + "attributes": [] + }, + "notation": { + "elements": [ + "description", + "usage" + ], + "attributes": [] + }, + "notation-list": { + "elements": [], + "attributes": [] + }, + "note": { + "elements": [ + "aside", + "biographical", + "blockquote", + "console", + "figure", + "historical", + "idx", + "image", + "interactive", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "number": { + "elements": [], + "attributes": [] + }, + "numbering": { + "elements": [ + "division" + ], + "attributes": [] + }, + "obelus": { + "elements": [], + "attributes": [] + }, + "objectives": { + "elements": [ + "conclusion", + "dl", + "idx", + "introduction", + "ol", + "title", + "ul" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "observation": { + "elements": [ + "aside", + "biographical", + "blockquote", + "console", + "figure", + "historical", + "idx", + "image", + "interactive", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "ol": { + "elements": [ + "li" + ], + "attributes": [ + "cols", + "component", + "marker" + ] + }, + "outcomes": { + "elements": [ + "conclusion", + "dl", + "idx", + "introduction", + "ol", + "title", + "ul" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "output": { + "elements": [], + "attributes": [] + }, + "p": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "area", + "articletitle", + "attr", + "bc", + "c", + "ca", + "cd", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "dl", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "fn", + "foreign", + "icon", + "idx", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "line", + "lq", + "lsq", + "m", + "md", + "mdash", + "mdn", + "me", + "men", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "notation", + "obelus", + "ol", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "ul", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [ + "component", + "label", + "xml:id" + ] + }, + "page": { + "elements": [ + "activity", + "algorithm", + "argument", + "aside", + "assemblage", + "assumption", + "axiom", + "biographical", + "blockquote", + "claim", + "computation", + "conjecture", + "console", + "convention", + "corollary", + "data", + "definition", + "example", + "exercise", + "explanation", + "exploration", + "fact", + "figure", + "fragment", + "heuristic", + "historical", + "hypothesis", + "identity", + "image", + "insight", + "interactive", + "investigation", + "justification", + "lemma", + "list", + "list-of", + "listing", + "note", + "observation", + "p", + "poem", + "pre", + "principle", + "problem", + "program", + "project", + "proof", + "proposition", + "question", + "reasoning", + "remark", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "technology", + "theorem", + "video", + "warning" + ], + "attributes": [] + }, + "pages": { + "elements": [], + "attributes": [ + "end", + "start" + ] + }, + "paragraphs": { + "elements": [ + "activity", + "algorithm", + "argument", + "aside", + "assemblage", + "assumption", + "axiom", + "biographical", + "blockquote", + "claim", + "computation", + "conjecture", + "console", + "convention", + "corollary", + "data", + "definition", + "example", + "exercise", + "explanation", + "exploration", + "fact", + "figure", + "fragment", + "heuristic", + "historical", + "hypothesis", + "identity", + "idx", + "image", + "insight", + "interactive", + "investigation", + "justification", + "lemma", + "list", + "list-of", + "listing", + "note", + "observation", + "p", + "poem", + "pre", + "principle", + "problem", + "program", + "project", + "proof", + "proposition", + "question", + "reasoning", + "remark", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "technology", + "theorem", + "title", + "video", + "warning" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "parsons": { + "elements": [], + "attributes": [ + "language" + ] + }, + "part": { + "elements": [ + "chapter", + "idx", + "plaintitle", + "shorttitle", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "per": { + "elements": [], + "attributes": [ + "base", + "exp", + "prefix" + ] + }, + "permille": { + "elements": [], + "attributes": [] + }, + "personname": { + "elements": [ + "copyleft", + "copyright", + "dblprime", + "degree", + "ellipsis", + "icon", + "kbd", + "langle", + "ldblbracket", + "lq", + "lsq", + "mdash", + "midpoint", + "minus", + "nbsp", + "ndash", + "obelus", + "permille", + "phonomark", + "pilcrow", + "plusminus", + "prime", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "section-mark", + "servicemark", + "solidus", + "swungdash", + "times", + "trademark" + ], + "attributes": [] + }, + "pf": { + "elements": [], + "attributes": [ + "language" + ] + }, + "pg-code": { + "elements": [], + "attributes": [] + }, + "pg-macros": { + "elements": [ + "macro-file" + ], + "attributes": [] + }, + "phonomark": { + "elements": [], + "attributes": [] + }, + "pilcrow": { + "elements": [], + "attributes": [] + }, + "plaintitle": { + "elements": [], + "attributes": [] + }, + "plusminus": { + "elements": [], + "attributes": [] + }, + "pm": { + "elements": [], + "attributes": [] + }, + "poem": { + "elements": [ + "author", + "idx", + "line", + "stanza", + "title" + ], + "attributes": [ + "component", + "halign", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "postamble": { + "elements": [], + "attributes": [ + "indent", + "visible" + ] + }, + "postlude": { + "elements": [ + "blockquote", + "console", + "image", + "p", + "pre", + "program", + "tabular", + "video" + ], + "attributes": [] + }, + "pre": { + "elements": [ + "cline" + ], + "attributes": [] + }, + "preamble": { + "elements": [], + "attributes": [ + "indent", + "visible" + ] + }, + "preface": { + "elements": [ + "aside", + "attribution", + "biographical", + "blockquote", + "console", + "contributors", + "historical", + "idx", + "image", + "p", + "paragraphs", + "pre", + "program", + "sbsgroup", + "sidebyside", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "prefigure": { + "elements": [], + "attributes": [] + }, + "prelude": { + "elements": [ + "blockquote", + "console", + "image", + "p", + "pre", + "program", + "tabular", + "video" + ], + "attributes": [] + }, + "premise": { + "elements": [ + "blockquote", + "console", + "image", + "p", + "pre", + "program", + "tabular", + "video" + ], + "attributes": [] + }, + "pretext": { + "elements": [ + "article", + "book", + "docinfo", + "letter", + "memo" + ], + "attributes": [ + "xml:lang" + ] + }, + "prime": { + "elements": [], + "attributes": [] + }, + "principle": { + "elements": [ + "creator", + "idx", + "statement", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "problem": { + "elements": [ + "answer", + "aside", + "biographical", + "blockquote", + "conclusion", + "console", + "figure", + "hint", + "historical", + "idx", + "image", + "interactive", + "introduction", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "solution", + "statement", + "table", + "tabular", + "task", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "program": { + "elements": [ + "checkpoint", + "code", + "postamble", + "preamble", + "stdin", + "tests" + ], + "attributes": [ + "add-files", + "autorun", + "chatcodes", + "codelens", + "compile-also", + "compiler-args", + "component", + "database", + "download", + "extra-compiler-args", + "filename", + "hidecode", + "highlight-lines", + "include", + "interactive", + "interpreter-args", + "label", + "language", + "line-numbers", + "linker-args", + "margins", + "starting-step", + "timelimit", + "width", + "xml:id" + ] + }, + "programs": { + "elements": [], + "attributes": [ + "compiler-args", + "download", + "interpreter-args", + "language", + "linenumbers", + "linker-args", + "timeout" + ] + }, + "project": { + "elements": [ + "answer", + "areas", + "aside", + "biographical", + "blockquote", + "blocks", + "choices", + "conclusion", + "console", + "feedback", + "figure", + "hint", + "historical", + "idx", + "image", + "interactive", + "introduction", + "list", + "listing", + "matches", + "myopenmath", + "ol", + "p", + "postamble", + "postlude", + "pre", + "preamble", + "prelude", + "program", + "response", + "sage", + "sbsgroup", + "sidebyside", + "solution", + "statement", + "table", + "tabular", + "task", + "title", + "video", + "webwork" + ], + "attributes": [ + "adaptive", + "attachment", + "component", + "indentation", + "label", + "language", + "number", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "prompt": { + "elements": [ + "blockquote", + "console", + "image", + "p", + "pre", + "program", + "tabular", + "video" + ], + "attributes": [] + }, + "proof": { + "elements": [ + "aside", + "biographical", + "blockquote", + "case", + "console", + "figure", + "historical", + "idx", + "image", + "interactive", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "proposition": { + "elements": [ + "argument", + "aside", + "biographical", + "blockquote", + "console", + "creator", + "explanation", + "figure", + "historical", + "idx", + "image", + "interactive", + "justification", + "list", + "listing", + "p", + "pre", + "program", + "proof", + "reasoning", + "sage", + "sbsgroup", + "sidebyside", + "statement", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "ps": { + "elements": [], + "attributes": [] + }, + "publisher": { + "elements": [], + "attributes": [] + }, + "pubtitle": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "q": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "area", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "quantity": { + "elements": [ + "mag", + "per", + "unit" + ], + "attributes": [] + }, + "question": { + "elements": [ + "answer", + "aside", + "biographical", + "blockquote", + "conclusion", + "console", + "figure", + "hint", + "historical", + "idx", + "image", + "interactive", + "introduction", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "solution", + "statement", + "table", + "tabular", + "task", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "rangle": { + "elements": [], + "attributes": [] + }, + "rdblbracket": { + "elements": [], + "attributes": [] + }, + "reading-questions": { + "elements": [ + "conclusion", + "exercise", + "idx", + "introduction", + "plaintitle", + "shorttitle", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "reasoning": { + "elements": [ + "aside", + "biographical", + "blockquote", + "case", + "console", + "figure", + "historical", + "idx", + "image", + "interactive", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "references": { + "elements": [ + "biblio", + "conclusion", + "idx", + "introduction", + "plaintitle", + "shorttitle", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "registered": { + "elements": [], + "attributes": [] + }, + "remark": { + "elements": [ + "aside", + "biographical", + "blockquote", + "console", + "figure", + "historical", + "idx", + "image", + "interactive", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "rename": { + "elements": [], + "attributes": [ + "element", + "xml:lang" + ] + }, + "response": { + "elements": [ + "blockquote", + "console", + "image", + "p", + "pre", + "program", + "tabular", + "video" + ], + "attributes": [] + }, + "role": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "viz", + "vs", + "webwork", + "xelatex", + "xetex" + ], + "attributes": [] + }, + "row": { + "elements": [ + "cell" + ], + "attributes": [ + "bottom", + "halign", + "header", + "left", + "valign" + ] + }, + "rq": { + "elements": [], + "attributes": [] + }, + "rsq": { + "elements": [], + "attributes": [] + }, + "sage": { + "elements": [ + "input", + "output" + ], + "attributes": [ + "auto-evaluate", + "component", + "doctest", + "language", + "tolerance", + "type" + ] + }, + "sageplot": { + "elements": [], + "attributes": [ + "aspect", + "component", + "label", + "variant" + ] + }, + "sbsgroup": { + "elements": [ + "sidebyside" + ], + "attributes": [ + "component", + "margins", + "valign", + "valigns", + "width", + "widths" + ] + }, + "scaledeg": { + "elements": [], + "attributes": [] + }, + "score": { + "elements": [], + "attributes": [ + "musescore", + "musescoreuser" + ] + }, + "section": { + "elements": [ + "activity", + "algorithm", + "argument", + "aside", + "assemblage", + "assumption", + "author", + "axiom", + "biographical", + "blockquote", + "claim", + "computation", + "conclusion", + "conjecture", + "console", + "convention", + "corollary", + "data", + "definition", + "example", + "exercise", + "exercises", + "explanation", + "exploration", + "fact", + "figure", + "fragment", + "glossary", + "handout", + "heuristic", + "historical", + "hypothesis", + "identity", + "idx", + "image", + "insight", + "interactive", + "introduction", + "investigation", + "justification", + "lemma", + "list", + "list-of", + "listing", + "note", + "objectives", + "observation", + "outcomes", + "p", + "paragraphs", + "plaintitle", + "poem", + "pre", + "principle", + "problem", + "program", + "project", + "proof", + "proposition", + "question", + "reading-questions", + "reasoning", + "references", + "remark", + "sage", + "sbsgroup", + "shorttitle", + "sidebyside", + "solutions", + "subsection", + "table", + "tabular", + "technology", + "theorem", + "title", + "video", + "warning", + "worksheet" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "section-mark": { + "elements": [], + "attributes": [] + }, + "see": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "viz", + "vs", + "webwork", + "xelatex", + "xetex" + ], + "attributes": [] + }, + "seealso": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "viz", + "vs", + "webwork", + "xelatex", + "xetex" + ], + "attributes": [] + }, + "series": { + "elements": [], + "attributes": [] + }, + "servicemark": { + "elements": [], + "attributes": [] + }, + "sharp": { + "elements": [], + "attributes": [] + }, + "shortdescription": { + "elements": [ + "var" + ], + "attributes": [] + }, + "shortlicense": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "fn", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "shorttitle": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "viz", + "vs", + "webwork", + "xelatex", + "xetex" + ], + "attributes": [] + }, + "sidebyside": { + "elements": [ + "console", + "dl", + "exercise", + "figure", + "image", + "interactive", + "list", + "listing", + "ol", + "p", + "poem", + "pre", + "program", + "slate", + "stack", + "table", + "tabular", + "task", + "ul", + "video" + ], + "attributes": [ + "component", + "margins", + "valign", + "valigns", + "width", + "widths" + ] + }, + "slate": { + "elements": [ + "input", + "p", + "sidebyside", + "tabular", + "xhtml:button" + ], + "attributes": [ + "aspect", + "axis", + "component", + "grid", + "label", + "material", + "source", + "surface", + "xml:id" + ] + }, + "solidus": { + "elements": [], + "attributes": [] + }, + "solution": { + "elements": [ + "argument", + "aside", + "biographical", + "blockquote", + "console", + "explanation", + "figure", + "historical", + "idx", + "image", + "interactive", + "justification", + "list", + "listing", + "p", + "pre", + "program", + "proof", + "reasoning", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "solutions": { + "elements": [ + "conclusion", + "idx", + "introduction", + "plaintitle", + "shorttitle", + "title" + ], + "attributes": [ + "admit", + "component", + "divisional", + "inline", + "label", + "project", + "reading", + "scope", + "worksheet", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "species": { + "elements": [], + "attributes": [] + }, + "sq": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "area", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "stack": { + "elements": [ + "console", + "dl", + "image", + "ol", + "p", + "pre", + "program", + "slate", + "tabular", + "ul", + "video" + ], + "attributes": [] + }, + "stale": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "stanza": { + "elements": [ + "idx", + "line", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "statement": { + "elements": [ + "aside", + "biographical", + "blockquote", + "console", + "figure", + "historical", + "image", + "instruction", + "interactive", + "list", + "listing", + "ol", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "video" + ], + "attributes": [ + "correct" + ] + }, + "static": { + "elements": [ + "image" + ], + "attributes": [] + }, + "stdin": { + "elements": [], + "attributes": [] + }, + "subexercises": { + "elements": [ + "conclusion", + "exercise", + "exercisegroup", + "idx", + "introduction", + "plaintitle", + "shorttitle", + "title" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "subsection": { + "elements": [ + "activity", + "algorithm", + "argument", + "aside", + "assemblage", + "assumption", + "author", + "axiom", + "biographical", + "blockquote", + "claim", + "computation", + "conclusion", + "conjecture", + "console", + "convention", + "corollary", + "data", + "definition", + "example", + "exercise", + "exercises", + "explanation", + "exploration", + "fact", + "figure", + "fragment", + "glossary", + "handout", + "heuristic", + "historical", + "hypothesis", + "identity", + "idx", + "image", + "insight", + "interactive", + "introduction", + "investigation", + "justification", + "lemma", + "list", + "list-of", + "listing", + "note", + "objectives", + "observation", + "outcomes", + "p", + "paragraphs", + "plaintitle", + "poem", + "pre", + "principle", + "problem", + "program", + "project", + "proof", + "proposition", + "question", + "reading-questions", + "reasoning", + "references", + "remark", + "sage", + "sbsgroup", + "shorttitle", + "sidebyside", + "solutions", + "subsubsection", + "table", + "tabular", + "technology", + "theorem", + "title", + "video", + "warning", + "worksheet" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "subsubsection": { + "elements": [ + "activity", + "algorithm", + "argument", + "aside", + "assemblage", + "assumption", + "author", + "axiom", + "biographical", + "blockquote", + "claim", + "computation", + "conjecture", + "console", + "convention", + "corollary", + "data", + "definition", + "example", + "exercise", + "exercises", + "explanation", + "exploration", + "fact", + "figure", + "fragment", + "glossary", + "handout", + "heuristic", + "historical", + "hypothesis", + "identity", + "idx", + "image", + "insight", + "interactive", + "investigation", + "justification", + "lemma", + "list", + "list-of", + "listing", + "note", + "objectives", + "observation", + "outcomes", + "p", + "paragraphs", + "plaintitle", + "poem", + "pre", + "principle", + "problem", + "program", + "project", + "proof", + "proposition", + "question", + "reading-questions", + "reasoning", + "references", + "remark", + "sage", + "sbsgroup", + "shorttitle", + "sidebyside", + "solutions", + "table", + "tabular", + "technology", + "theorem", + "title", + "video", + "warning", + "worksheet" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "subtitle": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "line", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "support": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "cd", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "dl", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "fn", + "foreign", + "icon", + "idx", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "md", + "mdash", + "mdn", + "me", + "men", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "notation", + "obelus", + "ol", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "ul", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "swungdash": { + "elements": [], + "attributes": [] + }, + "table": { + "elements": [ + "idx", + "plaintitle", + "shorttitle", + "tabular", + "title" + ], + "attributes": [ + "component", + "label", + "landscape", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "tabular": { + "elements": [ + "col", + "row" + ], + "attributes": [ + "bottom", + "component", + "halign", + "left", + "margins", + "right", + "row-headers", + "top", + "valign", + "width" + ] + }, + "tag": { + "elements": [], + "attributes": [] + }, + "tage": { + "elements": [], + "attributes": [] + }, + "task": { + "elements": [ + "answer", + "aside", + "biographical", + "blockquote", + "conclusion", + "console", + "figure", + "hint", + "historical", + "idx", + "image", + "interactive", + "introduction", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "solution", + "statement", + "table", + "tabular", + "task", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "workspace", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "taxon": { + "elements": [ + "genus", + "species" + ], + "attributes": [ + "ncbi" + ] + }, + "technology": { + "elements": [ + "aside", + "biographical", + "blockquote", + "console", + "figure", + "historical", + "idx", + "image", + "interactive", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "term": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "tests": { + "elements": [ + "iotest" + ], + "attributes": [ + "visible" + ] + }, + "tex": { + "elements": [], + "attributes": [] + }, + "theorem": { + "elements": [ + "argument", + "aside", + "biographical", + "blockquote", + "console", + "creator", + "explanation", + "figure", + "historical", + "idx", + "image", + "interactive", + "justification", + "list", + "listing", + "p", + "pre", + "program", + "proof", + "reasoning", + "sage", + "sbsgroup", + "sidebyside", + "statement", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "timeofday": { + "elements": [], + "attributes": [] + }, + "times": { + "elements": [], + "attributes": [] + }, + "timesignature": { + "elements": [], + "attributes": [ + "bottom", + "top" + ] + }, + "title": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "line", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "url", + "var", + "viz", + "vs", + "webwork", + "xelatex", + "xetex", + "xref" + ], + "attributes": [] + }, + "titlepage": { + "elements": [ + "titlepage-items" + ], + "attributes": [] + }, + "titlepage-items": { + "elements": [], + "attributes": [] + }, + "today": { + "elements": [], + "attributes": [] + }, + "trademark": { + "elements": [], + "attributes": [] + }, + "ul": { + "elements": [ + "li" + ], + "attributes": [ + "cols", + "component", + "marker" + ] + }, + "unit": { + "elements": [], + "attributes": [ + "base", + "exp", + "prefix" + ] + }, + "url": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "viz", + "vs", + "webwork", + "xelatex", + "xetex" + ], + "attributes": [ + "href", + "visual" + ] + }, + "usage": { + "elements": [ + "m" + ], + "attributes": [] + }, + "var": { + "elements": [], + "attributes": [ + "category", + "evaluator", + "form", + "name", + "width" + ] + }, + "video": { + "elements": [], + "attributes": [ + "aspect", + "component", + "end", + "href", + "label", + "margins", + "play-at", + "preview", + "source", + "start", + "vimeo", + "width", + "xml:id", + "youtube", + "youtubeplaylist" + ] + }, + "viz": { + "elements": [], + "attributes": [] + }, + "volume": { + "elements": [], + "attributes": [] + }, + "vs": { + "elements": [], + "attributes": [] + }, + "warning": { + "elements": [ + "aside", + "biographical", + "blockquote", + "console", + "figure", + "historical", + "idx", + "image", + "interactive", + "list", + "listing", + "p", + "pre", + "program", + "sage", + "sbsgroup", + "sidebyside", + "table", + "tabular", + "title", + "video" + ], + "attributes": [ + "component", + "label", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "website": { + "elements": [ + "address", + "name", + "url" + ], + "attributes": [] + }, + "webwork": { + "elements": [ + "conclusion", + "description", + "hint", + "introduction", + "pg-code", + "pg-macros", + "solution", + "statement", + "task" + ], + "attributes": [ + "component", + "copy", + "label", + "seed", + "source", + "xml:id" + ] + }, + "worksheet": { + "elements": [ + "activity", + "algorithm", + "argument", + "aside", + "assemblage", + "assumption", + "axiom", + "biographical", + "blockquote", + "claim", + "computation", + "conclusion", + "conjecture", + "console", + "convention", + "corollary", + "data", + "definition", + "example", + "exercise", + "explanation", + "exploration", + "fact", + "figure", + "fragment", + "heuristic", + "historical", + "hypothesis", + "identity", + "idx", + "image", + "insight", + "interactive", + "introduction", + "investigation", + "justification", + "lemma", + "list", + "list-of", + "listing", + "note", + "objectives", + "observation", + "outcomes", + "p", + "page", + "plaintitle", + "poem", + "pre", + "principle", + "problem", + "program", + "project", + "proof", + "proposition", + "question", + "reasoning", + "remark", + "sage", + "sbsgroup", + "shorttitle", + "sidebyside", + "table", + "tabular", + "technology", + "theorem", + "title", + "video", + "warning" + ], + "attributes": [ + "bottom", + "component", + "label", + "left", + "margin", + "right", + "top", + "xml:base", + "xml:id", + "xml:lang" + ] + }, + "xelatex": { + "elements": [], + "attributes": [] + }, + "xetex": { + "elements": [], + "attributes": [] + }, + "xhtml:button": { + "elements": [], + "attributes": [ + "id", + "type" + ] + }, + "xref": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "viz", + "vs", + "webwork", + "xelatex", + "xetex" + ], + "attributes": [ + "detail", + "first", + "last", + "provisional", + "ref", + "text" + ] + }, + "year": { + "elements": [ + "abbr", + "acro", + "ad", + "alert", + "am", + "angles", + "articletitle", + "attr", + "bc", + "c", + "ca", + "chord", + "copyleft", + "copyright", + "dblbrackets", + "dblprime", + "degree", + "delete", + "doubleflat", + "doublesharp", + "eg", + "ellipsis", + "em", + "email", + "etal", + "etc", + "fillin", + "flat", + "foreign", + "icon", + "ie", + "init", + "insert", + "kbd", + "langle", + "latex", + "ldblbracket", + "lq", + "lsq", + "m", + "mdash", + "midpoint", + "minus", + "n", + "natural", + "nb", + "nbsp", + "ndash", + "obelus", + "permille", + "pf", + "phonomark", + "pilcrow", + "plusminus", + "pm", + "prefigure", + "pretext", + "prime", + "ps", + "pubtitle", + "q", + "quantity", + "rangle", + "rdblbracket", + "registered", + "rq", + "rsq", + "scaledeg", + "section-mark", + "servicemark", + "sharp", + "solidus", + "sq", + "stale", + "swungdash", + "tag", + "tage", + "taxon", + "term", + "tex", + "timeofday", + "times", + "timesignature", + "today", + "trademark", + "viz", + "vs", + "webwork", + "xelatex", + "xetex" + ], + "attributes": [] + } +} +}; diff --git a/packages/schema/src/types.ts b/packages/schema/src/types.ts new file mode 100644 index 0000000..460a04b --- /dev/null +++ b/packages/schema/src/types.ts @@ -0,0 +1,13 @@ +export type PretextSchemaElement = { + elements: string[]; + attributes: string[]; + description?: string; +}; + +export type PretextSchemaElementChildren = { + [key: string]: PretextSchemaElement; +}; + +export type PretextSchema = { + elementChildren: PretextSchemaElementChildren; +}; diff --git a/packages/schema/tsconfig.json b/packages/schema/tsconfig.json new file mode 100644 index 0000000..e1c4816 --- /dev/null +++ b/packages/schema/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "module": "commonjs", + "target": "esnext", + "outDir": "../../dist/out-tsc", + "rootDir": ".", + "declaration": true, + "types": ["node"] + }, + "include": ["src/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/packages/schema/tsconfig.lib.json b/packages/schema/tsconfig.lib.json new file mode 100644 index 0000000..14ace20 --- /dev/null +++ b/packages/schema/tsconfig.lib.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "declaration": true + }, + "include": ["src/**/*.ts"], + "exclude": ["src/**/*.spec.ts", "src/**/*.test.ts"] +} diff --git a/tsconfig.json b/tsconfig.json index 595cbb9..11b16da 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -20,6 +20,9 @@ "references": [ { "path": "./packages/format" + }, + { + "path": "./packages/schema" } ] }