📄 xsmodel.hpp
字号:
/** * 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 + -