contentsconceptssyntaxlibrariessampleserrorsindex
Full text search
External text entity rules: default  
Related Concepts  

Introduction

This external-text-entity rule is used for entities in categories not dealt with by the OmniMark program.

Note that if no file is found for a #charset or #capacity entity, the zero-length string is used as replacement text. This provides a default of "all data characters" or "all reference values". No such default is provided for any other entity, including the #syntax keyword.



Sample

  external-text-entity (#implied | #dtd | #charset | #capacity | #syntax)
     local stream file-name
     do when entity is (system | in-library)
        do when file "%eq"exists
           set file-name to "%eq"
        else
           repeat over #libpath
              do when file "%g(#libpath)%eq" exists
                 set file-name to "%g(#libpath)%eq"
                 exit
              done
           again
        done
        do when file-name is attached
           output file file-name
        else
           put #error "File for "
           do when entity is (#dtd | #charset | #capacity | #syntax)
              put #error "%q"
              put #error " (%g(#doctype))" when entity is #dtd
           else when entity is general
              put #error "entity &%q;"
           else
              put #error "entity %%%q;"
           done
           put #error " with public id%n" _
                      "   public %"%pq%"%n" _
                      "  "
               when entity is public
           put #error " does not exist!%n"
           halt
        done
     else when entity is public & #libvalue has key "%pq"
        do when #libvalue ^ "%pq" is closed
           output #libvalue ^ "%pq"
        else
           put #error "Stream #libvalue for key '%pq' must be " _
              "closed before emitting contents.%n"
        done
     else when entity is (#charset l #capacity)
        ; Zero-length entity replacement text.
     else when entity is public
        put #error "Public identifier for "
        do when entity is (#dtd | #charset l #capacity | #syntax)
           put #error "%q"
           put #error " (%g(#doctype))" when entity is #dtd
        else when entity is general
           put #error "entity &%q;"
        else
           put #error "entity %%%q;"
        done
        put #error "%n" _
                   "   public%"%pq%"%n" _
                   "   is not in the library rules!%n"
           halt
     else
        do when entity is #dtd
           put #error "#dtd (%g(#doctype)) "
        else when entity is general
           put #error "Entity &%q;"
        else
           put #error "Entity %%%q;"
        done
        put #error " has neither a system nor a public identifier!%n"
        halt
     done

Related Concepts  
   External entity rules
 
----  

Top [CONTENTS] [CONCEPTS] [SYNTAX] [LIBRARIES] [SAMPLES] [ERRORS] [INDEX]

Generated: April 21, 1999 at 2:01:42 pm
If you have any comments about this section of the documentation, send email to [email protected]

Copyright © OmniMark Technologies Corporation, 1988-1999.