Diff for /doc/homework/xml.html between versions 1.1 and 1.5

version 1.1, 2001/05/21 03:35:46 version 1.5, 2002/06/06 07:14:18
Line 20 Line 20
     <h3>Global Variables</h3>      <h3>Global Variables</h3>
     <ul>      <ul>
       <li>        <li>
  <i>Apache::lonxml::debug</i> -   <i>$Apache::lonxml::debug</i> - debugging control
       </li>        </li>
       <li>        <li>
  <i>Apache::lonxml::pwd</i> -   <i>@Apache::lonxml::pwd</i> - path to the directory containing
    the file currently being processed
       </li>        </li>
       <li>        <li>
  <i>Apache::lonxml::outputstack</i> -   <i>@Apache::lonxml::outputstack</i> <br />
    <i>$Apache::lonxml::redirection</i> - these two are used for
    capturing a subset of the output for later processing, don't
    touch them directly use &startredirection and &endredirection
       </li>        </li>
       <li>        <li>
  <i>Apache::lonxml::redirection</i> -   <i>$Apache::lonxml::import</i> - controls whether the
    &lt;import&gt; tag actually does anything
       </li>        </li>
       <li>        <li>
  <i>Apache::lonxml::import</i> -   <i>@Apache::lonxml::extlinks</i> - a list of URLs that the
    user is allowed to look at because of the current resource
    (images, and links)
       </li>        </li>
       <li>        <li>
  <i>Apache::lonxml::extlinks</i> -   <i>$Apache::lonxml::metamode</i> - some output is turned off,
    the meta target wants a specific subset, use &lt;output&gt; to
    guarentee that the catianed data will be in the parsing output
       </li>        </li>
       <li>        <li>
  <i>Apache::lonxml::metamode</i> -   <i>$Apache::lonxml::evaluate</i> - controls whether
    run::evaluate actually derefences variable references
       </li>        </li>
       <li>        <li>
  <i>Apache::lonxml::evaluate</i> -   <i>%Apache::lonxml::insertlist</i> - data structure for edit
    mode, determines what tags can go into what other tags
       </li>        </li>
       <li>        <li>
  <i>Apache::lonxml::insertlist</i> -   <i>@Apache::lonxml::namespace</i> - stores the list of tag
    namespaces used in the insertlist.tab file that are currently
    active, used only in edit mode.
       </li>        </li>
       <li>        <li>
  <i>Apache::lonxml::namespace</i> -   <i>$Apache::lonxml::registered</i> - set to 1 once the remote
    has been updated to know what resource we are looking at.
       </li>        </li>
       <li>        <li>
  <i>Apache::lonxml::</i> -   <i>$Apache::lonxml::request</i> - current Apache request
    object, or undef
       </li>        </li>
         <li>
    <i>$Apache::lonxml::curdepth</i> - current depth of the
    overall parse depth. Will be a string like: 2_3_1 (first tag
    in the third second level tag in the second toplevel tag). It
    gets set by callsub, and can be used in Perl tag
    implementations. It relies upon the internal globals:
    <i>@Apache::lonxml::depthcounter</i>,
    <i>$Apache::lonxml::depth</i>,
    <i>$Apache::lonxml::olddepth</i>
         </li>
         <li>
    <i>$Apache::lonxml::prevent_entity_encode</i> - By default the
    xmlparser will try to rencode any 8-bit characters into HTML
    Entity Codes, If this is set to a true value it will be
    prevented.
     </ul>      </ul>
   
       <p>
         In common usage, <i>$Apache::lonxml::prevent_entity_encode</i>,
         <i>$Apache::lonxml::evaluate</i>,
         <i>$Apache::lonxml::metamode</i>,
         <i>$Apache::lonxml::import</i>, should never be set to a value
         directly, but rather incremented when you want the effect on,
         and decremented when you want the effect off.
       </p>
       
     <h3>Notable Perl subroutines</h3>      <h3>Notable Perl subroutines</h3>
     <p>      <p>
       If not specified these functions are in Apache::lonxml        If not specified these functions are in Apache::lonxml
     </p>      </p>
     <ul>      <ul>
       <li>        <li>
  <i>xmlparse</i> - see the XMLPARSE figure   <i>xmlparse</i> - see the XMLPARSE figure - also not callable
    from inside a tag, if one needs to restart parsing, either
    create add a new LCParser to the parser stack parser using the
    newparser function, or call inner_xmlparser, see the xmlparse
    function in scripttag.pm
       </li>        </li>
       <li>        <li>
  <i>recurse</i> - acts just like <i>xmlparse</i>, except it   <i>recurse</i> - acts just like <i>xmlparse</i>, except it
Line 85 Line 128
  %Apache::lonxml::insertlist structure of what tags can have   %Apache::lonxml::insertlist structure of what tags can have
  what other tags inside.   what other tags inside.
       </li>        </li>
         <li>
    <i>whichuser</i> - returns a list of $symb, $courseid,
    $domain, $name that is correct for calls to lonnet functions
    for this setup. Uses form.grade_ parameters, if the user is
    allowed to mgr in the course
         </li>
         <li>
    <i>setup_globals</i> - initializes all lonxml globals when
    xmlparse is called. If you intend to create a new target you
    will likely need to tweak how the globals are setup upon start
    up.
         </li>
         <li>
    <i>init_safespace</i> - creates Holes to external functions,
    creates some global variables, and set the permitted operators
    of the global Safespace intepreter.
         </li>
     </ul>      </ul>
     <h3>Functions Tag Handlers can use</h3>      <h3>Functions Tag Handlers can use</h3>
     <p>      <p>
Line 117 Line 177
  Apache::scripttag::start_script for an example of usage.)   Apache::scripttag::start_script for an example of usage.)
       </li>        </li>
       <li>        <li>
  <i>get_param</i> - 4 arguments, firsth is a scaler sting of   <i>get_param</i> - 4 arguments, first is a scaler sting of
    the argument needed, second is a reference to the parser
    arguments stack, third is a reference to the Safe space, and
    fourth is an optional "context" value. This subroutine allows
    a tag to get a tag argument, after being interpolated inside
    the Safe space. This should be used if the tag might use a
    safe space variable reference for the tag argument. (See
    Apache::scripttag::start_script for an example.)
   
    This version only handles scalar variables.
         </li>
         <li>
    <i>get_param_var</i> - 4 arguments, first is a scaler sting of
  the argument needed, second is a reference to the parser   the argument needed, second is a reference to the parser
  arguments stack, third is a reference to the Safe space, and   arguments stack, third is a reference to the Safe space, and
  fourth is an optional "context" value. This subroutine allows   fourth is an optional "context" value. This subroutine allows
  a tag to get a tag argument, after being interpolated inside   a tag to get a tag argument, after being interpolated inside
  the Safe space. This should be used if the tag might use a   the Safe space. This should be used if the tag might use a
  safe space variable reference for the tag argument. (See   safe space variable reference for the tag argument. (See
  Apaceh::scripttag::start_script for an example.)   Apache::scripttag::start_script for an example.)
   
    This version can handle list or hash variables properly.
         </li>
         <li>
    <i>description</i> - 1 argument, the token object. This will
    return the textual decription of the current tag from the
    insertlist.tab file.
         </li>
         <li>
    <i>whichuser</i> - 0 arguments. This will take a look at the
    current environment setting and return the current $symb,
    $courseid, $udom, $uname. You should always use this function
    if you want to determine who the current user is. (Since a
    instructor might be trying to view a students version of a
    resource.)
         </li>
         <li>
    <i>inner_xmlparse</i> - 6 arguments, the target, an array
    pointer to the current stack of tags, and array pointer to the
    current stack of tag arguments, an array pointer to the
    current stack of LCParser's, a pointer to the current Safe
    space, a pointer to the hash of current style definitions
       </li>        </li>
       <li>        <li>
  <i>newparser</i> - 3 args, first is a reference to the parser   <i>newparser</i> - 3 args, first is a reference to the parser
Line 145  sub BEGIN { Line 239  sub BEGIN {
 }  }
 </pre>  </pre>
  Would tell xmlparse that in Apache::scripttag it can find   Would tell xmlparse that in Apache::scripttag it can find
  handlers for &lt;script&gt; and &lt;display&gt;   handlers for &lt;script&gt; and &lt;display&gt;, if one
    regsiters a tag that was already registered the previous one
    is remembered and will be restored on a deregister.
         </li>
         <li>
    <i>deregister</i> - used to remove a previously registered tag
    implementation. It will restore the previous registration if
    there was one.
       </li>        </li>
       <li>        <li>
  <i>startredirection</i> - used when a tag wants to save a   <i>startredirection</i> - used when a tag wants to save a
Line 164  sub BEGIN { Line 265  sub BEGIN {
  a reference to the Safe space, 3 a string to be evaluated   a reference to the Safe space, 3 a string to be evaluated
  before the first arg. This subroutine will do variable   before the first arg. This subroutine will do variable
  interpolation and simple function interpolations on the first   interpolation and simple function interpolations on the first
  argument. (See Apache::lonxml::xmlparse for an example.)   argument. (See Apache::lonxml::inner_xmlparse for an example.)
       </li>        </li>
       <li>        <li>
  <i>Apache::run::run</i> - 2 args, first a string, second a   <i>Apache::run::run</i> - 2 args, first a string, second a
Line 178  sub BEGIN { Line 279  sub BEGIN {
     <h3>Style File specific tags</h3>      <h3>Style File specific tags</h3>
     <ul>      <ul>
       <li>        <li>
  <b>&lt;definetag&gt;</b> -    <b>&lt;definetag&gt;</b> - 2 arguments, <i>name</i> name of
    new tag being defined, if proceeded with a / defining an end
    tag, required; <i>parms</i> parameters of the new tag, the
    value of these parameters can be accesed by $parametername.
       </li>        </li>
       <li>        <li>
  <b>&lt;render&gt;</b> -    <b>&lt;render&gt;</b> - define what the new tag does for a non meta target
       </li>        </li>
       <li>        <li>
  <b>&lt;meta&gt;</b> -    <b>&lt;meta&gt;</b> - define what the new tag does for a meta target
       </li>        </li>
       <li>        <li>
  <b>&lt;tex&gt; / &lt;web&gt; / &lt;latexsource&gt;</b> -    <b>&lt;tex&gt; / &lt;web&gt; / &lt;latexsource&gt;</b> -
    define what a new tag does for a specific no meta target, all
    data inside a &lt;render&gt; is render to all targets except
    when surrounded by a specific target tags.
       </li>        </li>
     </ul>      </ul>
   
     <hr>      <hr>
     <address><a href="mailto:albertel@marvin.lite.msu.edu">Guy Albertelli</a></address>      <address><a href="mailto:albertel@marvin.lite.msu.edu">Guy Albertelli</a></address>
 <!-- Created: Sun May 20 15:47:08 EDT 2001 -->  <!-- Created: Sun May 20 15:47:08 EDT 2001 -->
 <!-- hhmts start -->  <!-- hhmts start -->
 Last modified: Sun May 20 23:34:57 EDT 2001  Last modified: Thu Jun  6 01:16:44 EDT 2002
 <!-- hhmts end -->  <!-- hhmts end -->
   </body>    </body>
 </html>  </html>

Removed from v.1.1  
changed lines
  Added in v.1.5


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>