1 // Copyright (c) 1994 James Clark 2 // See the file COPYING for copying permission. 3 #pragma ident "%Z%%M% %I% %E% SMI" 4 5 #ifndef Notation_INCLUDED 6 #define Notation_INCLUDED 1 7 #ifdef __GNUG__ 8 #pragma interface 9 #endif 10 11 #include "Owner.h" 12 #include "StringC.h" 13 #include "NamedResource.h" 14 #include "types.h" 15 #include "Ptr.h" 16 #include "ExternalId.h" 17 #include "Boolean.h" 18 #include "Attributed.h" 19 #include "StringResource.h" 20 #include "EntityDecl.h" 21 22 #ifdef SP_NAMESPACE 23 namespace SP_NAMESPACE { 24 #endif 25 26 class ParserState; 27 28 class SP_API Notation : public EntityDecl, public Attributed { 29 public: 30 Notation(const StringC &, 31 const ConstPtr<StringResource<Char> > &dtdName, 32 Boolean dtdIsBase); 33 void setExternalId(const ExternalId &, const Location &); 34 const ExternalId &externalId() const; 35 Boolean defined() const; 36 void generateSystemId(ParserState &); 37 const StringC *systemIdPointer() const; 38 const StringC *publicIdPointer() const; 39 private: 40 Notation(const Notation &); // undefined 41 void operator=(const Notation &); // undefined 42 PackedBoolean defined_; 43 ExternalId externalId_; 44 }; 45 46 inline externalId()47const ExternalId &Notation::externalId() const 48 { 49 return externalId_; 50 } 51 52 inline defined()53Boolean Notation::defined() const 54 { 55 return defined_; 56 } 57 58 #ifdef SP_NAMESPACE 59 } 60 #endif 61 62 #endif /* not Notation_INCLUDED */ 63