⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xsmodel.hpp

📁 基于属性证书的访问控制源代码,由c++编写,包括openssl,xercesc等
💻 HPP
📖 第 1 页 / 共 2 页
字号:
    /**     * Convenience method. Returns a list of top-level component declarations      * that are defined within the specified namespace, i.e. element      * declarations, attribute declarations, etc.      * @param objectType The type of the declaration, i.e.      *   <code>ELEMENT_DECLARATION</code>.     * @param compNamespace The namespace to which declaration belongs or      *   <code>null</code> (for components with no target namespace).     * @return A list of top-level definitions of the specified type in      *   <code>objectType</code> and defined in the specified      *   <code>namespace</code> or <code>null</code>.      */    XSNamedMap<XSObject> *getComponentsByNamespace(XSConstants::COMPONENT_TYPE objectType,                                                const XMLCh *compNamespace);    /**     *  [annotations]: a set of annotations.     */    XSAnnotationList *getAnnotations();    /**     * Convenience method. Returns a top-level element declaration.      * @param name The name of the declaration.     * @param compNamespace The namespace of the declaration, null if absent.     * @return A top-level element declaration or <code>null</code> if such      *   declaration does not exist.      */    XSElementDeclaration *getElementDeclaration(const XMLCh *name            , const XMLCh *compNamespace);    /**     * Convenience method. Returns a top-level attribute declaration.      * @param name The name of the declaration.     * @param compNamespace The namespace of the declaration, null if absent.     * @return A top-level attribute declaration or <code>null</code> if such      *   declaration does not exist.      */    XSAttributeDeclaration *getAttributeDeclaration(const XMLCh *name            , const XMLCh *compNamespace);    /**     * Convenience method. Returns a top-level simple or complex type      * definition.      * @param name The name of the definition.     * @param compNamespace The namespace of the declaration, null if absent.     * @return An <code>XSTypeDefinition</code> or <code>null</code> if such      *   definition does not exist.      */    XSTypeDefinition *getTypeDefinition(const XMLCh *name            , const XMLCh *compNamespace);    /**     * Convenience method. Returns a top-level attribute group definition.      * @param name The name of the definition.     * @param compNamespace The namespace of the declaration, null if absent.     * @return A top-level attribute group definition or <code>null</code> if      *   such definition does not exist.      */    XSAttributeGroupDefinition *getAttributeGroup(const XMLCh *name            , const XMLCh *compNamespace);    /**     * Convenience method. Returns a top-level model group definition.      * @param name The name of the definition.     * @param compNamespace The namespace of the declaration, null if absent.     * @return A top-level model group definition definition or      *   <code>null</code> if such definition does not exist.      */    XSModelGroupDefinition *getModelGroupDefinition(const XMLCh *name            , const XMLCh *compNamespace);    /**     * Convenience method. Returns a top-level notation declaration.      * @param name The name of the declaration.     * @param compNamespace The namespace of the declaration, null if absent.     * @return A top-level notation declaration or <code>null</code> if such      *   declaration does not exist.      */    XSNotationDeclaration *getNotationDeclaration(const XMLCh *name            , const XMLCh *compNamespace);    /**      * Optional.  Return a component given a component type and a unique Id.        * May not be supported for all component types.      * @param compId unique Id of the component within its type      * @param compType type of the component      * @return the component of the given type with the given Id, or 0      * if no such component exists or this is unsupported for      * this type of component.      */    XSObject *getXSObjectById(unsigned int  compId                , XSConstants::COMPONENT_TYPE compType);    //@}    //----------------------------------    /** methods needed by implementation */    //@{    XMLStringPool*  getURIStringPool();    XSNamespaceItem* getNamespaceItem(const XMLCh* const key);    /**      * Get the XSObject (i.e. XSElementDeclaration) that corresponds to      * to a schema grammar component (i.e. SchemaElementDecl)      * @param key schema component object      *      * @return the corresponding XSObject      */    XSObject* getXSObject(void* key);    //@}private:    // -----------------------------------------------------------------------    //  Helper methods    // -----------------------------------------------------------------------    void addGrammarToXSModel    (        XSNamespaceItem* namespaceItem    );    void addS4SToXSModel    (        XSNamespaceItem* const namespaceItem        , RefHashTableOf<DatatypeValidator>* const builtInDV    );    void addComponentToNamespace    (         XSNamespaceItem* const namespaceItem         , XSObject* const component         , int componentIndex         , bool addToXSModel = true    );    // -----------------------------------------------------------------------    //  Unimplemented constructors and operators    // -----------------------------------------------------------------------    XSModel(const XSModel&);    XSModel & operator=(const XSModel &);protected:    friend class XSObjectFactory;    // -----------------------------------------------------------------------    //  data members    // -----------------------------------------------------------------------    // fMemoryManager:    //  used for any memory allocations    MemoryManager* const                    fMemoryManager;     StringList*                             fNamespaceStringList;    XSNamespaceItemList*                    fXSNamespaceItemList;    RefVectorOf<XSElementDeclaration>*      fElementDeclarationVector;    RefVectorOf<XSAttributeDeclaration>*    fAttributeDeclarationVector;    /* Need a XSNamedMap for each component    top-level?	      ATTRIBUTE_DECLARATION     = 1,	   	      ELEMENT_DECLARATION       = 2,	    	      TYPE_DEFINITION           = 3,	    	      ATTRIBUTE_USE             = 4,	   no 	      ATTRIBUTE_GROUP_DEFINITION= 5,	    	      MODEL_GROUP_DEFINITION    = 6,	   	      MODEL_GROUP               = 7,	   no 	      PARTICLE                  = 8,	   no	      WILDCARD                  = 9,	   no	      IDENTITY_CONSTRAINT       = 10,	   no	      NOTATION_DECLARATION      = 11,	    	      ANNOTATION                = 12,	   no 	      FACET                     = 13,      no	      MULTIVALUE_FACET          = 14       no    */    XSNamedMap<XSObject>*                   fComponentMap[XSConstants::MULTIVALUE_FACET];    XMLStringPool*                          fURIStringPool;    XSAnnotationList*                       fXSAnnotationList;    RefHashTableOf<XSNamespaceItem>*        fHashNamespace;    XSObjectFactory*                        fObjFactory;    RefVectorOf<XSNamespaceItem>*           fDeleteNamespace;    XSModel*                                fParent;    bool                                    fDeleteParent;    bool                                    fAddedS4SGrammar;};inline XMLStringPool*  XSModel::getURIStringPool(){    return fURIStringPool;}inline StringList *XSModel::getNamespaces(){    return fNamespaceStringList;}inline XSNamespaceItemList *XSModel::getNamespaceItems(){    return fXSNamespaceItemList;}XERCES_CPP_NAMESPACE_END#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -