contentsconceptssyntaxlibrariessampleserrorsindex
Full text search
Public identifiers: general pattern for parsing  
Related Concepts  

Introduction

The pattern shown here can be used to parse any formal public identifier.

This pattern can also be used in an external-text-entity rule, an external-data-entity rule, or when processing an entity name valued element attribute.

If this pattern were used to parse the public identifier "-//All Mine//TEXT Chapter3//EN", it would result in these pattern variable assignments:

This pattern is rather lengthy because of its generality and because of the long pattern variable names used. Most applications will not need all parts of the public identifier. Shorter pattern variable names can be used -- the terms in the pattern are those used in the SGML standard to describe the parts of a formal public identifier. On the other hand, some OmniMark programmers will want to extend the pattern to extract details of an ISO owner identifier, public text description, or designating sequence.



Sample

  match ("+//" ([any except "/"]+ | "/" lookahead not "/")*
               => registered-owner-identifier |
         "-//" ([any except "/"]+ | "/" lookahead not "/")*
               => unregistered-owner-identifier |
         ([any except "/"]+ | "/" lookahead not "/")*
               => iso-owner-identifier)
        "//"
        [any except "%_"]+ => public-text-class
        " "
        ("-//" => unavailable-text-indicator)?
        ([any except "/"]+ | "/" lookahead not "/")*
              => public-text-description
        "//"
        (letter {2} => public-text-language value-end |
         ([any except "/"]+ | "/" lookahead not "/")*
              => public-text-designating-sequence
            ("//" any* => public-text-display-version)?)

Related Concepts  
   Public identifiers: parsing
 
----  

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

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

Copyright © OmniMark Technologies Corporation, 1988-1999.