Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

xmlcpg.h

Go to the documentation of this file.
00001 /*                               -*- Mode: C -*- 
00002  * xmlcpg.h
00003  * Copyright © 2002-03 Laboratoire de Biologie Informatique et Théorique
00004  *                  Université de Montréal.
00005  * Author           : Martin Larose
00006  * Created On       : Mon Mar 25 16:48:15 2002
00007  * $Revision: 1.35 $
00008  * $Id: xmlcpg.h,v 1.35 2003/11/07 15:59:17 larosem Exp $
00009  *
00010  * This file is part of xmlcpg.
00011  *
00012  * xmlcpg is free software; you can redistribute it and/or modify it under
00013  * the terms of the GNU Lesser General Public License as published by the Free
00014  * Software Foundation; either version 2 of the License, or (at your option)
00015  * any later version.
00016  *
00017  * xmlcpg is distributed in the hope that it will be useful, but WITHOUT ANY
00018  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00019  * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
00020  * more details.
00021  *
00022  * You should have received a copy of the GNU Lesser General Public License
00023  * along with xmlcpg; if not, write to the Free Software Foundation, Inc.,
00024  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
00025  */
00026 
00027 
00028 #ifndef _xmlcpg_h_
00029 #define _xmlcpg_h_
00030 
00031 
00032 #include <stdio.h>
00033 
00034 #include "printstream.h"
00035 
00036 
00037 
00042 typedef enum
00043 {
00044   xmlcpgpair, xmlcpgdocument, xmlcpgprolog, xmlcpgelement,
00045   xmlcpglist, xmlcpgchardata, xmlcpgcomment, xmlcpgpi, xmlcpgcdata,
00046   xmlcpgxmldecl, xmlcpgdoctypedecl, xmlcpgpereference, xmlcpgattribute,
00047   xmlcpgcontent, xmlcpgelementdecl, xmlcpgempty, xmlcpgany,
00048   xmlcpgchildrenopt, xmlcpgchildrenstar, xmlcpgchildrenplus, xmlcpgchildrenalt,
00049   xmlcpgchildrenseq, xmlcpgpcdata, xmlcpgstring, xmlcpgattlistdecl,
00050   xmlcpgattdef, xmlcpgid, xmlcpgidref, xmlcpgidrefs, xmlcpgentity,
00051   xmlcpgentities, xmlcpgnmtoken, xmlcpgnmtokens, xmlcpgnotationtype,
00052   xmlcpgenumeration, xmlcpgrequired, xmlcpgimplied, xmlcpgfixed,
00053   xmlcpgattvalue, xmlcpgcharref, xmlcpgentityref, xmlcpggedecl, xmlcpgpedecl,
00054   xmlcpgentityvalue, xmlcpgexternalid, xmlcpgsystemexternalid,
00055   xmlcpgpublicexternalid, xmlcpgndatadecl, xmlcpgnotationdecl, xmlcpgpublicid,
00056   xmlcpglistiterator, xmlcpgmap, xmlcpgmapiterator, xmlcpgmapentry,
00057   xmlcpgfileinputstream, xmlcpggzipinputstream, xmlcpgfileoutputstream,
00058   xmlcpggzipoutputstream, xmlcpgprintstream
00059 } xmlcpgObjectTag;
00060 
00061 
00062 
00066 typedef enum
00067 {
00068   xmlcpgvalidity = 1, xmlcpgwellformed = 2
00069 } xmlcpgOptionTag;
00070 
00071 
00072 
00076 extern int xmlcpgUserOptions;
00077 
00078 
00079 
00083 typedef struct
00084 {
00085   xmlcpgObjectTag tag;
00086 } xmlcpgObject;
00087 
00088 
00092 typedef struct
00093 {
00094   xmlcpgObjectTag tag;
00095   xmlcpgObject *head;
00096   xmlcpgObject *tail;
00097 } xmlcpgPair;
00098 
00106 extern xmlcpgPair* xmlcpgnewPair (xmlcpgObject *hea, xmlcpgObject *tai);
00107 
00113 extern xmlcpgObject* xmlcpggetPairHead (xmlcpgPair *obj);
00114 
00120 extern void xmlcpgsetPairHead (xmlcpgPair *op, xmlcpgObject *obj);
00121 
00127 extern xmlcpgObject* xmlcpggetPairTail (xmlcpgPair *obj);
00128 
00134 extern void xmlcpgsetPairTail (xmlcpgPair *op, xmlcpgObject *obj);
00135 
00136 
00137 typedef struct
00138 {
00139   xmlcpgObjectTag tag;
00140   xmlcpgPair *begin;
00141 } xmlcpgList;
00142 
00143 
00144 typedef struct
00145 {
00146   xmlcpgObjectTag tag;
00147 } xmlcpgIterator;
00148 
00149 
00150 typedef struct
00151 {
00152   xmlcpgObjectTag tag;
00153   xmlcpgObject *pos;
00154   xmlcpgObject *last;
00155 } xmlcpgListIterator;
00156 
00162 extern int xmlcpghasNext (xmlcpgIterator *iterator);
00163 
00170 extern xmlcpgObject* xmlcpgnext (xmlcpgIterator *iterator);
00171 
00178 extern int xmlcpghasnextElementType(xmlcpgIterator *iterator, char* name);
00179 
00187 extern xmlcpgObject* xmlcpgnextElementType (xmlcpgIterator *iterator, char* name);
00188 
00194 extern void xmlcpgremove (xmlcpgIterator *iterator);
00195 
00201 extern xmlcpgList* xmlcpgnewList ();
00202 
00209 extern void xmlcpgadd (xmlcpgList *list, xmlcpgObject *obj);
00210 
00217 extern void xmlcpgaddLast (xmlcpgList *list, xmlcpgObject *obj);
00218 
00225 extern xmlcpgObject* xmlcpggetListLast (xmlcpgList *list);
00226 
00233 extern xmlcpgIterator* xmlcpgnewIterator (xmlcpgObject *coll);
00234 
00235 
00236 typedef struct
00237 {
00238   xmlcpgObjectTag tag;
00239   char *str;
00240 } xmlcpgString;
00241 
00248 extern xmlcpgString* xmlcpgnewString (char *s);
00249 
00256 extern char* xmlcpggetStringStr (xmlcpgString *obj);
00257 
00264 extern void xmlcpgsetStringStr (xmlcpgString *obj, char *val);
00265 
00272 extern xmlcpgString* xmlcpgconcatString (xmlcpgString *obj, const char *str);
00273 
00280 extern xmlcpgString* xmlcpgconcatChar (xmlcpgString *obj, char c);
00281 
00289 extern xmlcpgString* xmlcpgtrimString (xmlcpgString *obj);
00290 
00294 typedef struct
00295 {
00296   xmlcpgObjectTag tag;
00297   xmlcpgObject *prolog;
00298   xmlcpgObject *element;
00299   xmlcpgList *misc;
00300 } xmlcpgDocument;
00301 
00310 extern xmlcpgDocument* xmlcpgnewDocument (xmlcpgObject *pro, xmlcpgObject *ele, xmlcpgList *mis);
00311 
00318 extern xmlcpgObject* xmlcpggetDocumentProlog (xmlcpgDocument *doc);
00319 
00327 extern void xmlcpgsetDocumentProlog (xmlcpgDocument *doc, xmlcpgObject *obj);
00328 
00335 extern xmlcpgObject* xmlcpggetDocumentElement (xmlcpgDocument *doc);
00336 
00344 extern void xmlcpgsetDocumentElement (xmlcpgDocument *doc, xmlcpgObject *obj);
00345 
00352 extern xmlcpgList* xmlcpggetDocumentMisc (xmlcpgDocument *doc);
00353 
00361 extern void xmlcpgsetDocumentMisc (xmlcpgDocument *doc, xmlcpgList *list);
00362 
00363 
00367 typedef struct
00368 {
00369   xmlcpgObjectTag tag;
00370   xmlcpgString *str;
00371 } xmlcpgCharData;
00372 
00379 extern xmlcpgCharData* xmlcpgnewCharData (xmlcpgString *s);
00380 
00387 extern xmlcpgString* xmlcpggetCharDataString (xmlcpgCharData *cd);
00388 
00396 extern void xmlcpgsetCharDataString (xmlcpgCharData *cd, xmlcpgString *s);
00397 
00398 
00402 typedef struct
00403 {
00404   xmlcpgObjectTag tag;
00405   xmlcpgString *str;
00406 } xmlcpgComment;
00407 
00414 extern xmlcpgComment* xmlcpgnewComment (xmlcpgString *s);
00415 
00422 extern xmlcpgString* xmlcpggetCommentString (xmlcpgComment *obj);
00423 
00431 extern void xmlcpgsetCommentString (xmlcpgComment *obj, xmlcpgString *s);
00432 
00433 
00437 typedef struct
00438 {
00439   xmlcpgObjectTag tag;
00440   xmlcpgString *pitarget;
00441   xmlcpgString *piparam;
00442 } xmlcpgPI;
00443 
00451 extern xmlcpgPI* xmlcpgnewPI (xmlcpgString *pit, xmlcpgString *pip);
00452 
00460 extern xmlcpgString* xmlcpggetPITarget (xmlcpgPI *obj);
00461 
00469 extern void xmlcpgsetPITarget (xmlcpgPI *obj, xmlcpgString *s);
00470 
00478 extern xmlcpgString* xmlcpggetPIParameters (xmlcpgPI *obj);
00479 
00487 extern void xmlcpgsetPIParameters (xmlcpgPI *obj, xmlcpgString *s);
00488 
00489 
00493 typedef struct
00494 {
00495   xmlcpgObjectTag tag;
00496   xmlcpgString *data;
00497 } xmlcpgCData;
00498 
00505 extern xmlcpgCData* xmlcpgnewCData (xmlcpgString *dat);
00506 
00513 extern xmlcpgString* xmlcpggetCDataString (xmlcpgCData *obj);
00514 
00522 extern void xmlcpgsetCDataString (xmlcpgCData *obj, xmlcpgString *s);
00523 
00524 
00528 typedef struct
00529 {
00530   xmlcpgObjectTag tag;
00531   xmlcpgObject* xmldecl;
00532   xmlcpgList* misc1;
00533   xmlcpgObject* dtddecl;
00534   xmlcpgList* misc2;
00535 } xmlcpgProlog;
00536 
00545 extern xmlcpgProlog* xmlcpgnewProlog (xmlcpgObject *xml, xmlcpgList *m, xmlcpgObject *dtd);
00546 
00554 extern xmlcpgObject* xmlcpggetPrologXmlDecl (xmlcpgProlog *obj);
00555 
00563 extern void xmlcpgsetPrologXmlDecl (xmlcpgProlog *obj, xmlcpgObject *val);
00564 
00571 extern xmlcpgList* xmlcpggetPrologMisc1 (xmlcpgProlog *obj);
00572 
00580 extern void xmlcpgsetPrologMisc1 (xmlcpgProlog *obj, xmlcpgList *val);
00581 
00589 extern xmlcpgObject* xmlcpggetPrologDtdDecl (xmlcpgProlog *obj);
00590 
00598 extern void xmlcpgsetPrologDtdDecl (xmlcpgProlog *obj, xmlcpgObject *val);
00599 
00606 extern xmlcpgList* xmlcpggetPrologMisc2 (xmlcpgProlog *obj);
00607 
00615 extern void xmlcpgsetPrologMisc2 (xmlcpgProlog *obj, xmlcpgList *val);
00616 
00617 
00622 typedef struct
00623 {
00624   xmlcpgObjectTag tag;
00625   xmlcpgString *version;
00626   xmlcpgString *encoding;
00627   int sddecl;
00628 } xmlcpgXMLDecl;
00629 
00638 extern xmlcpgXMLDecl* xmlcpgnewXMLDecl (xmlcpgString *v, xmlcpgString *e, int s);
00639 
00646 extern xmlcpgXMLDecl* xmlcpgbuildXMLDecl ();
00647 
00654 extern xmlcpgString* xmlcpggetXMLDeclVersion (xmlcpgXMLDecl *obj);
00655 
00663 extern void xmlcpgsetXMLDeclVersion (xmlcpgXMLDecl *obj, xmlcpgString *s);
00664 
00671 extern xmlcpgString* xmlcpggetXMLDeclEncoding (xmlcpgXMLDecl *obj);
00672 
00680 extern void xmlcpgsetXMLDeclEncoding (xmlcpgXMLDecl *obj, xmlcpgString *s);
00681 
00688 extern int xmlcpggetXMLDeclStandalone (xmlcpgXMLDecl *obj);
00689 
00696 extern void xmlcpgsetXMLDeclStandalone (xmlcpgXMLDecl *obj, int s);
00697 
00701 typedef struct
00702 {
00703   xmlcpgObjectTag tag;
00704   xmlcpgString *name;
00705   xmlcpgObject *externalid;
00706   xmlcpgList *markupdecl;
00707 } xmlcpgDocTypeDecl;
00708 
00709 
00718 extern xmlcpgDocTypeDecl* xmlcpgnewDocTypeDecl (xmlcpgString *n, xmlcpgObject *e, xmlcpgList *m);
00719 
00726 extern xmlcpgString* xmlcpggetDocTypeDeclName (xmlcpgDocTypeDecl *obj);
00727 
00735 extern void xmlcpgsetDocTypeDeclName (xmlcpgDocTypeDecl *obj, xmlcpgString *s);
00736 
00743 extern xmlcpgObject* xmlcpggetDocTypeDeclExternalID (xmlcpgDocTypeDecl *obj);
00744 
00751 extern void xmlcpgsetDocTypeDeclExternalID (xmlcpgDocTypeDecl *obj, xmlcpgObject *e);
00752 
00759 extern xmlcpgList* xmlcpggetDocTypeDeclMarkupDecl (xmlcpgDocTypeDecl *obj);
00760 
00768 extern void xmlcpgsetDocTypeDeclMarkupDecl (xmlcpgDocTypeDecl *obj, xmlcpgList *val);
00769 
00773 typedef struct
00774 {
00775   xmlcpgObjectTag tag;
00776   xmlcpgString *name;
00777 } xmlcpgPEReference;
00778 
00785 extern xmlcpgPEReference* xmlcpgnewPEReference (xmlcpgString *p);
00786 
00793 extern xmlcpgString* xmlcpggetPEReferenceName (xmlcpgPEReference *obj);
00794 
00802 extern void xmlcpgsetPEReferenceName (xmlcpgPEReference *obj, xmlcpgString *s);
00803 
00804 
00808 typedef struct
00809 {
00810   xmlcpgObjectTag tag;
00811   xmlcpgString *name;
00812   xmlcpgList *attributes;
00813   xmlcpgObject *content;
00814 } xmlcpgElement;
00815 
00824 extern xmlcpgElement* xmlcpgnewElement (xmlcpgString *n, xmlcpgList *a, xmlcpgObject *c);
00825 
00832 extern xmlcpgElement* xmlcpgnewElementWithName (const char *name);
00833 
00840 extern xmlcpgString* xmlcpggetElementName (xmlcpgElement *obj);
00841 
00849 extern void xmlcpgsetElementName (xmlcpgElement *obj, xmlcpgString *s);
00850 
00857 extern xmlcpgList* xmlcpggetElementAttributes (xmlcpgElement *obj);
00858 
00865 extern void xmlcpgsetElementAttributes (xmlcpgElement *obj, xmlcpgList *val);
00866 
00873 extern xmlcpgString* xmlcpggetElementAttributeByName (xmlcpgElement *obj, xmlcpgString *s);
00874 
00882 extern void xmlcpgaddAttribute (xmlcpgElement* ele, const char *nameAtt, const char *valAtt, int idType);
00883 
00890 extern xmlcpgObject* xmlcpggetElementContent (xmlcpgElement *obj);
00891 
00901 extern xmlcpgIterator* xmlcpggetSpecificContent(xmlcpgElement* rnaml, char* content);
00902 
00909 extern void xmlcpgsetElementContent (xmlcpgElement *obj, xmlcpgObject *val);
00910 
00916 extern void xmlcpgaddContentElement (xmlcpgElement* ele, xmlcpgObject* cont);
00917 
00925 extern void xmlcpgaddContentPCData (xmlcpgElement* ele, const char *cont);
00926 
00927 
00931 typedef struct
00932 {
00933   xmlcpgObjectTag tag;
00934   xmlcpgString *name;
00935   xmlcpgString *value;
00936 } xmlcpgAttribute;
00937 
00945 extern xmlcpgAttribute* xmlcpgnewAttribute (xmlcpgString *n, xmlcpgString *v);
00946 
00953 extern xmlcpgString* xmlcpggetAttributeName (xmlcpgAttribute *obj);
00954 
00962 extern void xmlcpgsetAttributeName (xmlcpgAttribute *obj, xmlcpgString *s);
00963 
00970 extern xmlcpgString* xmlcpggetAttributeValue (xmlcpgAttribute *obj);
00971 
00979 extern void xmlcpgsetAttributeValue (xmlcpgAttribute *obj, xmlcpgString *s);
00980 
00981 
00985 typedef struct
00986 {
00987   xmlcpgObjectTag tag;
00988   xmlcpgList *list;
00989 } xmlcpgContent;
00990 
00997 extern xmlcpgContent* xmlcpgnewContent (xmlcpgList *l);
00998 
01005 extern xmlcpgList* xmlcpggetContentList (xmlcpgContent *obj);
01006 
01013 extern void xmlcpgsetContentList (xmlcpgContent *obj, xmlcpgList *val);
01014 
01015 
01019 typedef struct
01020 {
01021   xmlcpgObjectTag tag;
01022   xmlcpgString *name;
01023   xmlcpgObject *contentspec;
01024   int isExtern;
01025 } xmlcpgElementDecl;
01026 
01034 extern xmlcpgElementDecl* xmlcpgnewElementDecl (xmlcpgString *n, xmlcpgObject *c,int ext);
01035 
01042 extern xmlcpgString* xmlcpggetElementDeclName (xmlcpgElementDecl *obj);
01043 
01051 extern void xmlcpgsetElementDeclName (xmlcpgElementDecl *obj, xmlcpgString *s);
01052 
01060 extern xmlcpgObject* xmlcpggetElementDeclContentSpec (xmlcpgElementDecl *obj);
01061 
01069 extern void xmlcpgsetElementDeclContentSpec (xmlcpgElementDecl *obj, xmlcpgObject *val);
01070 
01071 extern int  xmlcpggetElementDeclisExtern (xmlcpgElementDecl *obj);
01072 
01073 extern void xmlcpgsetElementDeclisExtern (xmlcpgElementDecl *obj,int val);
01074 
01078 typedef struct
01079 {
01080   xmlcpgObjectTag tag;
01081 } xmlcpgEmpty;
01082 
01088 extern xmlcpgEmpty* xmlcpgnewEmpty ();
01089 
01090 
01094 typedef struct
01095 {
01096   xmlcpgObjectTag tag;
01097 } xmlcpgAny;
01098 
01104 extern xmlcpgAny* xmlcpgnewAny ();
01105 
01106 
01110 typedef struct
01111 {
01112   xmlcpgObjectTag tag;
01113   xmlcpgObject *child;
01114 } xmlcpgChildrenOpt;
01115 
01122 extern xmlcpgChildrenOpt* xmlcpgnewChildrenOpt (xmlcpgObject *c);
01123 
01130 extern xmlcpgObject* xmlcpggetChildrenOptChild (xmlcpgChildrenOpt *obj);
01131 
01138 extern void xmlcpgsetChildrenOptChild (xmlcpgChildrenOpt *obj, xmlcpgObject *val);
01139 
01140 
01144 typedef struct
01145 {
01146   xmlcpgObjectTag tag;
01147   xmlcpgObject *child;
01148 } xmlcpgChildrenStar;
01149 
01156 extern xmlcpgChildrenStar* xmlcpgnewChildrenStar (xmlcpgObject *c);
01157 
01164 extern xmlcpgObject* xmlcpggetChildrenStarChild (xmlcpgChildrenStar *obj);
01165 
01172 extern void xmlcpgsetChildrenStarChild (xmlcpgChildrenStar *obj, xmlcpgObject *val);
01173 
01174 
01178 typedef struct
01179 {
01180   xmlcpgObjectTag tag;
01181   xmlcpgObject *child;
01182 } xmlcpgChildrenPlus;
01183 
01190 extern xmlcpgChildrenPlus* xmlcpgnewChildrenPlus (xmlcpgObject *c);
01191 
01198 extern xmlcpgObject* xmlcpggetChildrenPlusChild (xmlcpgChildrenPlus *obj);
01199 
01206 extern void xmlcpgsetChildrenPlusChild (xmlcpgChildrenPlus *obj, xmlcpgObject *val);
01207 
01208 
01212 typedef struct
01213 {
01214   xmlcpgObjectTag tag;
01215   xmlcpgList *childlist;
01216 } xmlcpgChildrenAlt;
01217 
01224 extern xmlcpgChildrenAlt* xmlcpgnewChildrenAlt (xmlcpgList *c);
01225 
01232 extern xmlcpgList* xmlcpggetChildrenAltChildList (xmlcpgChildrenAlt *obj);
01233 
01240 extern void xmlcpgsetChildrenAltChildList (xmlcpgChildrenAlt *obj, xmlcpgList *val);
01241 
01242 
01246 typedef struct
01247 {
01248   xmlcpgObjectTag tag;
01249   xmlcpgList *childlist;
01250 } xmlcpgChildrenSeq;
01251 
01258 extern xmlcpgChildrenSeq* xmlcpgnewChildrenSeq (xmlcpgList *c);
01259 
01266 extern xmlcpgList* xmlcpggetChildrenSeqChildList (xmlcpgChildrenSeq *obj);
01267 
01274 extern void xmlcpgsetChildrenSeqChildList (xmlcpgChildrenSeq *obj, xmlcpgList *val);
01275 
01276 
01277 typedef struct
01278 {
01279   xmlcpgObjectTag tag;
01280 } xmlcpgPCData;
01281 
01287 extern xmlcpgPCData* xmlcpgnewPCData ();
01288 
01289 
01290 typedef struct
01291 {
01292   xmlcpgObjectTag tag;
01293   xmlcpgString *name;
01294   xmlcpgList *attdefs;
01295   int isExtern;
01296 } xmlcpgAttlistDecl;
01297 
01305 extern xmlcpgAttlistDecl* xmlcpgnewAttlistDecl (xmlcpgString *n, xmlcpgList *defs, int ext);
01306 
01313 extern xmlcpgString* xmlcpggetAttlistDeclName (xmlcpgAttlistDecl *obj);
01314 
01321 extern void xmlcpgsetAttlistDeclName (xmlcpgAttlistDecl *obj, xmlcpgString *val);
01322 
01329 extern xmlcpgList* xmlcpggetAttlistDeclAttdefs (xmlcpgAttlistDecl *obj);
01330 
01337 extern void xmlcpgsetAttlistDeclAttdefs (xmlcpgAttlistDecl *obj, xmlcpgList *val);
01345 extern int xmlcpggetAttlistDeclIsExtern (xmlcpgAttlistDecl *obj);
01346 
01353 extern void xmlcpgsetAttlistDeclIsExtern (xmlcpgAttlistDecl *obj, int ext);
01354 
01355 
01356 typedef struct
01357 {
01358   xmlcpgObjectTag tag;
01359   xmlcpgString *name;
01360   xmlcpgObject *attType;
01361   xmlcpgObject *defaultDecl;
01362 } xmlcpgAttDef;
01363 
01372 extern xmlcpgAttDef* xmlcpgnewAttDef (xmlcpgString *n, xmlcpgObject *type, xmlcpgObject *decl);
01373 
01380 extern xmlcpgString* xmlcpggetAttDefName (xmlcpgAttDef *obj);
01381 
01388 extern void xmlcpgsetAttDefName (xmlcpgAttDef *obj, xmlcpgString *val);
01389 
01396 extern xmlcpgObject* xmlcpggetAttDefAttType (xmlcpgAttDef *obj);
01397 
01404 extern void xmlcpgsetAttDefAttType (xmlcpgAttDef *obj, xmlcpgObject *val);
01405 
01412 extern xmlcpgObject* xmlcpggetAttDefDefaultDecl (xmlcpgAttDef *obj);
01413 
01420 extern void xmlcpgsetAttDefDefaultDecl (xmlcpgAttDef *obj, xmlcpgObject *val);
01421 
01422 
01423 typedef struct
01424 {
01425   xmlcpgObjectTag tag;
01426 } xmlcpgId;
01427 
01433 extern xmlcpgId* xmlcpgnewId ();
01434 
01435 
01436 typedef struct
01437 {
01438   xmlcpgObjectTag tag;
01439 } xmlcpgIdRef;
01440 
01446 extern xmlcpgIdRef* xmlcpgnewIdRef ();
01447 
01448 
01449 typedef struct
01450 {
01451   xmlcpgObjectTag tag;
01452 } xmlcpgIdRefs;
01453 
01459 extern xmlcpgIdRefs* xmlcpgnewIdRefs ();
01460 
01461 
01462 typedef struct
01463 {
01464   xmlcpgObjectTag tag;
01465 } xmlcpgEntity;
01466 
01472 extern xmlcpgEntity* xmlcpgnewEntity ();
01473 
01474 
01475 typedef struct
01476 {
01477   xmlcpgObjectTag tag;
01478 } xmlcpgEntities;
01479 
01485 extern xmlcpgEntities* xmlcpgnewEntities ();
01486 
01487 
01488 typedef struct
01489 {
01490   xmlcpgObjectTag tag;
01491 } xmlcpgNmToken;
01492 
01498 extern xmlcpgNmToken* xmlcpgnewNmToken ();
01499 
01500 
01501 typedef struct
01502 {
01503   xmlcpgObjectTag tag;
01504 } xmlcpgNmTokens;
01505 
01511 extern xmlcpgNmTokens* xmlcpgnewNmTokens ();
01512 
01513 
01514 typedef struct
01515 {
01516   xmlcpgObjectTag tag;
01517   xmlcpgList *names;
01518 } xmlcpgNotationType;
01519 
01526 extern xmlcpgNotationType* xmlcpgnewNotationType (xmlcpgList *n);
01527 
01534 extern xmlcpgList* xmlcpggetNotationTypeNames (xmlcpgNotationType *obj);
01535 
01542 extern void xmlcpgsetNotationTypeNames (xmlcpgNotationType *obj, xmlcpgList *val);
01543 
01544 
01545 typedef struct
01546 {
01547   xmlcpgObjectTag tag;
01548   xmlcpgList *nmTokens;
01549 } xmlcpgEnumeration;
01550 
01557 extern xmlcpgEnumeration* xmlcpgnewEnumeration (xmlcpgList *n);
01558 
01565 extern xmlcpgList* xmlcpggetEnumerationNmTokens (xmlcpgEnumeration *obj);
01566 
01573 extern void xmlcpgsetEnumerationNmTokens (xmlcpgEnumeration *obj, xmlcpgList *val);
01574 
01575 
01576 typedef struct
01577 {
01578   xmlcpgObjectTag tag;
01579 } xmlcpgRequired;
01580 
01586 extern xmlcpgRequired* xmlcpgnewRequired ();
01587 
01588 
01589 typedef struct
01590 {
01591   xmlcpgObjectTag tag;
01592 } xmlcpgImplied;
01593 
01599 extern xmlcpgImplied* xmlcpgnewImplied ();
01600 
01601 
01602 typedef struct
01603 {
01604   xmlcpgObjectTag tag;
01605   xmlcpgString *attribute;
01606 } xmlcpgFixed;
01607 
01614 extern xmlcpgFixed* xmlcpgnewFixed (xmlcpgString *att);
01615 
01622 extern xmlcpgString* xmlcpggetFixedAttribute (xmlcpgFixed *obj);
01623 
01630 extern void xmlcpgsetFixedAttribute (xmlcpgFixed *obj, xmlcpgString *val);
01631 
01632 
01633 typedef struct
01634 {
01635   xmlcpgObjectTag tag;
01636   xmlcpgString *attribute;
01637 } xmlcpgAttValue;
01638 
01645 extern xmlcpgAttValue* xmlcpgnewAttValue (xmlcpgString *att);
01646 
01653 extern xmlcpgString* xmlcpggetAttValueAttribute (xmlcpgAttValue *obj);
01654 
01661 extern void xmlcpgsetAttValueAttribute (xmlcpgAttValue *obj, xmlcpgString *val);
01662 
01663 
01664 typedef struct
01665 {
01666   xmlcpgObjectTag tag;
01667   char cr;
01668 } xmlcpgChar;
01669 
01676 extern xmlcpgChar* xmlcpgnewChar (char c);
01677 
01684 extern char xmlcpggetCharCr (xmlcpgChar *obj);
01685 
01692 extern void xmlcpgsetCharCr (xmlcpgChar *obj, char val);
01693 
01694 
01695 typedef struct
01696 {
01697   xmlcpgObjectTag tag;
01698   xmlcpgString *name;
01699 } xmlcpgEntityRef;
01700 
01707 extern xmlcpgEntityRef* xmlcpgnewEntityRef (xmlcpgString *n);
01708 
01715 extern xmlcpgString* xmlcpggetEntityRefName (xmlcpgEntityRef *obj);
01716 
01723 extern void xmlcpgsetEntityRefName (xmlcpgEntityRef *obj, xmlcpgString *val);
01724 
01725 
01726 typedef struct
01727 {
01728   xmlcpgObjectTag tag;
01729   xmlcpgString *name;
01730   xmlcpgObject *entityDef;
01731   int isExtern;
01732 } xmlcpgGEDecl;
01733 
01741 extern xmlcpgGEDecl* xmlcpgnewGEDecl (xmlcpgString *n, xmlcpgObject *def,int ext);
01742 
01749 extern xmlcpgString* xmlcpggetGEDeclName (xmlcpgGEDecl *obj);
01750 
01757 extern void xmlcpgsetGEDeclName (xmlcpgGEDecl *obj, xmlcpgString *val);
01758 
01765 extern xmlcpgObject* xmlcpggetGEDeclEntityDef (xmlcpgGEDecl *obj);
01766 
01773 extern void xmlcpgsetGEDeclEntityDef (xmlcpgGEDecl *obj, xmlcpgObject *val);
01780 extern int xmlcpggetGEDeclEntityIsExtern (xmlcpgGEDecl *obj);
01781 
01788 extern void xmlcpgsetGEDeclEntityIsExtern (xmlcpgGEDecl *obj, int isExt);
01789 
01790 
01791 typedef struct
01792 {
01793   xmlcpgObjectTag tag;
01794   xmlcpgString *name;
01795   xmlcpgObject *peDef;
01796   int isExtern;
01797 } xmlcpgPEDecl;
01798 
01806 extern xmlcpgPEDecl* xmlcpgnewPEDecl (xmlcpgString *n, xmlcpgObject *def,int ext);
01807 
01814 extern xmlcpgString* xmlcpggetPEDeclName (xmlcpgPEDecl *obj);
01815 
01822 extern void xmlcpgsetPEDeclName (xmlcpgPEDecl *obj, xmlcpgString *val);
01823 
01830 extern xmlcpgObject* xmlcpggetPEDeclPeDef (xmlcpgPEDecl *obj);
01831 
01838 extern void xmlcpgsetPEDeclPeDef (xmlcpgPEDecl *obj, xmlcpgObject *val);
01845 extern int xmlcpggetPEDeclIsExtern (xmlcpgPEDecl *obj);
01846 
01853 extern void xmlcpgsetPEDeclIsExtern (xmlcpgPEDecl *obj, int ext);
01854 
01855 
01856 typedef struct
01857 {
01858   xmlcpgObjectTag tag;
01859   xmlcpgString *value;
01860 } xmlcpgEntityValue;
01861 
01868 extern xmlcpgEntityValue* xmlcpgnewEntityValue (xmlcpgString *v);
01869 
01876 extern xmlcpgString* xmlcpggetEntityValueValue (xmlcpgEntityValue *obj);
01877 
01884 extern void xmlcpgsetEntityValueValue (xmlcpgEntityValue *obj, xmlcpgString *val);
01885 
01886 
01887 typedef struct
01888 {
01889   xmlcpgObjectTag tag;
01890   xmlcpgObject *id;
01891   xmlcpgObject *ndata;
01892 } xmlcpgExternalID;
01893 
01901 extern xmlcpgExternalID* xmlcpgnewExternalID (xmlcpgObject *i, xmlcpgObject *data);
01902 
01909 extern xmlcpgObject* xmlcpggetExternalIDId (xmlcpgExternalID *obj);
01910 
01917 extern void xmlcpgsetExternalIDId (xmlcpgExternalID *obj, xmlcpgObject *val);
01918 
01925 extern xmlcpgObject* xmlcpggetExternalIDNdata (xmlcpgExternalID *obj);
01926 
01933 extern void xmlcpgsetExternalIDNdata (xmlcpgExternalID *obj, xmlcpgObject *val);
01934 
01935 
01936 typedef struct
01937 {
01938   xmlcpgObjectTag tag;
01939   xmlcpgString *name;
01940 } xmlcpgSystemExternalID;
01941 
01948 extern xmlcpgSystemExternalID* xmlcpgnewSystemExternalID (xmlcpgString *n);
01949 
01956 extern xmlcpgString* xmlcpggetSystemExternalIDName (xmlcpgSystemExternalID *obj);
01957 
01964 extern void xmlcpgsetSystemExternalIDName (xmlcpgSystemExternalID *obj, xmlcpgString *val);
01965 
01966 
01967 typedef struct
01968 {
01969   xmlcpgObjectTag tag;
01970   xmlcpgString *Public;
01971   xmlcpgString *system;
01972 } xmlcpgPublicExternalID;
01973 
01981 extern xmlcpgPublicExternalID* xmlcpgnewPublicExternalID (xmlcpgString *p, xmlcpgString *s);
01982 
01989 extern xmlcpgString* xmlcpggetPublicExternalIDPublic (xmlcpgPublicExternalID *obj);
01990 
01997 extern void xmlcpgsetPublicExternalIDPublic (xmlcpgPublicExternalID *obj, xmlcpgString *val);
01998 
02005 extern xmlcpgString* xmlcpggetPublicExternalIDSystem (xmlcpgPublicExternalID *obj);
02006 
02013 extern void xmlcpgsetPublicExternalIDSystem (xmlcpgPublicExternalID *obj, xmlcpgString *val);
02014 
02015 
02016 typedef struct
02017 {
02018   xmlcpgObjectTag tag;
02019   xmlcpgString *name;
02020 } xmlcpgNDataDecl;
02021 
02028 extern xmlcpgNDataDecl* xmlcpgnewNDataDecl (xmlcpgString *n);
02029 
02036 extern xmlcpgString* xmlcpggetNDataDeclName (xmlcpgNDataDecl *obj);
02037 
02044 extern void xmlcpgsetNDataDeclName (xmlcpgNDataDecl *obj, xmlcpgString *val);
02045 
02046 
02047 typedef struct
02048 {
02049   xmlcpgObjectTag tag;
02050   xmlcpgString *name;
02051   xmlcpgObject *id;
02052   int isExtern;
02053 } xmlcpgNotationDecl;
02054 
02062 extern xmlcpgNotationDecl* xmlcpgnewNotationDecl (xmlcpgString *n, xmlcpgObject *i, int isExt);
02063 
02070 extern xmlcpgString* xmlcpggetNotationDeclName (xmlcpgNotationDecl *obj);
02071 
02078 extern void xmlcpgsetNotationDeclName (xmlcpgNotationDecl *obj, xmlcpgString *val);
02079 
02086 extern xmlcpgObject* xmlcpggetNotationDeclId (xmlcpgNotationDecl *obj);
02087 
02094 extern void xmlcpgsetNotationDeclId (xmlcpgNotationDecl *obj, xmlcpgObject *val);
02101 extern int xmlcpggetNotationDeclIsExtern (xmlcpgNotationDecl *obj);
02102 
02109 extern void xmlcpgsetNotationDeclIsExtern (xmlcpgNotationDecl *obj, int ext);
02110 
02111 
02112 typedef struct
02113 {
02114   xmlcpgObjectTag tag;
02115   xmlcpgString *name;
02116 } xmlcpgPublicID;
02117 
02124 extern xmlcpgPublicID* xmlcpgnewPublicID (xmlcpgString *n);
02125 
02132 extern xmlcpgString* xmlcpggetPublicIDName (xmlcpgPublicID *obj);
02133 
02140 extern void xmlcpgsetPublicIDName (xmlcpgPublicID *obj, xmlcpgString *val);
02141 
02146 typedef struct
02147 {
02148   xmlcpgObjectTag tag;
02149   xmlcpgList *assoc;
02150 } xmlcpgMap;
02151 
02157 extern xmlcpgMap* xmlcpgnewMap ();
02158 
02170 extern xmlcpgObject* xmlcpgget (xmlcpgMap *map, const xmlcpgObject *key);
02171 
02183 extern xmlcpgObject* xmlcpgput (xmlcpgMap *map, xmlcpgObject *key, xmlcpgObject *value);
02184 
02185 
02189 typedef struct
02190 {
02191   xmlcpgObjectTag tag;
02192   xmlcpgObject *pos;
02193   xmlcpgObject *last;
02194 } xmlcpgMapIterator;
02195 
02196 
02197 typedef struct xmlcpgMAPENTRY xmlcpgMapEntry;
02198 
02204 extern xmlcpgObject* xmlcpggetKey (const xmlcpgMapEntry *me);
02205 
02211 extern xmlcpgObject* xmlcpggetValue (const xmlcpgMapEntry *me);
02212 
02218 extern xmlcpgObject* xmlcpgsetValue (xmlcpgMapEntry *me, xmlcpgObject *obj);
02219 
02225 extern xmlcpgObject* xmlcpgclone (const xmlcpgObject *obj);
02226 
02233 extern int xmlcpgcontains (xmlcpgObject *container, xmlcpgObject *obj);
02234 
02241 extern int xmlcpgcontainsKey (xmlcpgObject *container, xmlcpgObject *key);
02242 
02247 extern void xmlcpgdelete (xmlcpgObject *obj);
02248 
02255 extern void xmlcpgdeletelight (xmlcpgObject *obj, int light);
02256 
02261 extern void xmlcpgclear (xmlcpgObject *obj);
02262 
02270 extern void xmlcpgclearlight (xmlcpgObject *obj, int light);
02271 
02278 extern int xmlcpgequals (const xmlcpgObject *obj1, const xmlcpgObject *obj2);
02279 
02287 extern int xmlcpgisEmpty (xmlcpgObject *obj);
02288 
02294 extern unsigned int xmlcpgsize (const xmlcpgObject *obj);
02295 
02302 extern void xmlcpgprint (FILE *f, const xmlcpgObject *obj);
02303 
02309 extern void xmlcpgprintObject (xmlcpgPrintStream *ps, const xmlcpgObject *obj);
02310 
02317 extern void xmlcpgprettyPrint (FILE *f, const xmlcpgObject *obj);
02318 
02324 extern void xmlcpgprettyPrintObject (xmlcpgPrintStream *ps, const xmlcpgObject *obj);
02325 
02336 extern xmlcpgObject* xmlcpgRemove (xmlcpgObject *container, xmlcpgObject *obj);
02337 
02342 extern void xmlcpgfatalError (const char *message);
02343 
02350 extern void xmlcpginternalError (const char *message, const char *file, int line);
02351 
02367 extern char* xmlcpgEOLNormalisation (const char *str);
02368 
02374 extern char* xmlcpgattributeQuoteReplacement (const char *str);
02375 
02379 extern xmlcpgObject *xmlcpgast;
02380 
02381 
02382 
02383 extern FILE *xmlcpgin;
02384 
02385 
02386 
02390 extern int xmlcpgparse ();
02391 extern void xmlcpgflushBuffer ();
02392 
02396 extern int isExtern;
02397 extern int xmlcpgLineNo;
02398 extern void xmlcpgswitchToBuffer ();
02399 extern void xmlcpgsaveBuffer ();
02400 
02404 typedef xmlcpgMap ReferenceTable;
02405 
02411 extern ReferenceTable* xmlcpgnewReferenceTable ();
02412 
02420 extern const char* xmlcpggetReferenceTable (ReferenceTable *table, const char *key);
02421 
02429 extern void xmlcpgputReferenceTable (ReferenceTable *table, const char *key, xmlcpgObject *value);
02430 
02436 extern void xmlcpgremoveReferenceTable (ReferenceTable *table, const char *key);
02437 
02443 extern void xmlcpgclearReferenceTable (ReferenceTable *table);
02444 
02449 extern void xmlcpginit ();
02450 
02455 extern void xmlcpgdestroy ();
02456 
02457 #endif

Generated on Tue Nov 11 14:59:41 2003 for xmlcpg by doxygen1.2.18