xmldom.H

00001 %%% Document Object Model ( Version 1.0/October 2002)
00002 %%%
00003 %%% (c) 2002 Carlos Viegas Damásio (cd@di.fct.unl.pt)
00004 %%%
00005 %%% Centro de Inteligência Artificial da Universidade Nova de Lisboa
00006 %%% Quinta da Torre
00007 %%% 2829-516 Caparica
00008 %%% Portugal
00009 %%%
00010 %%% This module provides several interfaces for constructing a Prolog representation of
00011 %%% XML documents. It follows almost completely the recommendation XML Information Sets 
00012 %%% (http://www.w3.org/TR/xml-infoset). For the time being it lacks full XML Base support
00013 %%% (it does not resolve relative references) even though the properties in the information items and
00014 %%% corresponding methods are already supported. 
00015 %%% 
00016 %%% XML Namespaces are fully supported.
00017 %%%
00018 %%% The properties which involve referencing other information items 
00019 %%% are not implemented. This is motivated by the fact that some Prolog system do not 
00020 %%% give support for cyclic terms. However, we are planning to provide an extension to this
00021 %%% module for the full recommendation.
00022 %%% 
00023 %%% In most situations unknown or no value properties are represented by empty lists.
00024 %%% In order to maintain compatibility for subsequent versions of our parser, all applications
00025 %%% should use the current predicates to create/extract properties from the information items 
00026 %%%
00027 %%% Some of the specification and predicate names were inspired by XML DOM Level 3.
00028 %%%
00029 
00030 % Document
00031 :- export isDocument/1.
00032 :- export createDocument/1.
00033 :- export setDocumentChildren/3.
00034 :- export setDocumentElement/3.
00035 :- export setDocumentPhysicalStructures/3.
00036 :- export setDocumentBaseURI/3.
00037 :- export setDocumentVersion/3.
00038 :- export setDocumentEncoding/3.
00039 :- export setDocumentStandalone/3.
00040 :- export setDocumentAllProcessed/3.
00041 :- export setDocumentDTD/3.
00042 
00043 :- export getDocumentChildren/2.
00044 :- export getDocumentElement/2.
00045 :- export getDocumentNotations/2.
00046 :- export getDocumentUnparsedEntities/2.
00047 :- export getDocumentBaseURI/2.
00048 :- export getDocumentVersion/2.
00049 :- export getDocumentEncoding/2.
00050 :- export getDocumentStandalone/2.
00051 :- export getDocumentAllProcessed/2.
00052 :- export getDocumentDTD/2.
00053 :- export getDocumentDefaultAttributes/4.
00054 
00055 :- export appendDocumentChildren/3.
00056 
00057 % Document Type
00058 
00059 :- export isDocumentType/1.
00060 :- export createDocumentType/6.
00061 :- export getDocumentTypeQualifiedName/2.
00062 :- export getDocumentTypePublicId/2.
00063 :- export getDocumentTypeSystemId/2.
00064 :- export getDocumentTypeElementDeclarations/2.
00065 :- export getDocumentTypeAttributeDeclarations/2.
00066 :- export getDocumentTypeChildren/2.
00067 :- export getDocumentTypeLogicalStructs/2.
00068 
00069 :- export getElementSpecificationFromDTD/3.
00070 :- export getDefaultAttributesFromDTD/4.
00071 :- export getAttributeDeclarationFromDTD/5.
00072 
00073 
00074 :- export splitAttrib/6.
00075 
00076 
00077 % Physical Structures
00078 
00079 :- export isPhysicalStructures/1.
00080 :- export createPhysicalStructures/1.
00081 :- export setPhysicalStructuresParameterEntities/3.
00082 :- export setPhysicalStructuresGeneralEntities/3.
00083 :- export setPhysicalStructuresNotations/3.
00084 :- export setPhysicalStructuresUnparsedEntities/3.
00085 :- export getPhysicalStructuresParameterEntities/2.
00086 :- export getPhysicalStructuresGeneralEntities/2.
00087 :- export getPhysicalStructuresNotations/2.
00088 :- export getPhysicalStructuresUnparsedEntities/2.
00089 
00090 :- export addPhysicalStructuresParameterEntity/4.
00091 :- export addPhysicalStructuresParsedEntity/4.
00092 :- export addPhysicalStructuresUnparsedEntity/4.
00093 :- export addPhysicalStructuresNotation/4.
00094 :- export addPhysicalStructuresGeneralEntity/6.
00095 
00096 
00097 % Entities
00098 
00099 :- export isInternalEntity/1.
00100 :- export isExternalEntity/1.
00101 :- export isUnparsedEntity/1.
00102 
00103 :- export createEntity/3.
00104 :- export createExternalEntity/5.
00105 :- export createUnparsedEntity/6.
00106 :- export getEntityName/2.
00107 :- export getEntityPublicId/2.
00108 :- export getEntitySystemId/2.
00109 :- export getEntityBaseURI/2.
00110 :- export getEntityNotationName/2.
00111 :- export getEntityReplacementText/2.
00112 
00113 % Logical Structures
00114 
00115 :- export isLogicalStructures/1.
00116 :- export createLogicalStructures/1.
00117 :- export createLogicalStructuresAttributeList/3.
00118 :- export addLogicalStructuresElementDeclaration/4.
00119 :- export addLogicalStructuresAttributeDeclaration/4.
00120 :- export getLogicalStructuresElementDeclaration/3.
00121 :- export getLogicalStructuresAttributeDeclarations/3.
00122 
00123 % Element Specifications
00124 
00125 :- export isElementSpecification/1.
00126 :- export createElementSpecification/3.
00127 :- export getElementSpecification/2.
00128 
00129 % Attribute List Declarations
00130 
00131 :- export isAttributeListDeclaration/1.
00132 :- export getAttributeListDeclaration/2.
00133 :- export createAttributeDeclaration/4.
00134 :- export getAttributeDeclaration/3.
00135 :- export getAttributeDeclaration/4.
00136 
00137 % Notations
00138 
00139 :- export isNotation/1.
00140 :- export createNotation/5.
00141 :- export getNotationName/2.
00142 :- export getNotationPublicId/2.
00143 :- export getNotationSystemId/2.
00144 :- export getNotationBaseURI/2.
00145 
00146 % Document Fragments
00147 
00148 :- export isDocumentFragment/1.
00149 :- export createDocumentFragment/1.
00150 :- export appendDocumentFragmentChild/3.
00151 
00152 % Elements
00153 
00154 :- export isElement/1.
00155 :- export createElementNS/6.
00156 :- export setElementAttributes/4.
00157 :- export setElementContent/3.
00158 
00159 :- export getElementName/4.
00160 :- export getElementChildren/2.
00161 :- export getElementAttributes/3.
00162 :- export getElementInScopeNamespaces/2.
00163 :- export getElementBaseURI/2.
00164 :- export getElementLang/2.
00165 
00166 % Attributes
00167 
00168 :- export isAttribute/1.
00169 :- export createAttributeNS/6.
00170 :- export getAttributeName/4.
00171 :- export getAttributeValue/2.
00172 :- export getAttributeSpecified/2.
00173 :- export getAttributeType/2.
00174 
00175 % Processing Instructions
00176 
00177 :- export isPI/1.
00178 :- export createPI/4.
00179 :- export setPIBaseURI/3.
00180 :- export getPITarget/2.
00181 :- export getPIContent/2.
00182 :- export getPIBaseURI/2.
00183 
00184 
00185 % Comments
00186 
00187 :- export isComment/1.
00188 :- export createComment/2.
00189 :- export getCommentContent/2.
00190 
00191 % Character Data
00192 
00193 :- export isCharData/1.
00194 :- export isWhiteSpace/1.
00195 
00196 :- export createCharData/2.
00197 :- export getCharData/2.
00198 
00199 
00200 % Auxiliary predicates
00201 
00202 :- export isNodeList/1.
00203 :- export createNodeList/1.
00204 :- export isEmptyNodeList/1.
00205 :- export getHeadNodeList/2.
00206 :- export getTailNodeList/2.
00207 
00208 :- export isNamedMap/1.
00209 :- export createNamedMap/1.
00210 :- export isEmptyNamedMap/1.
00211 :- export getFirstNamedMap/2.
00212 :- export getFirstNamedMap/3.
00213 :- export getRestNamedMap/2.
00214 :- export getNamedItem/3.
00215 
00216 :- export setNamedItem/4.
00217 :- export setNewNamedItem/4.
00218 :- export setNamedItemIfNew/4.
00219 :- export removeNamedItem/4.
00220 
00221 
00222 :- export isQualifiedName/1.
00223 :- export createQualifiedName/3.
00224 :- export getPrefix/2.
00225 :- export getLocalName/2.
00226 
00227 

Generated on Wed Jul 26 13:30:46 2006 for XSB by  doxygen 1.4.5