00001 /***************************************************************************** 00002 * Copyright (C) 2011 by Benjamin Hadorn (b_hadorn@bluewin.ch) 00003 ***************************************************************************** 00004 * Project : Zeus Base Library 00005 * Module : IXSDNode 00006 * Package : Zeus.ZeusBase.System.Interfaces 00007 * Author : Abbuehl Martin 00008 * Date : 27.12.2011 00009 * System : Zeus-Framework 00010 ***************************************************************************** 00011 * Licence: * 00012 * This library is free software; you can redistribute it and/or modify * 00013 * it under the terms of the GNU Lesser General Public License as * 00014 * published by the Free Software Foundation; either version * 00015 * 2.1 of the License, or (at your option) any later version. * 00016 * * 00017 * This library is distributed in the hope that it will be useful, * 00018 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00020 * GNU Lesser General Public License for more details. * 00021 * * 00022 * You should have received a copy of the GNU Lesser General Public * 00023 * License along with this library; if not, write to the Free Software * 00024 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA * 00025 *****************************************************************************/ 00026 00027 /***************************************************************************** 00028 * Changes: 00029 * 27.12.2011 bha: created zeus 2.0 00030 *****************************************************************************/ 00031 00032 #ifndef IXSDNodeHPP 00033 #define IXSDNodeHPP 00034 00035 #include <zeusbase/System/Interfaces/IXMLNode.hpp> 00036 00037 00038 // {7E3DD4F5-EBDA-4bd7-8E4B-6864E35F4486} 00039 #define INTERFACE_IXSDNode TIID(0x7e3dd4f5, 0xebda, 0x4bd7, 0x8e, 0x4b, 0x68, 0x64, 0xe3, 0x5f, 0x44, 0x86) 00040 00041 00042 #define UNBOUNDED -1 00043 00044 00045 BEGIN_NAMESPACE_Zeus 00046 00047 00048 class IXSDNodes; 00049 /******************************************************************************/ 00053 /******************************************************************************/ 00054 class IXSDNode : public IXMLNode 00055 { 00056 public: 00057 /**************************************************************************/ 00060 /**************************************************************************/ 00061 virtual bool MQUALIFIER isComplexType() const = 0; 00062 00063 /**************************************************************************/ 00066 /**************************************************************************/ 00067 virtual bool MQUALIFIER isSimpleType() const = 0; 00068 00069 /**************************************************************************/ 00072 /**************************************************************************/ 00073 virtual bool MQUALIFIER isElement() const = 0; 00074 00075 /**************************************************************************/ 00078 /**************************************************************************/ 00079 virtual bool MQUALIFIER isAttribute() const = 0; 00080 00081 /**************************************************************************/ 00084 /**************************************************************************/ 00085 virtual bool MQUALIFIER isAnnotation() const = 0; 00086 00087 /**************************************************************************/ 00090 /**************************************************************************/ 00091 virtual bool MQUALIFIER isAppinfo() const = 0; 00092 00093 /**************************************************************************/ 00096 /**************************************************************************/ 00097 virtual bool MQUALIFIER isRestriction() const = 0; 00098 00099 /**************************************************************************/ 00106 /**************************************************************************/ 00107 virtual Retval MQUALIFIER getName(IString& strName) const = 0; 00108 00109 /**************************************************************************/ 00116 /**************************************************************************/ 00117 virtual Retval MQUALIFIER setName(const IString& strName) = 0; 00118 00119 /**************************************************************************/ 00126 /**************************************************************************/ 00127 virtual Retval MQUALIFIER getType(IString& strType) const = 0; 00128 00129 /**************************************************************************/ 00136 /**************************************************************************/ 00137 virtual Retval MQUALIFIER setType(const IString& strType) = 0; 00138 00139 /**************************************************************************/ 00146 /**************************************************************************/ 00147 virtual Retval MQUALIFIER getMinOccurs(Int& iMinOccurs) const = 0; 00148 00149 /**************************************************************************/ 00156 /**************************************************************************/ 00157 virtual Retval MQUALIFIER setMinOccurs(Int iMinOccurs) = 0; 00158 00159 /**************************************************************************/ 00166 /**************************************************************************/ 00167 virtual Retval MQUALIFIER getMaxOccurs(Int& iMaxOccurs) const = 0; 00168 00169 /**************************************************************************/ 00176 /**************************************************************************/ 00177 virtual Retval MQUALIFIER setMaxOccurs(Int iMaxOccurs) = 0; 00178 00179 /**************************************************************************/ 00186 /**************************************************************************/ 00187 virtual Retval MQUALIFIER getDefault(IString& strDefault) const = 0; 00188 00189 /**************************************************************************/ 00196 /**************************************************************************/ 00197 virtual Retval MQUALIFIER setDefault(const IString& strDefault) = 0; 00198 00199 /**************************************************************************/ 00206 /**************************************************************************/ 00207 virtual Retval MQUALIFIER getValue(IString& strValue) const = 0; 00208 00209 /**************************************************************************/ 00216 /**************************************************************************/ 00217 virtual Retval MQUALIFIER setValue(const IString& strValue) = 0; 00218 00219 /**************************************************************************/ 00228 /**************************************************************************/ 00229 virtual Retval MQUALIFIER selectXSDNode(const IString& strQuery, 00230 bool bPrefixSchemaNamespace, 00231 IXSDNode*& rpResult) const = 0; 00232 00233 /**************************************************************************/ 00242 /**************************************************************************/ 00243 virtual Retval MQUALIFIER selectXSDNodes(const IString& strQuery, 00244 bool bPrefixSchemaNamespace, 00245 IXSDNodes*& rpResults) const = 0; 00246 00247 /**************************************************************************/ 00254 /**************************************************************************/ 00255 virtual Retval MQUALIFIER getElements(IXSDNodes*& rpElements) = 0; 00256 00257 /**************************************************************************/ 00265 /**************************************************************************/ 00266 virtual Retval MQUALIFIER getElement(const IString& strElementName, IXSDNode*& rpElement) = 0; 00267 00268 /**************************************************************************/ 00275 /**************************************************************************/ 00276 virtual Retval MQUALIFIER getAttributes(IXSDNodes*& rpAttributes) = 0; 00277 00278 /**************************************************************************/ 00286 /**************************************************************************/ 00287 virtual Retval MQUALIFIER getAttribute(const IString& strAttributeName, IXSDNode*& rpAttribute) = 0; 00288 00289 /**************************************************************************/ 00296 /**************************************************************************/ 00297 virtual Retval MQUALIFIER getAnnotation(IXSDNode*& rpAnnotationNode) = 0; 00298 00299 /**************************************************************************/ 00306 /**************************************************************************/ 00307 virtual Retval MQUALIFIER getAppinfo(IXSDNode*& rpAppinfoNode) = 0; 00308 00309 /**************************************************************************/ 00316 /**************************************************************************/ 00317 virtual Retval MQUALIFIER getRestriction(IXSDNode*& rpRestrictionNode) = 0; 00318 00319 /**************************************************************************/ 00326 /**************************************************************************/ 00327 virtual Retval MQUALIFIER getMinInclusiveNode(IXSDNode*& rpMinInclusiveNode) = 0; 00328 00329 /**************************************************************************/ 00336 /**************************************************************************/ 00337 virtual Retval MQUALIFIER getMaxInclusiveNode(IXSDNode*& rpMaxInclusiveNode) = 0; 00338 00339 /**************************************************************************/ 00342 /**************************************************************************/ 00343 virtual Retval MQUALIFIER getParentXSDNode(IXSDNode*& rpParentNode) const = 0; 00344 00345 /**************************************************************************/ 00352 /**************************************************************************/ 00353 virtual Retval MQUALIFIER getBase(IString& strBase) const = 0; 00354 00355 /**************************************************************************/ 00362 /**************************************************************************/ 00363 virtual Retval MQUALIFIER setBase(const IString& strBase) = 0; 00364 00365 /**************************************************************************/ 00368 /**************************************************************************/ 00369 virtual IXMLNode& MQUALIFIER getXMLNodeInternal() = 0; 00370 00371 /**************************************************************************/ 00375 /**************************************************************************/ 00376 virtual const IXMLNode& MQUALIFIER getXMLNodeInternalConst() const = 0; 00377 00378 /**************************************************************************/ 00383 /**************************************************************************/ 00384 virtual Retval MQUALIFIER cloneXSDNode(bool bRecursively, 00385 IXSDNode*& rpCloneNode) const = 0; 00386 }; 00387 00388 00389 END_NAMESPACE_Zeus 00390 00391 00392 #endif