/usr/share/doc/racket/xml/index.html is in racket-doc 6.7-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>XML: Parsing and Writing</title><link rel="stylesheet" type="text/css" href="../scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="../racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../doc-site.css" title="default"/><script type="text/javascript" src="../scribble-common.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../doc-site.js"></script><script type="text/javascript" src="../local-redirect/local-redirect.js"></script><script type="text/javascript" src="../local-redirect/local-user-redirect.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="doc-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,"tocview_0");">►</a></td><td></td><td><a href="" class="tocviewselflink" data-pltdoc="x">XML:<span class="mywbr"> </span> Parsing and Writing</a></td></tr></table></div><div class="tocviewsublistonly" style="display: none;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1 </td><td><a href="#%28part._.Datatypes%29" class="tocviewlink" data-pltdoc="x">Datatypes</a></td></tr><tr><td align="right">2 </td><td><a href="#%28part._.X-expression_.Predicate_and_.Contract%29" class="tocviewlink" data-pltdoc="x">X-<wbr></wbr>expression Predicate and Contract</a></td></tr><tr><td align="right">3 </td><td><a href="#%28part._.Reading_and_.Writing_.X.M.L%29" class="tocviewlink" data-pltdoc="x">Reading and Writing XML</a></td></tr><tr><td align="right">4 </td><td><a href="#%28part._.X.M.L_and_.X-expression_.Conversions%29" class="tocviewlink" data-pltdoc="x">XML and X-<wbr></wbr>expression Conversions</a></td></tr><tr><td align="right">5 </td><td><a href="#%28part._.Parameters%29" class="tocviewlink" data-pltdoc="x">Parameters</a></td></tr><tr><td align="right">6 </td><td><a href="#%28part._.P.List_.Library%29" class="tocviewlink" data-pltdoc="x">PList Library</a></td></tr><tr><td align="right">7 </td><td><a href="#%28part._.Simple_.X-expression_.Path_.Queries%29" class="tocviewlink" data-pltdoc="x">Simple X-<wbr></wbr>expression Path Queries</a></td></tr></table></div></div></div><div class="tocsub"><table class="tocsublist" cellspacing="0"><tr><td><span class="tocsublinknumber"></span><a href="#%28part._top%29" class="tocsubseclink" data-pltdoc="x">XML:<span class="mywbr"> </span> Parsing and Writing</a></td></tr><tr><td><span class="tocsublinknumber">1<tt> </tt></span><a href="#%28part._.Datatypes%29" class="tocsubseclink" data-pltdoc="x">Datatypes</a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._location%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">location</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._location%2Fc%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">location/<span class="mywbr"> </span>c</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._source%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">source</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._external-dtd%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">external-<wbr></wbr>dtd</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._external-dtd%2Fpublic%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">external-<wbr></wbr>dtd/<span class="mywbr"> </span>public</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._external-dtd%2Fsystem%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">external-<wbr></wbr>dtd/<span class="mywbr"> </span>system</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._document-type%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">document-<wbr></wbr>type</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._comment%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">comment</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._p-i%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">p-<wbr></wbr>i</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._misc%2Fc%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">misc/<span class="mywbr"> </span>c</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._prolog%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">prolog</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._document%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">document</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._element%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">element</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._attribute%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">attribute</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._content%2Fc%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">content/<span class="mywbr"> </span>c</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._permissive%2Fc%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">permissive/<span class="mywbr"> </span>c</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._valid-char~3f%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">valid-<wbr></wbr>char?</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._entity%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">entity</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._pcdata%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">pcdata</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._cdata%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">cdata</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._exn~3ainvalid-xexpr%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym">exn:<span class="mywbr"> </span>invalid-<wbr></wbr>xexpr</span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._exn~3axml%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym">exn:<span class="mywbr"> </span>xml</span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._xexpr~3f%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">xexpr?</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._xexpr%2Fc%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">xexpr/<span class="mywbr"> </span>c</span></span></a></td></tr><tr><td><span class="tocsublinknumber">2<tt> </tt></span><a href="#%28part._.X-expression_.Predicate_and_.Contract%29" class="tocsubseclink" data-pltdoc="x">X-<wbr></wbr>expression Predicate and Contract</a></td></tr><tr><td><span class="tocsublinknumber">3<tt> </tt></span><a href="#%28part._.Reading_and_.Writing_.X.M.L%29" class="tocsubseclink" data-pltdoc="x">Reading and Writing XML</a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._read-xml%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">read-<wbr></wbr>xml</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._read-xml%2Fdocument%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">read-<wbr></wbr>xml/<span class="mywbr"> </span>document</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._read-xml%2Felement%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">read-<wbr></wbr>xml/<span class="mywbr"> </span>element</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._syntax~3aread-xml%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">syntax:<span class="mywbr"> </span>read-<wbr></wbr>xml</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._syntax~3aread-xml%2Felement%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">syntax:<span class="mywbr"> </span>read-<wbr></wbr>xml/<span class="mywbr"> </span>element</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._write-xml%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">write-<wbr></wbr>xml</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._write-xml%2Fcontent%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">write-<wbr></wbr>xml/<span class="mywbr"> </span>content</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._display-xml%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">display-<wbr></wbr>xml</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._display-xml%2Fcontent%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">display-<wbr></wbr>xml/<span class="mywbr"> </span>content</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._write-xexpr%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">write-<wbr></wbr>xexpr</span></span></a></td></tr><tr><td><span class="tocsublinknumber">4<tt> </tt></span><a href="#%28part._.X.M.L_and_.X-expression_.Conversions%29" class="tocsubseclink" data-pltdoc="x">XML and X-<wbr></wbr>expression Conversions</a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._permissive-xexprs%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">permissive-<wbr></wbr>xexprs</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xml-~3exexpr%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">xml-<wbr></wbr>>xexpr</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xexpr-~3exml%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">xexpr-<wbr></wbr>>xml</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xexpr-~3estring%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">xexpr-<wbr></wbr>>string</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._string-~3exexpr%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">string-<wbr></wbr>>xexpr</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._xml-encode-attribute%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym">xml-<wbr></wbr>encode-<wbr></wbr>attribute</span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._eliminate-whitespace%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">eliminate-<wbr></wbr>whitespace</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._validate-xexpr%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">validate-<wbr></wbr>xexpr</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._correct-xexpr~3f%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">correct-<wbr></wbr>xexpr?</span></span></a></td></tr><tr><td><span class="tocsublinknumber">5<tt> </tt></span><a href="#%28part._.Parameters%29" class="tocsubseclink" data-pltdoc="x">Parameters</a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._empty-tag-shorthand%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">empty-<wbr></wbr>tag-<wbr></wbr>shorthand</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._html-empty-tags%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">html-<wbr></wbr>empty-<wbr></wbr>tags</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._collapse-whitespace%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">collapse-<wbr></wbr>whitespace</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._read-comments%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">read-<wbr></wbr>comments</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xml-count-bytes%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">xml-<wbr></wbr>count-<wbr></wbr>bytes</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xexpr-drop-empty-attributes%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">xexpr-<wbr></wbr>drop-<wbr></wbr>empty-<wbr></wbr>attributes</span></span></a></td></tr><tr><td><span class="tocsublinknumber">6<tt> </tt></span><a href="#%28part._.P.List_.Library%29" class="tocsubseclink" data-pltdoc="x">PList Library</a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fplist..rkt%29._plist-value~3f%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">plist-<wbr></wbr>value?</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fplist..rkt%29._plist-dict~3f%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">plist-<wbr></wbr>dict?</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fplist..rkt%29._read-plist%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">read-<wbr></wbr>plist</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fplist..rkt%29._write-plist%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">write-<wbr></wbr>plist</span></span></a></td></tr><tr><td><span class="tocsublinknumber">7<tt> </tt></span><a href="#%28part._.Simple_.X-expression_.Path_.Queries%29" class="tocsubseclink" data-pltdoc="x">Simple X-<wbr></wbr>expression Path Queries</a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fpath..rkt%29._se-path~3f%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">se-<wbr></wbr>path?</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fpath..rkt%29._se-path%2A%2Flist%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">se-<wbr></wbr>path*/<span class="mywbr"> </span>list</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._xml%2Fpath..rkt%29._se-path%2A%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">se-<wbr></wbr>path*</span></span></a></td></tr></table></div></div><div class="maincolumn"><div class="main"><div class="versionbox"><span class="version">6.7</span></div><div class="navsettop"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, "6.7", "../");" onfocus="this.style.color="black"; this.style.textAlign="left"; if (this.value == "...search manuals...") this.value="";" onblur="if (this.value.match(/^ *$/)) { this.style.color="#888"; this.style.textAlign="center"; this.value="...search manuals..."; }"/></form> <a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot("6.7");">top</a></span><span class="navright"> <span class="nonavigation">← prev</span> <a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot("6.7");">up</a> <span class="nonavigation">next →</span></span> </div><h2 x-source-module="(lib "xml/xml.scrbl")" x-source-pkg="racket-doc" x-part-tag=""top""><a name="(part._top)"></a><a name="(part._.X.M.L__.Parsing_and_.Writing)"></a><a name="(mod-path._xml)"></a>XML: Parsing and Writing</h2><div class="SAuthorListBox"><span class="SAuthorList"><p class="author">Paul Graunke and Jay McCarthy</p></span></div><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">xml</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller"> package:</span> <span class="stt">base</span></span></td></tr></table></p><p>The <a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">xml</span></a> library provides functions for parsing and
generating XML. XML can be represented as an instance of the
<span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._document%29%29" class="RktValLink" data-pltdoc="x">document</a></span> structure type, or as a kind of S-expression that is
called an <a name="(tech._x._expression)"></a><span style="font-style: italic">X-expression</span>.</p><p>The <a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">xml</span></a> library does not provide Document Type
Declaration (DTD) processing, including preservation of DTDs in read documents, or validation.
It also does not expand user-defined entities or read user-defined entities in attributes.
It does not interpret namespaces either.</p><h3 x-source-module="(lib "xml/xml.scrbl")" x-source-pkg="racket-doc" x-part-tag=""Datatypes"">1<tt> </tt><a name="(part._.Datatypes)"></a>Datatypes</h3><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/main..rkt)._location-offset))"></a><a name="(def._((lib._xml/main..rkt)._location-char))"></a><a name="(def._((lib._xml/main..rkt)._location-line))"></a><a name="(def._((lib._xml/main..rkt)._make-location))"></a><a name="(def._((lib._xml/main..rkt)._location~3f))"></a><a name="(def._((lib._xml/main..rkt)._struct~3alocation))"></a><a name="(def._((lib._xml/main..rkt)._location))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._location%29%29" class="RktValDef RktValLink" data-pltdoc="x">location</a></span></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">line</span><span class="stt"> </span><span class="RktSym">char</span><span class="stt"> </span><span class="RktSym">offset</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._make-location%29%29" class="RktValLink" data-pltdoc="x">make-location</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">line</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">false/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">char</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">false/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">offset</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a location in an input stream. The offset is a character offset unless <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xml-count-bytes%29%29" class="RktValLink" data-pltdoc="x">xml-count-bytes</a></span> is <span class="RktVal">#t</span>, in which case it is a byte offset.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((lib._xml/main..rkt)._location/c))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._location%2Fc%29%29" class="RktValDef RktValLink" data-pltdoc="x">location/c</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=contract-utilities.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fguts..rkt%2529._contract%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">contract?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Equivalent to <span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="stt"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._location~3f%29%29" class="RktValLink" data-pltdoc="x">location?</a></span><span class="stt"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="stt"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">false/c</a></span><span class="RktPn">)</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/main..rkt)._source-stop))"></a><a name="(def._((lib._xml/main..rkt)._source-start))"></a><a name="(def._((lib._xml/main..rkt)._make-source))"></a><a name="(def._((lib._xml/main..rkt)._source~3f))"></a><a name="(def._((lib._xml/main..rkt)._struct~3asource))"></a><a name="(def._((lib._xml/main..rkt)._source))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._source%29%29" class="RktValDef RktValLink" data-pltdoc="x">source</a></span></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">start</span><span class="stt"> </span><span class="RktSym">stop</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._make-source%29%29" class="RktValLink" data-pltdoc="x">make-source</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">start</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._location%2Fc%29%29" class="RktValLink" data-pltdoc="x">location/c</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">stop</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._location%2Fc%29%29" class="RktValLink" data-pltdoc="x">location/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a source location. Other structure types extend
<span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._source%29%29" class="RktValLink" data-pltdoc="x">source</a></span>.</div></p><p>When XML is generated from an input stream by <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._read-xml%29%29" class="RktValLink" data-pltdoc="x">read-xml</a></span>,
locations are represented by <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._location%29%29" class="RktValLink" data-pltdoc="x">location</a></span> instances. When XML
structures are generated by <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xexpr-~3exml%29%29" class="RktValLink" data-pltdoc="x">xexpr->xml</a></span>, then locations are
symbols.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/main..rkt)._external-dtd-system))"></a><a name="(def._((lib._xml/main..rkt)._make-external-dtd))"></a><a name="(def._((lib._xml/main..rkt)._external-dtd~3f))"></a><a name="(def._((lib._xml/main..rkt)._struct~3aexternal-dtd))"></a><a name="(def._((lib._xml/main..rkt)._external-dtd))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._external-dtd%29%29" class="RktValDef RktValLink" data-pltdoc="x">external-dtd</a></span></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">system</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._make-external-dtd%29%29" class="RktValLink" data-pltdoc="x">make-external-dtd</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">system</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/main..rkt)._external-dtd/public-public))"></a><a name="(def._((lib._xml/main..rkt)._make-external-dtd/public))"></a><a name="(def._((lib._xml/main..rkt)._external-dtd/public~3f))"></a><a name="(def._((lib._xml/main..rkt)._struct~3aexternal-dtd/public))"></a><a name="(def._((lib._xml/main..rkt)._external-dtd/public))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._external-dtd%2Fpublic%29%29" class="RktValDef RktValLink" data-pltdoc="x">external-dtd/public</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._external-dtd%29%29" class="RktValLink" data-pltdoc="x">external-dtd</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">public</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._make-external-dtd%2Fpublic%29%29" class="RktValLink" data-pltdoc="x">make-external-dtd/public</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">public</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/main..rkt)._make-external-dtd/system))"></a><a name="(def._((lib._xml/main..rkt)._external-dtd/system~3f))"></a><a name="(def._((lib._xml/main..rkt)._struct~3aexternal-dtd/system))"></a><a name="(def._((lib._xml/main..rkt)._external-dtd/system))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._external-dtd%2Fsystem%29%29" class="RktValDef RktValLink" data-pltdoc="x">external-dtd/system</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._external-dtd%29%29" class="RktValLink" data-pltdoc="x">external-dtd</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._make-external-dtd%2Fsystem%29%29" class="RktValLink" data-pltdoc="x">make-external-dtd/system</a></span><span class="RktPn">)</span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Represents an externally defined DTD.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/main..rkt)._document-type-inlined))"></a><a name="(def._((lib._xml/main..rkt)._document-type-external))"></a><a name="(def._((lib._xml/main..rkt)._document-type-name))"></a><a name="(def._((lib._xml/main..rkt)._make-document-type))"></a><a name="(def._((lib._xml/main..rkt)._document-type~3f))"></a><a name="(def._((lib._xml/main..rkt)._struct~3adocument-type))"></a><a name="(def._((lib._xml/main..rkt)._document-type))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._document-type%29%29" class="RktValDef RktValLink" data-pltdoc="x">document-type</a></span></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">name</span><span class="stt"> </span><span class="RktSym">external</span><span class="stt"> </span><span class="RktSym">inlined</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._make-document-type%29%29" class="RktValLink" data-pltdoc="x">make-document-type</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">external</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._external-dtd~3f%29%29" class="RktValLink" data-pltdoc="x">external-dtd?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">inlined</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">false/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a document type.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/main..rkt)._comment-text))"></a><a name="(def._((lib._xml/main..rkt)._make-comment))"></a><a name="(def._((lib._xml/main..rkt)._comment~3f))"></a><a name="(def._((lib._xml/main..rkt)._struct~3acomment))"></a><a name="(def._((lib._xml/main..rkt)._comment))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._comment%29%29" class="RktValDef RktValLink" data-pltdoc="x">comment</a></span></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">text</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._make-comment%29%29" class="RktValLink" data-pltdoc="x">make-comment</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">text</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a comment.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/main..rkt)._p-i-instruction))"></a><a name="(def._((lib._xml/main..rkt)._p-i-target-name))"></a><a name="(def._((lib._xml/main..rkt)._make-p-i))"></a><a name="(def._((lib._xml/main..rkt)._p-i~3f))"></a><a name="(def._((lib._xml/main..rkt)._struct~3ap-i))"></a><a name="(def._((lib._xml/main..rkt)._p-i))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._p-i%29%29" class="RktValDef RktValLink" data-pltdoc="x">p-i</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._source%29%29" class="RktValLink" data-pltdoc="x">source</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">target-name</span><span class="stt"> </span><span class="RktSym">instruction</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._make-p-i%29%29" class="RktValLink" data-pltdoc="x">make-p-i</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">target-name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">instruction</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a processing instruction.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((lib._xml/main..rkt)._misc/c))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._misc%2Fc%29%29" class="RktValDef RktValLink" data-pltdoc="x">misc/c</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=contract-utilities.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fguts..rkt%2529._contract%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">contract?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Equivalent to <span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="stt"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._comment~3f%29%29" class="RktValLink" data-pltdoc="x">comment?</a></span><span class="stt"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._p-i~3f%29%29" class="RktValLink" data-pltdoc="x">p-i?</a></span><span class="RktPn">)</span></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/main..rkt)._prolog-misc2))"></a><a name="(def._((lib._xml/main..rkt)._prolog-dtd))"></a><a name="(def._((lib._xml/main..rkt)._prolog-misc))"></a><a name="(def._((lib._xml/main..rkt)._make-prolog))"></a><a name="(def._((lib._xml/main..rkt)._prolog~3f))"></a><a name="(def._((lib._xml/main..rkt)._struct~3aprolog))"></a><a name="(def._((lib._xml/main..rkt)._prolog))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._prolog%29%29" class="RktValDef RktValLink" data-pltdoc="x">prolog</a></span></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">misc</span><span class="stt"> </span><span class="RktSym">dtd</span><span class="stt"> </span><span class="RktSym">misc2</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._make-prolog%29%29" class="RktValLink" data-pltdoc="x">make-prolog</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">misc</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._misc%2Fc%29%29" class="RktValLink" data-pltdoc="x">misc/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">dtd</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._document-type%29%29" class="RktValLink" data-pltdoc="x">document-type</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">false/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">misc2</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._misc%2Fc%29%29" class="RktValLink" data-pltdoc="x">misc/c</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a document prolog.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/main..rkt)._document-misc))"></a><a name="(def._((lib._xml/main..rkt)._document-element))"></a><a name="(def._((lib._xml/main..rkt)._document-prolog))"></a><a name="(def._((lib._xml/main..rkt)._make-document))"></a><a name="(def._((lib._xml/main..rkt)._document~3f))"></a><a name="(def._((lib._xml/main..rkt)._struct~3adocument))"></a><a name="(def._((lib._xml/main..rkt)._document))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._document%29%29" class="RktValDef RktValLink" data-pltdoc="x">document</a></span></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">prolog</span><span class="stt"> </span><span class="RktSym">element</span><span class="stt"> </span><span class="RktSym">misc</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._make-document%29%29" class="RktValLink" data-pltdoc="x">make-document</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">prolog</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._prolog~3f%29%29" class="RktValLink" data-pltdoc="x">prolog?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">element</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._element~3f%29%29" class="RktValLink" data-pltdoc="x">element?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">misc</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._misc%2Fc%29%29" class="RktValLink" data-pltdoc="x">misc/c</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a document.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/main..rkt)._element-content))"></a><a name="(def._((lib._xml/main..rkt)._element-attributes))"></a><a name="(def._((lib._xml/main..rkt)._element-name))"></a><a name="(def._((lib._xml/main..rkt)._make-element))"></a><a name="(def._((lib._xml/main..rkt)._element~3f))"></a><a name="(def._((lib._xml/main..rkt)._struct~3aelement))"></a><a name="(def._((lib._xml/main..rkt)._element))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._element%29%29" class="RktValDef RktValLink" data-pltdoc="x">element</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._source%29%29" class="RktValLink" data-pltdoc="x">source</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">name</span><span class="stt"> </span><span class="RktSym">attributes</span><span class="stt"> </span><span class="RktSym">content</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._make-element%29%29" class="RktValLink" data-pltdoc="x">make-element</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">attributes</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._attribute~3f%29%29" class="RktValLink" data-pltdoc="x">attribute?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">content</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._content%2Fc%29%29" class="RktValLink" data-pltdoc="x">content/c</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents an element.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/main..rkt)._attribute-value))"></a><a name="(def._((lib._xml/main..rkt)._attribute-name))"></a><a name="(def._((lib._xml/main..rkt)._make-attribute))"></a><a name="(def._((lib._xml/main..rkt)._attribute~3f))"></a><a name="(def._((lib._xml/main..rkt)._struct~3aattribute))"></a><a name="(def._((lib._xml/main..rkt)._attribute))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._attribute%29%29" class="RktValDef RktValLink" data-pltdoc="x">attribute</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._source%29%29" class="RktValLink" data-pltdoc="x">source</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">name</span><span class="stt"> </span><span class="RktSym">value</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._make-attribute%29%29" class="RktValLink" data-pltdoc="x">make-attribute</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">value</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._permissive%2Fc%29%29" class="RktValLink" data-pltdoc="x">permissive/c</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents an attribute within an element.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((lib._xml/main..rkt)._content/c))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._content%2Fc%29%29" class="RktValDef RktValLink" data-pltdoc="x">content/c</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=contract-utilities.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fguts..rkt%2529._contract%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">contract?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Equivalent to <span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="stt"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._pcdata~3f%29%29" class="RktValLink" data-pltdoc="x">pcdata?</a></span><span class="stt"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._element~3f%29%29" class="RktValLink" data-pltdoc="x">element?</a></span><span class="stt"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._entity~3f%29%29" class="RktValLink" data-pltdoc="x">entity?</a></span><span class="stt"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._comment~3f%29%29" class="RktValLink" data-pltdoc="x">comment?</a></span><span class="stt"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._cdata~3f%29%29" class="RktValLink" data-pltdoc="x">cdata?</a></span><span class="stt"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._p-i~3f%29%29" class="RktValLink" data-pltdoc="x">p-i?</a></span><span class="stt"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._permissive%2Fc%29%29" class="RktValLink" data-pltdoc="x">permissive/c</a></span><span class="RktPn">)</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((lib._xml/main..rkt)._permissive/c))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._permissive%2Fc%29%29" class="RktValDef RktValLink" data-pltdoc="x">permissive/c</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=contract-utilities.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fguts..rkt%2529._contract%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">contract?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">If <span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._permissive-xexprs%29%29" class="RktValLink" data-pltdoc="x">permissive-xexprs</a></span><span class="RktPn">)</span> is <span class="RktVal">#t</span>, then equivalent to <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span>, otherwise equivalent to <span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=contract-utilities.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._make-none%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">make-none/c</a></span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">permissive</span><span class="RktPn">)</span></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._valid-char~3f))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._valid-char~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">valid-char?</a></span></span><span class="hspace"> </span><span class="RktVar">x</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">x</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns true if <span class="RktVar">x</span> is an exact-nonnegative-integer whose character interpretation under UTF-8 is from the set ([#x1-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]), in accordance with section 2.2 of the XML 1.1 spec.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/main..rkt)._entity-text))"></a><a name="(def._((lib._xml/main..rkt)._make-entity))"></a><a name="(def._((lib._xml/main..rkt)._entity~3f))"></a><a name="(def._((lib._xml/main..rkt)._struct~3aentity))"></a><a name="(def._((lib._xml/main..rkt)._entity))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._entity%29%29" class="RktValDef RktValLink" data-pltdoc="x">entity</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._source%29%29" class="RktValLink" data-pltdoc="x">source</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">text</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._make-entity%29%29" class="RktValLink" data-pltdoc="x">make-entity</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">text</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._valid-char~3f%29%29" class="RktValLink" data-pltdoc="x">valid-char?</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a symbolic or numerical entity.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/main..rkt)._pcdata-string))"></a><a name="(def._((lib._xml/main..rkt)._make-pcdata))"></a><a name="(def._((lib._xml/main..rkt)._pcdata~3f))"></a><a name="(def._((lib._xml/main..rkt)._struct~3apcdata))"></a><a name="(def._((lib._xml/main..rkt)._pcdata))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._pcdata%29%29" class="RktValDef RktValLink" data-pltdoc="x">pcdata</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._source%29%29" class="RktValLink" data-pltdoc="x">source</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">string</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._make-pcdata%29%29" class="RktValLink" data-pltdoc="x">make-pcdata</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">string</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents PCDATA content.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/main..rkt)._cdata-string))"></a><a name="(def._((lib._xml/main..rkt)._make-cdata))"></a><a name="(def._((lib._xml/main..rkt)._cdata~3f))"></a><a name="(def._((lib._xml/main..rkt)._struct~3acdata))"></a><a name="(def._((lib._xml/main..rkt)._cdata))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._cdata%29%29" class="RktValDef RktValLink" data-pltdoc="x">cdata</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._source%29%29" class="RktValLink" data-pltdoc="x">source</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">string</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._make-cdata%29%29" class="RktValLink" data-pltdoc="x">make-cdata</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">string</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents CDATA content.</div></p><p>The <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string</a></span> field is assumed to be of the form
<span class="RktInBG"><span class="hspace"></span><span class="RktIn"><![CDATA[</span><span class="hspace"></span></span><span class="sroman">‹<span style="font-style: italic">content</span>›</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">]]></span><span class="hspace"></span></span> with proper quoting
of <span class="sroman">‹<span style="font-style: italic">content</span>›</span>. Otherwise, <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._write-xml%29%29" class="RktValLink" data-pltdoc="x">write-xml</a></span> generates
incorrect output.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/main..rkt)._exn~3ainvalid-xexpr-code))"></a><a name="(def._((lib._xml/main..rkt)._make-exn~3ainvalid-xexpr))"></a><a name="(def._((lib._xml/main..rkt)._exn~3ainvalid-xexpr~3f))"></a><a name="(def._((lib._xml/main..rkt)._struct~3aexn~3ainvalid-xexpr))"></a><a name="(def._((lib._xml/main..rkt)._exn~3ainvalid-xexpr))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><span class="RktSymDef RktSym">exn:invalid-xexpr</span></span></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=exns.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._exn%7E3afail%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exn:fail</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">code</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym">make-exn:invalid-xexpr</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">code</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Raised by <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._validate-xexpr%29%29" class="RktValLink" data-pltdoc="x">validate-xexpr</a></span> when passed an invalid
<a href="#%28tech._x._expression%29" class="techoutside" data-pltdoc="x"><span class="techinside">X-expression</span></a>. The <span class="RktSym">code</span> fields contains an invalid part
of the input to <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._validate-xexpr%29%29" class="RktValLink" data-pltdoc="x">validate-xexpr</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._xml/private/xexpr-core..rkt)._make-exn~3axml))"></a><a name="(def._((lib._xml/main..rkt)._exn~3axml~3f))"></a><a name="(def._((lib._xml/private/xexpr-core..rkt)._struct~3aexn~3axml))"></a><a name="(def._((lib._xml/private/xexpr-core..rkt)._exn~3axml))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><span class="RktSymDef RktSym">exn:xml</span></span></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=exns.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._exn%7E3afail%7E3aread%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">exn:fail:read</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym">make-exn:xml</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised by <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._read-xml%29%29" class="RktValLink" data-pltdoc="x">read-xml</a></span> when an error in the XML input is found.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/private/xexpr-core..rkt)._xexpr~3f))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._xexpr~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">xexpr?</a></span></span><span class="hspace"> </span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">v</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktVal">#t</span> if <span class="RktVar">v</span> is a <a href="#%28tech._x._expression%29" class="techoutside" data-pltdoc="x"><span class="techinside">X-expression</span></a>, <span class="RktVal">#f</span> otherwise.</div></p><p>The following grammar describes expressions that create <a href="#%28tech._x._expression%29" class="techoutside" data-pltdoc="x"><span class="techinside">X-expressions</span></a>:</p><p><table cellspacing="0" cellpadding="0"><tr><td align="right" valign="baseline"><span class="hspace"> </span><span class="RktVar">xexpr</span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">=</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktVar">string</span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVar">symbol</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVar">symbol</span><span class="hspace"> </span><span class="RktVar">string</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym">...</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVar">xexpr</span><span class="hspace"> </span><span class="RktSym">...</span><span class="RktPn">)</span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._cons%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">cons</a></span><span class="hspace"> </span><span class="RktVar">symbol</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVar">xexpr</span><span class="hspace"> </span><span class="RktSym">...</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktVar">symbol</span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._valid-char~3f%29%29" class="RktValLink" data-pltdoc="x">valid-char?</a></span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktVar">cdata</span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktVar">misc</span></td></tr></table></p><p>A <span class="RktVar">string</span> is literal data. When converted to an XML stream,
the characters of the data will be escaped as necessary.</p><p>A pair represents an element, optionally with attributes. Each
attribute’s name is represented by a symbol, and its value is
represented by a string.</p><p>A <span class="RktVar">symbol</span> represents a symbolic entity. For example,
<span class="RktVal">'</span><span class="RktVal">nbsp</span> represents <span class="RktInBG"><span class="hspace"></span><span class="RktIn">&nbsp;</span><span class="hspace"></span></span>.</p><p>An <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._valid-char~3f%29%29" class="RktValLink" data-pltdoc="x">valid-char?</a></span> represents a numeric entity. For example,
<span class="RktVal">#x20</span> represents <span class="RktInBG"><span class="hspace"></span><span class="RktIn">&#x20;</span><span class="hspace"></span></span>.</p><p>A <span class="RktVar">cdata</span> is an instance of the <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._cdata%29%29" class="RktValLink" data-pltdoc="x">cdata</a></span> structure type,
and a <span class="RktVar">misc</span> is an instance of the <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._comment%29%29" class="RktValLink" data-pltdoc="x">comment</a></span> or
<span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._p-i%29%29" class="RktValLink" data-pltdoc="x">p-i</a></span> structure types.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((lib._xml/private/xexpr-core..rkt)._xexpr/c))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._xexpr%2Fc%29%29" class="RktValDef RktValLink" data-pltdoc="x">xexpr/c</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=contract-utilities.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fguts..rkt%2529._contract%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">contract?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">A contract that is like <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._xexpr~3f%29%29" class="RktValLink" data-pltdoc="x">xexpr?</a></span> except produces a better error
message when the value is not an <a href="#%28tech._x._expression%29" class="techoutside" data-pltdoc="x"><span class="techinside">X-expression</span></a>.</div></p><h3 x-source-module="(lib "xml/xml.scrbl")" x-source-pkg="racket-doc" x-part-tag=""X-expression_Predicate_and_Contract"">2<tt> </tt><a name="(part._.X-expression_.Predicate_and_.Contract)"></a><a name="(mod-path._xml/xexpr)"></a>X-expression Predicate and Contract</h3><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._xml%2Fxexpr%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">xml/xexpr</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller"> package:</span> <span class="stt">base</span></span></td></tr></table></p><p>The <a href="#%28mod-path._xml%2Fxexpr%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">xml/xexpr</span></a> library provides just <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._xexpr%2Fc%29%29" class="RktValLink" data-pltdoc="x">xexpr/c</a></span>,
<span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._xexpr~3f%29%29" class="RktValLink" data-pltdoc="x">xexpr?</a></span>, <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._correct-xexpr~3f%29%29" class="RktValLink" data-pltdoc="x">correct-xexpr?</a></span>, and <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._validate-xexpr%29%29" class="RktValLink" data-pltdoc="x">validate-xexpr</a></span>
from <a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">xml</span></a> with minimal dependencies.</p><h3 x-source-module="(lib "xml/xml.scrbl")" x-source-pkg="racket-doc" x-part-tag=""Reading_and_Writing_XML"">3<tt> </tt><a name="(part._.Reading_and_.Writing_.X.M.L)"></a>Reading and Writing XML</h3><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._read-xml))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._read-xml%29%29" class="RktValDef RktValLink" data-pltdoc="x">read-xml</a></span></span><span class="hspace"> </span>[<span class="RktVar">in</span>]<span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._document~3f%29%29" class="RktValLink" data-pltdoc="x">document?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">in</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-input-port%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">current-input-port</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Reads in an XML document from the given or current input port XML
documents contain exactly one element, raising <span class="RktSym">xml-read:error</span>
if the input stream has zero elements or more than one element.</div></p><p>Malformed xml is reported with source locations in the form
<span class="sroman">‹<span style="font-style: italic">l</span>›</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span><span class="sroman">‹<span style="font-style: italic">c</span>›</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">/</span><span class="hspace"></span></span><span class="sroman">‹<span style="font-style: italic">o</span>›</span>, where
<span class="sroman">‹<span style="font-style: italic">l</span>›</span>, <span class="sroman">‹<span style="font-style: italic">c</span>›</span>, and <span class="sroman">‹<span style="font-style: italic">o</span>›</span> are the line number, column
number, and next port position, respectively as returned by
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=linecol.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._port-next-location%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">port-next-location</a></span>.</p><p>Any non-characters other than <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._eof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">eof</a></span> read from the input-port
appear in the document content. Such special values may appear only
where XML content may. See <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=customport.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._make-input-port%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">make-input-port</a></span> for information
about creating ports that return non-character values.</p><p><div class="SIntrapara">Example:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xml-~3exexpr%29%29" class="RktValLink" data-pltdoc="x">xml->xexpr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._document-element%29%29" class="RktValLink" data-pltdoc="x">document-element</a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._read-xml%29%29" class="RktValLink" data-pltdoc="x">read-xml</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=stringport.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._open-input-string%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">open-input-string</a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">"<doc><bold>hi</bold> there!</doc>"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><p><span class="RktRes">'(doc () (bold () "hi") " there!")</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._read-xml/document))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._read-xml%2Fdocument%29%29" class="RktValDef RktValLink" data-pltdoc="x">read-xml/document</a></span></span><span class="hspace"> </span>[<span class="RktVar">in</span>]<span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._document~3f%29%29" class="RktValLink" data-pltdoc="x">document?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">in</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-input-port%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">current-input-port</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Like <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._read-xml%29%29" class="RktValLink" data-pltdoc="x">read-xml</a></span>, except that the reader stops after the single element, rather than attempting to read "miscellaneous" XML content after the element. The document returned by <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._read-xml%2Fdocument%29%29" class="RktValLink" data-pltdoc="x">read-xml/document</a></span> always has an empty <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._document-misc%29%29" class="RktValLink" data-pltdoc="x">document-misc</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._read-xml/element))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._read-xml%2Felement%29%29" class="RktValDef RktValLink" data-pltdoc="x">read-xml/element</a></span></span><span class="hspace"> </span>[<span class="RktVar">in</span>]<span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._element~3f%29%29" class="RktValLink" data-pltdoc="x">element?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">in</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-input-port%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">current-input-port</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Reads a single XML element from the port. The next non-whitespace
character read must start an XML element, but the input port can
contain other data after the element.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._syntax~3aread-xml))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._syntax~3aread-xml%29%29" class="RktValDef RktValLink" data-pltdoc="x">syntax:read-xml</a></span></span><span class="hspace"> </span>[<span class="RktVar">in</span>]<span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=stxops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._syntax%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">syntax?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">in</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-input-port%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">current-input-port</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Reads in an XML document and produces a syntax object version (like
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=Reading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._read-syntax%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">read-syntax</a></span>) of an <a href="#%28tech._x._expression%29" class="techoutside" data-pltdoc="x"><span class="techinside">X-expression</span></a>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._syntax~3aread-xml/element))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._syntax~3aread-xml%2Felement%29%29" class="RktValDef RktValLink" data-pltdoc="x">syntax:read-xml/element</a></span></span><span class="hspace"> </span>[<span class="RktVar">in</span>]<span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=stxops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._syntax%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">syntax?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">in</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-input-port%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">current-input-port</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Like <span class="RktSym">syntax:real-xml</span>, but it reads an XML element like
<span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._read-xml%2Felement%29%29" class="RktValLink" data-pltdoc="x">read-xml/element</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._write-xml))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._write-xml%29%29" class="RktValDef RktValLink" data-pltdoc="x">write-xml</a></span></span><span class="hspace"> </span><span class="RktVar">doc</span><span class="hspace"> </span>[<span class="RktVar">out</span>]<span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">doc</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._document~3f%29%29" class="RktValLink" data-pltdoc="x">document?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">out</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._output-port%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">output-port?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-output-port%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">current-output-port</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Writes a document to the given output port, currently ignoring
everything except the document’s root element.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._write-xml/content))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._write-xml%2Fcontent%29%29" class="RktValDef RktValLink" data-pltdoc="x">write-xml/content</a></span></span><span class="hspace"> </span><span class="RktVar">content</span><span class="hspace"> </span>[<span class="RktVar">out</span>]<span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">content</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._content%2Fc%29%29" class="RktValLink" data-pltdoc="x">content/c</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">out</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._output-port%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">output-port?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-output-port%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">current-output-port</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Writes document content to the given output port.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._display-xml))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._display-xml%29%29" class="RktValDef RktValLink" data-pltdoc="x">display-xml</a></span></span><span class="hspace"> </span><span class="RktVar">doc</span><span class="hspace"> </span>[<span class="RktVar">out</span>]<span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">doc</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._document~3f%29%29" class="RktValLink" data-pltdoc="x">document?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">out</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._output-port%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">output-port?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-output-port%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">current-output-port</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Like <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._write-xml%29%29" class="RktValLink" data-pltdoc="x">write-xml</a></span>, but newlines and indentation make the output
more readable, though less technically correct when whitespace is
significant.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._display-xml/content))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._display-xml%2Fcontent%29%29" class="RktValDef RktValLink" data-pltdoc="x">display-xml/content</a></span></span><span class="hspace"> </span><span class="RktVar">content</span><span class="hspace"> </span>[<span class="RktVar">out</span>]<span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">content</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._content%2Fc%29%29" class="RktValLink" data-pltdoc="x">content/c</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">out</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._output-port%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">output-port?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-output-port%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">current-output-port</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Like <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._write-xml%2Fcontent%29%29" class="RktValLink" data-pltdoc="x">write-xml/content</a></span>, but with indentation and newlines
like <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._display-xml%29%29" class="RktValLink" data-pltdoc="x">display-xml</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._write-xexpr))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._write-xexpr%29%29" class="RktValDef RktValLink" data-pltdoc="x">write-xexpr</a></span></span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">xe</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span>[</td><td valign="top"><span class="RktVar">out</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:insert-newlines?</span><span class="hspace"> </span><span class="RktVar">insert-newlines?</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">→</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">xe</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._xexpr%2Fc%29%29" class="RktValLink" data-pltdoc="x">xexpr/c</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">out</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._output-port%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">output-port?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-output-port%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">current-output-port</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">insert-newlines?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">Writes an X-expression to the given output port, without using an intermediate
XML document.</div></p><p>If <span class="RktVar">insert-newlines?</span> is true, the X-expression is written with newlines
before the closing angle bracket of a tag.</p><h3 x-source-module="(lib "xml/xml.scrbl")" x-source-pkg="racket-doc" x-part-tag=""XML_and_X-expression_Conversions"">4<tt> </tt><a name="(part._.X.M.L_and_.X-expression_.Conversions)"></a>XML and X-expression Conversions</h3><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._permissive-xexprs))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._permissive-xexprs%29%29" class="RktValDef RktValLink" data-pltdoc="x">permissive-xexprs</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._permissive-xexprs%29%29" class="RktValDef RktValLink" data-pltdoc="x">permissive-xexprs</a></span></span><span class="hspace"> </span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">v</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">If this is set to non-false, then <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xml-~3exexpr%29%29" class="RktValLink" data-pltdoc="x">xml->xexpr</a></span> will allow
non-XML objects, such as other structs, in the content of the converted XML
and leave them in place in the resulting “<a href="#%28tech._x._expression%29" class="techoutside" data-pltdoc="x"><span class="techinside">X-expression</span></a>”.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._xml-~3exexpr))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xml-~3exexpr%29%29" class="RktValDef RktValLink" data-pltdoc="x">xml->xexpr</a></span></span><span class="hspace"> </span><span class="RktVar">content</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._xexpr%2Fc%29%29" class="RktValLink" data-pltdoc="x">xexpr/c</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">content</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._content%2Fc%29%29" class="RktValLink" data-pltdoc="x">content/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Converts document content into an <a href="#%28tech._x._expression%29" class="techoutside" data-pltdoc="x"><span class="techinside">X-expression</span></a>, using
<span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._permissive-xexprs%29%29" class="RktValLink" data-pltdoc="x">permissive-xexprs</a></span> to determine if foreign objects are allowed.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._xexpr-~3exml))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xexpr-~3exml%29%29" class="RktValDef RktValLink" data-pltdoc="x">xexpr->xml</a></span></span><span class="hspace"> </span><span class="RktVar">xexpr</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._content%2Fc%29%29" class="RktValLink" data-pltdoc="x">content/c</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">xexpr</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._xexpr%2Fc%29%29" class="RktValLink" data-pltdoc="x">xexpr/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Converts an <a href="#%28tech._x._expression%29" class="techoutside" data-pltdoc="x"><span class="techinside">X-expression</span></a> into XML content.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._xexpr-~3estring))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xexpr-~3estring%29%29" class="RktValDef RktValLink" data-pltdoc="x">xexpr->string</a></span></span><span class="hspace"> </span><span class="RktVar">xexpr</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">xexpr</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._xexpr%2Fc%29%29" class="RktValLink" data-pltdoc="x">xexpr/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Converts an <a href="#%28tech._x._expression%29" class="techoutside" data-pltdoc="x"><span class="techinside">X-expression</span></a> into a string containing XML.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._string-~3exexpr))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._string-~3exexpr%29%29" class="RktValDef RktValLink" data-pltdoc="x">string->xexpr</a></span></span><span class="hspace"> </span><span class="RktVar">str</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._xexpr%2Fc%29%29" class="RktValLink" data-pltdoc="x">xexpr/c</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">str</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Converts XML represented with a string into an <a href="#%28tech._x._expression%29" class="techoutside" data-pltdoc="x"><span class="techinside">X-expression</span></a>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/private/xexpr-core..rkt)._xml-encode-attribute))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><span class="RktSymDef RktSym">xml-encode-attribute</span></span></span><span class="hspace"> </span><span class="RktVar">str</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">str</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Escapes a string as required for XML attributes.</div></p><p>The escaping performed for attribute strings is slightly
different from that performed for body strings, in that
double-quotes must be escaped, as they would otherwise
terminate the enclosing string.</p><p>Note that this conversion is performed automatically in attribute
positions by <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xexpr-~3estring%29%29" class="RktValLink" data-pltdoc="x">xexpr->string</a></span>, and you are therefore unlikely to
need this function unless you are using <span class="RktSym">include-template</span> to
insert strings directly into attribute positions of HTML.</p><p class="SHistory">Added in version 6.6.0.7 of package <span class="stt">base</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">((</span><a name="(def._((lib._xml/main..rkt)._eliminate-whitespace))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._eliminate-whitespace%29%29" class="RktValDef RktValLink" data-pltdoc="x">eliminate-whitespace</a></span></span><span class="hspace"> </span>[<span class="RktVar">tags</span><span class="hspace"> </span><span class="RktVar">choose</span>]<span class="RktPn">)</span><span class="hspace"> </span><span class="RktVar">elem</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._element~3f%29%29" class="RktValLink" data-pltdoc="x">element?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">tags</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528lib._racket%252Flist..rkt%2529._empty%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">empty</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">choose</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=function-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._-%7E3e%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x"><span class="nobreak">-></span></a></span><span class="RktPn"> .</span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span><span class="RktPn">)</span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._%7Ece%7Ebb%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">λ</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">x</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym">x</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">elem</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._element~3f%29%29" class="RktValLink" data-pltdoc="x">element?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Some elements should not contain any text, only other tags, except
they often contain whitespace for formating purposes. Given a list of
tag names as <span class="RktSym">tag</span>s and the identity function as
<span class="RktVar">choose</span>, <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._eliminate-whitespace%29%29" class="RktValLink" data-pltdoc="x">eliminate-whitespace</a></span> produces a function
that filters out PCDATA consisting solely of whitespace from those
elements, and it raises an error if any non-whitespace text appears.
Passing in <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._not%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">not</a></span> as <span class="RktVar">choose</span> filters all elements which
are not named in the <span class="RktVar">tags</span> list. Using <span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym">x</span><span class="RktPn">)</span><span class="stt"> </span><span class="RktVal">#t</span><span class="RktPn">)</span> as
<span class="RktVar">choose</span> filters all elements regardless of the <span class="RktVar">tags</span>
list.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/private/xexpr-core..rkt)._validate-xexpr))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._validate-xexpr%29%29" class="RktValDef RktValLink" data-pltdoc="x">validate-xexpr</a></span></span><span class="hspace"> </span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktVal">#t</span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">v</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">If <span class="RktVar">v</span> is an <a href="#%28tech._x._expression%29" class="techoutside" data-pltdoc="x"><span class="techinside">X-expression</span></a>, the result is
<span class="RktVal">#t</span>. Otherwise, <span class="RktSym">exn:invalid-xexpr</span>s is raised, with
a message of the form “Expected <span class="sroman">‹<span style="font-style: italic">something</span>›</span>, given
<span class="sroman">‹<span style="font-style: italic">something-else</span>›</span>”. The <span class="RktSym">code</span> field of the exception
is the part of <span class="RktVar">v</span> that caused the exception.</div></p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._validate-xexpr%29%29" class="RktValLink" data-pltdoc="x">validate-xexpr</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">doc</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">"over "</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">em</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">"9000"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">"!"</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#t</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._validate-xexpr%29%29" class="RktValLink" data-pltdoc="x">validate-xexpr</a></span><span class="hspace"> </span><span class="RktVal">#\newline</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktErr">Expected a string, symbol, valid numeric entity, comment,</span></p></td></tr><tr><td><p><span class="RktErr">processing instruction, or list, given #\newline</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/private/xexpr-core..rkt)._correct-xexpr~3f))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._correct-xexpr~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">correct-xexpr?</a></span></span><span class="hspace"> </span><span class="RktVar">v</span><span class="hspace"> </span><span class="RktVar">success-k</span><span class="hspace"> </span><span class="RktVar">fail-k</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">v</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">success-k</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=function-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._-%7E3e%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x"><span class="nobreak">-></span></a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">fail-k</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._exn~3ainvalid-xexpr~3f%29%29" class="RktValLink" data-pltdoc="x">exn:invalid-xexpr?</a></span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=function-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._-%7E3e%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x"><span class="nobreak">-></span></a></span><span class="RktPn"> .</span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Like <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._validate-xexpr%29%29" class="RktValLink" data-pltdoc="x">validate-xexpr</a></span>, except that <span class="RktVar">success-k</span> is called
on each valid leaf, and <span class="RktVar">fail-k</span> is called on invalid leaves;
the <span class="RktVar">fail-k</span> may return a value instead of raising an exception
or otherwise escaping. Results from the leaves are combined with
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=if.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fletstx-scheme..rkt%2529._and%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">and</a></span> to arrive at the final result.</div></p><h3 x-source-module="(lib "xml/xml.scrbl")" x-source-pkg="racket-doc" x-part-tag=""Parameters"">5<tt> </tt><a name="(part._.Parameters)"></a>Parameters</h3><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._empty-tag-shorthand))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._empty-tag-shorthand%29%29" class="RktValDef RktValLink" data-pltdoc="x">empty-tag-shorthand</a></span></span><span class="RktPn"></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._one-of%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">one-of/c</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">always</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">never</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._empty-tag-shorthand%29%29" class="RktValDef RktValLink" data-pltdoc="x">empty-tag-shorthand</a></span></span><span class="hspace"> </span><span class="RktVar">shorthand</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">shorthand</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._one-of%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">one-of/c</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">always</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">never</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">A parameter that determines whether output functions should use the
<span class="RktInBG"><span class="hspace"></span><span class="RktIn"><</span><span class="hspace"></span></span><span class="sroman">‹<span style="font-style: italic">tag</span>›</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">/></span><span class="hspace"></span></span> tag notation instead of
<span class="RktInBG"><span class="hspace"></span><span class="RktIn"><</span><span class="hspace"></span></span><span class="sroman">‹<span style="font-style: italic">tag</span>›</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">></span><span class="hspace"></span></span><span class="RktInBG"><span class="hspace"></span><span class="RktIn"></</span><span class="hspace"></span></span><span class="sroman">‹<span style="font-style: italic">tag</span>›</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">></span><span class="hspace"></span></span>
for elements that have no content.</div></p><p>When the parameter is set to <span class="RktVal">'</span><span class="RktVal">always</span>, the abbreviated
notation is always used. When set of <span class="RktVal">'</span><span class="RktVal">never</span>, the abbreviated
notation is never generated. when set to a list of symbols is
provided, tags with names in the list are abbreviated.</p><p>The abbreviated form is the preferred XML notation. However, most
browsers designed for HTML will only properly render XHTML if the
document uses a mixture of the two formats. The
<span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._html-empty-tags%29%29" class="RktValLink" data-pltdoc="x">html-empty-tags</a></span> constant contains the W3 consortium’s
recommended list of XHTML tags that should use the shorthand. This
list is the default value of <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._empty-tag-shorthand%29%29" class="RktValLink" data-pltdoc="x">empty-tag-shorthand</a></span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((lib._xml/main..rkt)._html-empty-tags))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._html-empty-tags%29%29" class="RktValDef RktValLink" data-pltdoc="x">html-empty-tags</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">See <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._empty-tag-shorthand%29%29" class="RktValLink" data-pltdoc="x">empty-tag-shorthand</a></span>.</div></p><p><div class="SIntrapara">Example:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=parameters.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fmore-scheme..rkt%2529._parameterize%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">parameterize</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">[</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._empty-tag-shorthand%29%29" class="RktValLink" data-pltdoc="x">empty-tag-shorthand</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._html-empty-tags%29%29" class="RktValLink" data-pltdoc="x">html-empty-tags</a></span><span class="RktPn">]</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._write-xml%2Fcontent%29%29" class="RktValLink" data-pltdoc="x">write-xml/content</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xexpr-~3exml%29%29" class="RktValLink" data-pltdoc="x">xexpr->xml</a></span><span class="hspace"> </span><span class="RktVal">`</span><span class="RktVal">(</span><span class="RktVal">html</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">body</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">bgcolor</span><span class="hspace"> </span><span class="RktVal">"red"</span><span class="RktVal">)</span><span class="RktVal">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">"Hi!"</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">br</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">"Bye!"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><p><span class="RktOut"><html><body bgcolor="red">Hi!<br />Bye!</body></html></span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._collapse-whitespace))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._collapse-whitespace%29%29" class="RktValDef RktValLink" data-pltdoc="x">collapse-whitespace</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._collapse-whitespace%29%29" class="RktValDef RktValLink" data-pltdoc="x">collapse-whitespace</a></span></span><span class="hspace"> </span><span class="RktVar">collapse?</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">collapse?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">A parameter that controls whether consecutive whitespace is replaced
by a single space. CDATA sections are not affected. The default is
<span class="RktVal">#f</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._read-comments))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._read-comments%29%29" class="RktValDef RktValLink" data-pltdoc="x">read-comments</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._read-comments%29%29" class="RktValDef RktValLink" data-pltdoc="x">read-comments</a></span></span><span class="hspace"> </span><span class="RktVar">preserve?</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">preserve?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">A parameter that determines whether comments are preserved or
discarded when reading XML. The default is <span class="RktVal">#f</span>, which
discards comments.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._xml-count-bytes))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xml-count-bytes%29%29" class="RktValDef RktValLink" data-pltdoc="x">xml-count-bytes</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xml-count-bytes%29%29" class="RktValDef RktValLink" data-pltdoc="x">xml-count-bytes</a></span></span><span class="hspace"> </span><span class="RktVar">count-bytes?</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">count-bytes?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">A parameter that determines whether <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._read-xml%29%29" class="RktValLink" data-pltdoc="x">read-xml</a></span> counts
characters or bytes in its location tracking. The default is
<span class="RktVal">#f</span>, which counts characters.</div></p><p>You may want to use <span class="RktVal">#t</span> if, for example, you will be
communicating these offsets to a C program that can more easily deal
with byte offsets into the character stream, as opposed to UTF-8
character offsets.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/main..rkt)._xexpr-drop-empty-attributes))"></a><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xexpr-drop-empty-attributes%29%29" class="RktValDef RktValLink" data-pltdoc="x">xexpr-drop-empty-attributes</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: xml | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xexpr-drop-empty-attributes%29%29" class="RktValDef RktValLink" data-pltdoc="x">xexpr-drop-empty-attributes</a></span></span><span class="hspace"> </span><span class="RktVar">drop?</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">drop?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Controls whether <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fmain..rkt%29._xml-~3exexpr%29%29" class="RktValLink" data-pltdoc="x">xml->xexpr</a></span> drops or preserves attribute
sections for an element that has no attributes. The default is
<span class="RktVal">#f</span>, which means that all generated <a href="#%28tech._x._expression%29" class="techoutside" data-pltdoc="x"><span class="techinside">X-expression</span></a>
elements have an attributes list (even if it’s empty).</div></p><h3 x-source-module="(lib "xml/xml.scrbl")" x-source-pkg="racket-doc" x-part-tag=""PList_Library"">6<tt> </tt><a name="(part._.P.List_.Library)"></a><a name="(mod-path._xml/plist)"></a>PList Library</h3><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._xml%2Fplist%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">xml/plist</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller"> package:</span> <span class="stt">base</span></span></td></tr></table></p><p>The <a href="#%28mod-path._xml%2Fplist%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">xml/plist</span></a> library provides the ability to read and
write XML documents that conform to the <span style="font-style: italic">plist</span> DTD, which is
used to store dictionaries of string–value associations. This format
is used by Mac OS X (both the operating system and its applications)
to store all kinds of data.</p><p>A <a name="(tech._plist._value)"></a><span style="font-style: italic">plist value</span> is a value that could be created by an
expression matching the following <span class="RktVar">pl-expr</span> grammar, where a
value created by a <span class="RktVar">dict-expr</span> is a <a name="(tech._plist._dictionary)"></a><span style="font-style: italic">plist dictionary</span>:</p><p><table cellspacing="0" cellpadding="0"><tr><td align="right" valign="baseline"><span class="hspace"> </span><span class="RktVar">pl-expr</span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">=</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktVar">string</span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">true</span><span class="RktPn">)</span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">false</span><span class="RktPn">)</span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">integer</span><span class="hspace"> </span><span class="RktVar">integer</span><span class="RktPn">)</span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">real</span><span class="hspace"> </span><span class="RktVar">real</span><span class="RktPn">)</span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">data</span><span class="hspace"> </span><span class="RktVar">string</span><span class="RktPn">)</span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">date</span><span class="hspace"> </span><span class="RktVar">string</span><span class="RktPn">)</span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktVar">dict-expr</span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">array</span><span class="hspace"> </span><span class="RktVar">pl-expr</span><span class="hspace"> </span><span class="RktSym">...</span><span class="RktPn">)</span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td></tr><tr><td align="right" valign="baseline"><span class="hspace"> </span><span class="RktVar">dict-expr</span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">=</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">dict</span><span class="hspace"> </span><span class="RktVar">assoc-pair</span><span class="hspace"> </span><span class="RktSym">...</span><span class="RktPn">)</span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td></tr><tr><td align="right" valign="baseline"><span class="hspace"> </span><span class="RktVar">assoc-pair</span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">=</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._list%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">assoc-pair</span><span class="hspace"> </span><span class="RktVar">string</span><span class="hspace"> </span><span class="RktVar">pl-expr</span><span class="RktPn">)</span></td></tr></table></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/plist..rkt)._plist-value~3f))"></a><span title="Provided from: xml/plist | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fplist..rkt%29._plist-value~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">plist-value?</a></span></span><span class="hspace"> </span><span class="RktVar">any/c</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">any/c</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym">v</span></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktVal">#t</span> if <span class="RktSym">v</span> is a <a href="#%28tech._plist._value%29" class="techoutside" data-pltdoc="x"><span class="techinside">plist value</span></a>,
<span class="RktVal">#f</span> otherwise.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/plist..rkt)._plist-dict~3f))"></a><span title="Provided from: xml/plist | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fplist..rkt%29._plist-dict~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">plist-dict?</a></span></span><span class="hspace"> </span><span class="RktVar">any/c</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">any/c</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym">v</span></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktVal">#t</span> if <span class="RktSym">v</span> is a <a href="#%28tech._plist._dictionary%29" class="techoutside" data-pltdoc="x"><span class="techinside">plist dictionary</span></a>,
<span class="RktVal">#f</span> otherwise.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/plist..rkt)._read-plist))"></a><span title="Provided from: xml/plist | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fplist..rkt%29._read-plist%29%29" class="RktValDef RktValLink" data-pltdoc="x">read-plist</a></span></span><span class="hspace"> </span><span class="RktVar">in</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fplist..rkt%29._plist-value~3f%29%29" class="RktValLink" data-pltdoc="x">plist-value?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">in</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Reads a plist from a port, and produces a <a href="#%28tech._plist._value%29" class="techoutside" data-pltdoc="x"><span class="techinside">plist value</span></a>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/plist..rkt)._write-plist))"></a><span title="Provided from: xml/plist | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fplist..rkt%29._write-plist%29%29" class="RktValDef RktValLink" data-pltdoc="x">write-plist</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span><span class="RktVar">out</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fplist..rkt%29._plist-value~3f%29%29" class="RktValLink" data-pltdoc="x">plist-value?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">out</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._output-port%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">output-port?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Write a <a href="#%28tech._plist._value%29" class="techoutside" data-pltdoc="x"><span class="techinside">plist value</span></a> to the given port.</div></p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._define%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">my-dict</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">`</span><span class="RktVal">(</span><span class="RktVal">dict</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">assoc-pair</span><span class="hspace"> </span><span class="RktVal">"first-key"</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">"just a string with some</span><span class="hspace"> </span><span class="RktVal">whitespace"</span><span class="RktVal">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">assoc-pair</span><span class="hspace"> </span><span class="RktVal">"second-key"</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">false</span><span class="RktVal">)</span><span class="RktVal">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">assoc-pair</span><span class="hspace"> </span><span class="RktVal">"third-key"</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">dict</span><span class="RktVal">)</span><span class="RktVal">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">assoc-pair</span><span class="hspace"> </span><span class="RktVal">"fourth-key"</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">dict</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">assoc-pair</span><span class="hspace"> </span><span class="RktVal">"inner-key"</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">real</span><span class="hspace"> </span><span class="RktVal">3.432</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktVal">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">assoc-pair</span><span class="hspace"> </span><span class="RktVal">"fifth-key"</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">array</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">integer</span><span class="hspace"> </span><span class="RktVal">14</span><span class="RktVal">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">"another string"</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">true</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktVal">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">assoc-pair</span><span class="hspace"> </span><span class="RktVal">"sixth-key"</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">array</span><span class="RktVal">)</span><span class="RktVal">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">assoc-pair</span><span class="hspace"> </span><span class="RktVal">"seventh-key"</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">data</span><span class="hspace"> </span><span class="RktVal">"some data"</span><span class="RktVal">)</span><span class="RktVal">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">assoc-pair</span><span class="hspace"> </span><span class="RktVal">"eighth-key"</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">date</span><span class="hspace"> </span><span class="RktVal">"2013-05-10T20:29:55Z"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._define-values%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">define-values</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">in</span><span class="hspace"> </span><span class="RktSym">out</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=pipeports.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._make-pipe%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">make-pipe</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fplist..rkt%29._write-plist%29%29" class="RktValLink" data-pltdoc="x">write-plist</a></span><span class="hspace"> </span><span class="RktSym">my-dict</span><span class="hspace"> </span><span class="RktSym">out</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._close-output-port%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">close-output-port</a></span><span class="hspace"> </span><span class="RktSym">out</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._define%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">new-dict</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fplist..rkt%29._read-plist%29%29" class="RktValLink" data-pltdoc="x">read-plist</a></span><span class="hspace"> </span><span class="RktSym">in</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._equal%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">equal?</a></span><span class="hspace"> </span><span class="RktSym">my-dict</span><span class="hspace"> </span><span class="RktSym">new-dict</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#t</span></p></td></tr></table></blockquote></div></p><p>The XML generated by <span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fplist..rkt%29._write-plist%29%29" class="RktValLink" data-pltdoc="x">write-plist</a></span> in the above example looks
like the following, if re-formatted by hand to have newlines and
indentation:</p><p><table cellspacing="0" cellpadding="0"><tr><td><p><span class="hspace"> </span><span class="stt"><?xml version="1.0" encoding="UTF-8"?></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"><!DOCTYPE plist SYSTEM</span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt">"file://localhost/System/Library/DTDs/PropertyList.dtd"></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"><plist version="0.9"></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><dict></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><key>first-key</key></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><string>just a string with some</span><span class="hspace"> </span><span class="stt">whitespace</string></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><key>second-key</key></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><false /></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><key>third-key</key></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><dict /></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><key>fourth-key</key></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><dict></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><key>inner-key</key></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><real>3.432</real></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"></dict></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><key>fifth-key</key></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><array></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><integer>14</integer></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><string>another string</string></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><true /></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"></array></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><key>sixth-key</key></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><array /></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><key>seventh-key</key></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><data>some data</data></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><key>eighth-key</key></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"><date>2013-05-10T20:29:55Z</date></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></span><span class="hspace"> </span><span class="stt"></dict></span></p></td></tr><tr><td><p><span class="hspace"> </span><span class="stt"></plist></span></p></td></tr></table></p><h3 x-source-module="(lib "xml/xml.scrbl")" x-source-pkg="racket-doc" x-part-tag=""Simple_X-expression_Path_Queries"">7<tt> </tt><a name="(part._.Simple_.X-expression_.Path_.Queries)"></a><a name="(mod-path._xml/path)"></a>Simple X-expression Path Queries</h3><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._xml%2Fpath%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">xml/path</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller"> package:</span> <span class="stt">base</span></span></td></tr></table></p><p>This library provides a simple path query library for X-expressions.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((lib._xml/path..rkt)._se-path~3f))"></a><span title="Provided from: xml/path | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fpath..rkt%29._se-path~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">se-path?</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=contract-utilities.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fguts..rkt%2529._contract%7E3f%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">contract?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">A sequence of symbols followed by an optional keyword.</div></p><p>The prefix of symbols specifies a path of tags from the leaves with an implicit any sequence to the root. The final, optional keyword specifies an attribute.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/path..rkt)._se-path*/list))"></a><span title="Provided from: xml/path | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fpath..rkt%29._se-path%2A%2Flist%29%29" class="RktValDef RktValLink" data-pltdoc="x">se-path*/list</a></span></span><span class="hspace"> </span><span class="RktVar">p</span><span class="hspace"> </span><span class="RktVar">xe</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">p</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fpath..rkt%29._se-path~3f%29%29" class="RktValLink" data-pltdoc="x">se-path?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">xe</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._xexpr~3f%29%29" class="RktValLink" data-pltdoc="x">xexpr?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns a list of all values specified by the path <span class="RktVar">p</span> in the X-expression <span class="RktVar">xe</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._xml/path..rkt)._se-path*))"></a><span title="Provided from: xml/path | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fpath..rkt%29._se-path%2A%29%29" class="RktValDef RktValLink" data-pltdoc="x">se-path*</a></span></span><span class="hspace"> </span><span class="RktVar">p</span><span class="hspace"> </span><span class="RktVar">xe</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">p</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fpath..rkt%29._se-path~3f%29%29" class="RktValLink" data-pltdoc="x">se-path?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">xe</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fprivate%2Fxexpr-core..rkt%29._xexpr~3f%29%29" class="RktValLink" data-pltdoc="x">xexpr?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns the first answer from <span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fpath..rkt%29._se-path%2A%2Flist%29%29" class="RktValLink" data-pltdoc="x">se-path*/list</a></span><span class="stt"> </span><span class="RktVar">p</span><span class="stt"> </span><span class="RktVar">xe</span><span class="RktPn">)</span>.</div></p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._define%2529%2529&version=6.7" class="RktStxLink Sq" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">some-page</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">html</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">body</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">p</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">[</span><span class="RktVal">class</span><span class="hspace"> </span><span class="RktVal">"awesome"</span><span class="RktVal">]</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">"Hey"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">p</span><span class="hspace"> </span><span class="RktVal">"Bar"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fpath..rkt%29._se-path%2A%2Flist%29%29" class="RktValLink" data-pltdoc="x">se-path*/list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">p</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktSym">some-page</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'("Hey" "Bar")</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fpath..rkt%29._se-path%2A%29%29" class="RktValLink" data-pltdoc="x">se-path*</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">p</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktSym">some-page</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">"Hey"</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fpath..rkt%29._se-path%2A%29%29" class="RktValLink" data-pltdoc="x">se-path*</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">p</span><span class="hspace"> </span><span class="RktVal">#:class</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktSym">some-page</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">"awesome"</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fpath..rkt%29._se-path%2A%2Flist%29%29" class="RktValLink" data-pltdoc="x">se-path*/list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">body</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktSym">some-page</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'((p ((class "awesome")) "Hey") (p "Bar"))</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._xml%2Fpath..rkt%29._se-path%2A%2Flist%29%29" class="RktValLink" data-pltdoc="x">se-path*/list</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktSym">some-page</span><span class="RktPn">)</span></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td><p><span class="RktRes">'((html (body (p ((class "awesome")) "Hey") (p "Bar")))</span></p></td></tr><tr><td><p><span class="RktRes"></span><span class="hspace"> </span><span class="RktRes">(body (p ((class "awesome")) "Hey") (p "Bar"))</span></p></td></tr><tr><td><p><span class="RktRes"></span><span class="hspace"> </span><span class="RktRes">(p ((class "awesome")) "Hey")</span></p></td></tr><tr><td><p><span class="RktRes"></span><span class="hspace"> </span><span class="RktRes">"Hey"</span></p></td></tr><tr><td><p><span class="RktRes"></span><span class="hspace"> </span><span class="RktRes">(p "Bar")</span></p></td></tr><tr><td><p><span class="RktRes"></span><span class="hspace"> </span><span class="RktRes">"Bar")</span></p></td></tr></table></td></tr></table></blockquote></div></p><div class="navsetbottom"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, "6.7", "../");" onfocus="this.style.color="black"; this.style.textAlign="left"; if (this.value == "...search manuals...") this.value="";" onblur="if (this.value.match(/^ *$/)) { this.style.color="#888"; this.style.textAlign="center"; this.value="...search manuals..."; }"/></form> <a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot("6.7");">top</a></span><span class="navright"> <span class="nonavigation">← prev</span> <a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot("6.7");">up</a> <span class="nonavigation">next →</span></span> </div></div></div><div id="contextindicator"> </div></body></html>
|