knoaman     2003/11/21 09:19:31

  Modified:    c/src/xercesc/framework/psvi XSComplexTypeDefinition.hpp
                        XSComplexTypeDefinition.cpp XSAttributeUse.hpp
                        XSAttributeUse.cpp XSAttributeGroupDefinition.hpp
                        XSAttributeGroupDefinition.cpp
                        XSAttributeDeclaration.hpp
                        XSAttributeDeclaration.cpp
  Log:
  PSVI update.
  
  Revision  Changes    Path
  1.5       +54 -15    
xml-xerces/c/src/xercesc/framework/psvi/XSComplexTypeDefinition.hpp
  
  Index: XSComplexTypeDefinition.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSComplexTypeDefinition.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XSComplexTypeDefinition.hpp       14 Nov 2003 22:47:53 -0000      1.4
  +++ XSComplexTypeDefinition.hpp       21 Nov 2003 17:19:30 -0000      1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/11/21 17:19:30  knoaman
  + * PSVI update.
  + *
    * Revision 1.4  2003/11/14 22:47:53  neilg
    * fix bogus log message from previous commit...
    *
  @@ -94,9 +97,7 @@
   class XSSimpleTypeDefinition;
   class XSParticle;
   class XSWildcard;
  -
   class ComplexTypeInfo;
  -class XMLStringPool;
   
   class XMLPARSER_EXPORT XSComplexTypeDefinition : public XSTypeDefinition
   {
  @@ -137,9 +138,18 @@
         *
         * @param  manager     The configurable memory manager
         */
  -    XSComplexTypeDefinition(ComplexTypeInfo*        complexTypeInfo,
  -                            XSModel*                xsModel,
  -                            MemoryManager* const    manager = 
XMLPlatformUtils::fgMemoryManager);
  +    XSComplexTypeDefinition
  +    (
  +        ComplexTypeInfo* const          complexTypeInfo
  +        , XSWildcard* const             xsWildcard
  +        , XSSimpleTypeDefinition* const xsSimpleType
  +        , XSAttributeUseList* const     xsAttList
  +        , XSTypeDefinition* const       xsBaseType
  +        , XSParticle* const             xsParticle
  +        , XSAnnotation* const           headAnnot
  +        , XSModel* const                xsModel
  +        , MemoryManager* const          manager = XMLPlatformUtils::fgMemoryManager
  +    );
   
       //@};
   
  @@ -175,7 +185,7 @@
       /**
        * Optional.An attribute wildcard. 
        */
  -    XSWildcard *getAttributeWildcard();
  +    XSWildcard *getAttributeWildcard() const;
   
       /**
        * [content type]: one of empty (<code>CONTENTTYPE_EMPTY</code>), a simple 
  @@ -189,13 +199,13 @@
        * A simple type definition corresponding to simple content model, 
        * otherwise <code>null</code> 
        */
  -    XSSimpleTypeDefinition *getSimpleType();
  +    XSSimpleTypeDefinition *getSimpleType() const;
   
       /**
        * A particle for mixed or element-only content model, otherwise 
        * <code>null</code> 
        */
  -    XSParticle *getParticle();
  +    XSParticle *getParticle() const;
   
       /**
        * [prohibited substitutions]: a subset of {extension, restriction}
  @@ -211,7 +221,7 @@
        * <code>DERIVATION_NONE</code> represented as a bit flag (see 
        * <code>XSObject</code>). 
        */
  -    short getProhibitedSubstitutions();
  +    short getProhibitedSubstitutions() const;
   
       /**
        * A set of [annotations]. 
  @@ -270,7 +280,9 @@
   
       //@{
   
  +
       //@}
  +
   private:
   
       // -----------------------------------------------------------------------
  @@ -284,13 +296,40 @@
       // -----------------------------------------------------------------------
       //  data members
       // -----------------------------------------------------------------------
  -    ComplexTypeInfo*            fComplexTypeInfo;
  -    XSWildcard*                 fXSWildcard;
  -    XSAttributeUseList*         fXSAttributeUseList;
  -    XSSimpleTypeDefinition*     fXSSimpleTypeDefinition;
  -    XSAnnotationList*           fXSAnnotationList;
  -    short                       fProhibitedSubstitution;
  +    ComplexTypeInfo*        fComplexTypeInfo;
  +    XSWildcard*             fXSWildcard;
  +    XSAttributeUseList*     fXSAttributeUseList;
  +    XSSimpleTypeDefinition* fXSSimpleTypeDefinition;
  +    XSAnnotationList*       fXSAnnotationList;
  +    XSParticle*             fParticle;
  +    short                   fProhibitedSubstitution;
   };
  +
  +
  +inline XSAttributeUseList* XSComplexTypeDefinition::getAttributeUses()
  +{
  +    return fXSAttributeUseList;
  +}
  +
  +inline XSWildcard* XSComplexTypeDefinition::getAttributeWildcard() const
  +{
  +    return fXSWildcard;
  +}
  +
  +inline XSSimpleTypeDefinition* XSComplexTypeDefinition::getSimpleType() const
  +{
  +    return fXSSimpleTypeDefinition;
  +}
  +
  +inline short XSComplexTypeDefinition::getProhibitedSubstitutions() const
  +{
  +    return fProhibitedSubstitution;
  +}
  +
  +inline XSParticle *XSComplexTypeDefinition::getParticle() const
  +{
  +    return fParticle;
  +}
   
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.6       +51 -168   
xml-xerces/c/src/xercesc/framework/psvi/XSComplexTypeDefinition.cpp
  
  Index: XSComplexTypeDefinition.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSComplexTypeDefinition.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- XSComplexTypeDefinition.cpp       14 Nov 2003 22:47:53 -0000      1.5
  +++ XSComplexTypeDefinition.cpp       21 Nov 2003 17:19:30 -0000      1.6
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.6  2003/11/21 17:19:30  knoaman
  + * PSVI update.
  + *
    * Revision 1.5  2003/11/14 22:47:53  neilg
    * fix bogus log message from previous commit...
    *
  @@ -77,98 +80,63 @@
    */
   
   #include <xercesc/framework/psvi/XSComplexTypeDefinition.hpp>
  -#include <xercesc/validators/schema/ComplexTypeInfo.hpp>
  -#include <xercesc/validators/schema/SchemaElementDecl.hpp>
  -#include <xercesc/validators/schema/SchemaAttDefList.hpp>
   #include <xercesc/framework/psvi/XSWildcard.hpp>
   #include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
   #include <xercesc/framework/psvi/XSAttributeUse.hpp>
  +#include <xercesc/framework/psvi/XSModel.hpp>
   #include <xercesc/framework/psvi/XSAnnotation.hpp>
  +#include <xercesc/validators/schema/ComplexTypeInfo.hpp>
  +#include <xercesc/validators/schema/SchemaElementDecl.hpp>
  +#include <xercesc/validators/schema/SchemaAttDefList.hpp>
  +
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  -XSComplexTypeDefinition::XSComplexTypeDefinition(ComplexTypeInfo*       
complexTypeInfo,
  -                                                 XSModel*               xsModel,
  -                                                 MemoryManager* const   manager ):  
  -        fComplexTypeInfo(complexTypeInfo),
  -        fXSWildcard(0),
  -        fXSAttributeUseList(0),
  -        fXSSimpleTypeDefinition(0),
  -        fProhibitedSubstitution(0),
  -        fXSAnnotationList(0),
  -        XSTypeDefinition(COMPLEX_TYPE, xsModel, manager)
  +// ---------------------------------------------------------------------------
  +//  XSComplexTypeDefinition: Constructors and Destructor
  +// ---------------------------------------------------------------------------
  +XSComplexTypeDefinition::XSComplexTypeDefinition
  +(
  +    ComplexTypeInfo* const          complexTypeInfo
  +    , XSWildcard* const             xsWildcard
  +    , XSSimpleTypeDefinition* const xsSimpleType
  +    , XSAttributeUseList* const     xsAttList
  +    , XSTypeDefinition* const       xsBaseType
  +    , XSParticle* const             xsParticle
  +    , XSAnnotation* const           headAnnot
  +    , XSModel* const                xsModel
  +    , MemoryManager* const          manager
  +)
  +    : XSTypeDefinition(COMPLEX_TYPE, xsBaseType, xsModel, manager)
  +    , fComplexTypeInfo(complexTypeInfo)
  +    , fXSWildcard(xsWildcard)
  +    , fXSAttributeUseList(xsAttList)
  +    , fXSSimpleTypeDefinition(xsSimpleType)
  +    , fXSAnnotationList(0)
  +    , fParticle(xsParticle)
  +    , fProhibitedSubstitution(0)
   {
  -    int blockset;
  -    if (blockset = fComplexTypeInfo->getBlockSet()) 
  +    int blockset = fComplexTypeInfo->getBlockSet();
  +    if (blockset)
       {
           if (blockset & SchemaSymbols::XSD_EXTENSION)
  -        {
               fProhibitedSubstitution |= XSConstants::DERIVATION_EXTENSION;
  -        }
  +
           if (blockset & SchemaSymbols::XSD_RESTRICTION)
  -        {
               fProhibitedSubstitution |= XSConstants::DERIVATION_RESTRICTION;
  -        }
  -    }
  -
  -    if (fComplexTypeInfo->getAttWildCard()) 
  -    {       
  -        fXSWildcard = (XSWildcard*) 
getObjectFromMap(fComplexTypeInfo->getAttWildCard());
  -        if (!fXSWildcard)
  -        {
  -            fXSWildcard = new (manager) 
XSWildcard(fComplexTypeInfo->getAttWildCard(), fXSModel, manager);
  -            putObjectInMap((void*)fComplexTypeInfo->getAttWildCard(), fXSWildcard);
  -        }
  -    }
  -
  -    if ((fComplexTypeInfo->getContentType() == SchemaElementDecl::Simple) &&
  -        (fComplexTypeInfo->getDatatypeValidator()))
  -    {
  -        fXSSimpleTypeDefinition = (XSSimpleTypeDefinition*) getObjectFromMap((void 
*)fComplexTypeInfo->getDatatypeValidator());
  -        if (!fXSSimpleTypeDefinition)
  -        {
  -            fXSSimpleTypeDefinition = new (manager) 
XSSimpleTypeDefinition(fComplexTypeInfo->getDatatypeValidator(), fXSModel, manager);
  -            putObjectInMap((void *)fComplexTypeInfo->getDatatypeValidator(), 
fXSSimpleTypeDefinition);
  -        }
       }
   
  -    if (fComplexTypeInfo->hasAttDefs())
  +    if (headAnnot)
       {
  -        SchemaAttDefList& schemaAttDefList = (SchemaAttDefList&) 
fComplexTypeInfo->getAttDefList();
  -        // REVISIT: size of vector...
  -        fXSAttributeUseList = new (manager) RefVectorOf <XSAttributeUse> (10, 
false, manager);
  -            
  -        for(unsigned int i=0; i<schemaAttDefList.getAttDefCount(); i++)
  -        {
  -            SchemaAttDef& attDef = (SchemaAttDef&) schemaAttDefList.getAttDef(i);
  -            XSAttributeUse* attrUse = (XSAttributeUse*) 
getObjectFromMap((void*)&attDef);
  -            if (!attrUse)
  -            {
  -                attrUse = new (manager) XSAttributeUse(&attDef, fXSModel, manager);
  -                putObjectInMap((void*)&attDef, attrUse);
  -            }
  -            fXSAttributeUseList->addElement(attrUse);
  -        }
  -    }
  +        // REVISIT Size
  +        fXSAnnotationList = new (manager) RefVectorOf<XSAnnotation>(3, false, 
manager);
  +        XSAnnotation* annot = headAnnot;
   
  -    // compute fBase
  -    if (fComplexTypeInfo->getBaseComplexTypeInfo())
  -    {
  -        fBaseType = (XSTypeDefinition*) 
getObjectFromMap(fComplexTypeInfo->getBaseComplexTypeInfo());
  -        if (!fBaseType)
  -        {
  -            fBaseType = new (fMemoryManager) 
XSComplexTypeDefinition(fComplexTypeInfo->getBaseComplexTypeInfo(), fXSModel, 
fMemoryManager);
  -            putObjectInMap((void*)fComplexTypeInfo->getBaseComplexTypeInfo(), 
fBaseType);
  -        }
  -    }
  -    else if (fComplexTypeInfo->getBaseDatatypeValidator())
  -    {
  -        fBaseType = (XSTypeDefinition*) 
getObjectFromMap(fComplexTypeInfo->getBaseDatatypeValidator());
  -        if (!fBaseType)
  +        do
           {
  -             fBaseType = new (fMemoryManager) 
XSSimpleTypeDefinition(fComplexTypeInfo->getBaseDatatypeValidator(), fXSModel, 
fMemoryManager);
  -             putObjectInMap((void*)fComplexTypeInfo->getBaseDatatypeValidator(), 
fBaseType);
  -        }
  +            fXSAnnotationList->addElement(annot);
  +            annot = annot->getNext();        
  +        } while (annot);
       }
   }
   
  @@ -177,22 +145,15 @@
       // don't delete fXSWildcard - deleted by XSModel
       // don't delete fXSSimpleTypeDefinition - deleted by XSModel
       if (fXSAttributeUseList)
  -    {
           delete fXSAttributeUseList;
  -    }
  +
       if (fXSAnnotationList)
  -    {
           delete fXSAnnotationList;
  -    }
   }
   
  -// XSComplexTypeDefinition methods
  -
  -/**
  - * [derivation method]: either <code>DERIVATION_EXTENSION</code>, 
  - * <code>DERIVATION_RESTRICTION</code>, or <code>DERIVATION_NONE</code> 
  - * (see <code>XSObject</code>). 
  - */
  +// ---------------------------------------------------------------------------
  +//  XSComplexTypeDefinition: access methods
  +// ---------------------------------------------------------------------------
   XSConstants::DERIVATION_TYPE XSComplexTypeDefinition::getDerivationMethod() const
   {
       switch(fComplexTypeInfo->getDerivedBy()) {
  @@ -205,38 +166,12 @@
       }
   }
   
  -/**
  - * [abstract]: a boolean. Complex types for which <code>abstract</code> is 
  - * true must not be used as the type definition for the validation of 
  - * element information items. 
  - */
   bool XSComplexTypeDefinition::getAbstract() const
   {
       return fComplexTypeInfo->getAbstract();
   }
   
  -/**
  - *  A set of attribute uses. 
  - */
  -XSAttributeUseList *XSComplexTypeDefinition::getAttributeUses()
  -{
  -    return fXSAttributeUseList;
  -}
  -
  -/**
  - * Optional.An attribute wildcard. 
  - */
  -XSWildcard *XSComplexTypeDefinition::getAttributeWildcard()
  -{
  -    return fXSWildcard;
  -}
   
  -/**
  - * [content type]: one of empty (<code>CONTENTTYPE_EMPTY</code>), a simple 
  - * type definition (<code>CONTENTTYPE_SIMPLE</code>), mixed (
  - * <code>CONTENTTYPE_MIXED</code>), or element-only (
  - * <code>CONTENTTYPE_ELEMENT</code>). 
  - */
   XSComplexTypeDefinition::CONTENT_TYPE XSComplexTypeDefinition::getContentType() 
const
   {
       switch(fComplexTypeInfo->getContentType()) {
  @@ -254,74 +189,22 @@
       }
   }
   
  -/**
  - * A simple type definition corresponding to simple content model, 
  - * otherwise <code>null</code> 
  - */
  -XSSimpleTypeDefinition *XSComplexTypeDefinition::getSimpleType()
  -{
  -    return fXSSimpleTypeDefinition;
  -}
  -
  -/**
  - * A particle for mixed or element-only content model, otherwise 
  - * <code>null</code> 
  - */
  -XSParticle *XSComplexTypeDefinition::getParticle()
  -{
  -    // REVISIT
  -    return 0;
  -}
  -
  -/**
  - * [prohibited substitutions]: a subset of {extension, restriction}
  - * @param restriction  Extention or restriction constants (see 
  - *   <code>XSObject</code>). 
  - * @return True if toTest is a prohibited substitution, otherwise 
  - *   false.
  - */
   bool XSComplexTypeDefinition::isProhibitedSubstitution(XSConstants::DERIVATION_TYPE 
toTest)                                                     
   {
       if (fProhibitedSubstitution & toTest)
  -    {
           return true;
  -    }
  -    return false;
  -}
   
  -/**
  - *  [prohibited substitutions]: A subset of {extension, restriction} or 
  - * <code>DERIVATION_NONE</code> represented as a bit flag (see 
  - * <code>XSObject</code>). 
  - */
  -short XSComplexTypeDefinition::getProhibitedSubstitutions()
  -{
  -    return fProhibitedSubstitution;
  +    return false;
   }
   
  -/**
  - * A set of [annotations]. 
  - */
   XSAnnotationList *XSComplexTypeDefinition::getAnnotations()
   {    
  -    if (fXSAnnotationList)
  -    {
  -        return fXSAnnotationList;    
  -    }
  -    // REVISIT Size
  -    fXSAnnotationList = new (fMemoryManager) RefVectorOf <XSAnnotation> (3, false, 
fMemoryManager);
  -    XSAnnotation* annot = getAnnotationFromModel(fComplexTypeInfo);
  -    while (annot)
  -    {
  -        fXSAnnotationList->addElement(annot);
  -        annot = annot->getNext();        
  -    }
       return fXSAnnotationList;
   }
   
  -/**
  - * virtual function from XSTypeDefinition
  - */
  +// ---------------------------------------------------------------------------
  +//  XSComplexTypeDefinition: virtual methods
  +// ---------------------------------------------------------------------------
   const XMLCh *XSComplexTypeDefinition::getName() 
   {
       return fComplexTypeInfo->getTypeLocalName();
  @@ -334,7 +217,7 @@
   
   XSNamespaceItem *XSComplexTypeDefinition::getNamespaceItem() 
   {
  -    return getNamespaceItemFromHash(getNamespace());
  +    return fXSModel->getNamespaceItem(getNamespace());
   }
   
   bool XSComplexTypeDefinition::getAnonymous() const
  
  
  
  1.5       +17 -9     xml-xerces/c/src/xercesc/framework/psvi/XSAttributeUse.hpp
  
  Index: XSAttributeUse.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSAttributeUse.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XSAttributeUse.hpp        14 Nov 2003 22:47:53 -0000      1.4
  +++ XSAttributeUse.hpp        21 Nov 2003 17:19:30 -0000      1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/11/21 17:19:30  knoaman
  + * PSVI update.
  + *
    * Revision 1.4  2003/11/14 22:47:53  neilg
    * fix bogus log message from previous commit...
    *
  @@ -90,9 +93,6 @@
   // forward declarations
   class XSAttributeDeclaration;
   
  -class SchemaAttDef;
  -class XMLStringPool;
  -
   class XMLPARSER_EXPORT XSAttributeUse : public XSObject
   {
   public:
  @@ -107,9 +107,12 @@
         *
         * @param  manager     The configurable memory manager
         */
  -    XSAttributeUse(SchemaAttDef*            attDef,
  -                XSModel*                    xsModel,
  -                MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
  +    XSAttributeUse
  +    (
  +        XSAttributeDeclaration* const xsAttDecl,
  +        XSModel* const xsModel,
  +        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
  +    );
   
       //@};
   
  @@ -134,7 +137,7 @@
        * [attribute declaration]: provides the attribute declaration itself, 
        * which will in turn determine the simple type definition used. 
        */
  -    XSAttributeDeclaration *getAttrDeclaration();
  +    XSAttributeDeclaration *getAttrDeclaration() const;
   
       /**
        * Value Constraint: one of default, fixed. 
  @@ -168,9 +171,14 @@
       // -----------------------------------------------------------------------
       //  data members
       // -----------------------------------------------------------------------
  -    SchemaAttDef*               fAttDef;
  -    XSAttributeDeclaration*     fXSAttributeDeclaration;
  +    XSAttributeDeclaration* fXSAttributeDeclaration;
   };
  +
  +inline XSAttributeDeclaration *XSAttributeUse::getAttrDeclaration() const
  +{
  +    return fXSAttributeDeclaration;
  +}
  +
   
   XERCES_CPP_NAMESPACE_END
   
  
  
  
  1.5       +17 -51    xml-xerces/c/src/xercesc/framework/psvi/XSAttributeUse.cpp
  
  Index: XSAttributeUse.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSAttributeUse.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XSAttributeUse.cpp        14 Nov 2003 22:47:53 -0000      1.4
  +++ XSAttributeUse.cpp        21 Nov 2003 17:19:30 -0000      1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/11/21 17:19:30  knoaman
  + * PSVI update.
  + *
    * Revision 1.4  2003/11/14 22:47:53  neilg
    * fix bogus log message from previous commit...
    *
  @@ -75,22 +78,18 @@
   
   #include <xercesc/framework/psvi/XSAttributeUse.hpp>
   #include <xercesc/framework/psvi/XSAttributeDeclaration.hpp>
  -#include <xercesc/validators/schema/SchemaAttDef.hpp>
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  -XSAttributeUse::XSAttributeUse(SchemaAttDef*            attDef,
  -                               XSModel*                 xsModel,
  -                               MemoryManager * const    manager):
  -    fAttDef(attDef),
  -    XSObject(XSConstants::ATTRIBUTE_USE, xsModel, manager )
  +// ---------------------------------------------------------------------------
  +//  XSAttributeUse: Constructors and Destructor
  +// ---------------------------------------------------------------------------
  +XSAttributeUse::XSAttributeUse(XSAttributeDeclaration* const xsAttDecl,
  +                               XSModel* const xsModel,
  +                               MemoryManager* const manager)
  +    : XSObject(XSConstants::ATTRIBUTE_USE, xsModel, manager)
  +    , fXSAttributeDeclaration(xsAttDecl)
   {
  -    fXSAttributeDeclaration = (XSAttributeDeclaration*) getObjectFromMap(fAttDef);
  -    if (!fXSAttributeDeclaration)
  -    {
  -        fXSAttributeDeclaration = new (manager) XSAttributeDeclaration(fAttDef, 
xsModel, manager);
  -        putObjectInMap((void*)fAttDef, fXSAttributeDeclaration);
  -    }
   }
   
   
  @@ -101,55 +100,22 @@
   // XSAttributeUse methods
   
   
  -/**
  - * [required]: determines whether this use of an attribute declaration 
  - * requires an appropriate attribute information item to be present, or 
  - * merely allows it. 
  - */
  +// ---------------------------------------------------------------------------
  +//  XSAttributeUse: access methods
  +// ---------------------------------------------------------------------------
   bool XSAttributeUse::getRequired() const
   {
  -    if (fAttDef->getDefaultType() == XMLAttDef::Required ||
  -        fAttDef->getDefaultType() == XMLAttDef::Required_And_Fixed)
  -    {
  -        return true;
  -    }
  -    return false;
  -}
  -
  -/**
  - * [attribute declaration]: provides the attribute declaration itself, 
  - * which will in turn determine the simple type definition used. 
  - */
  -XSAttributeDeclaration *XSAttributeUse::getAttrDeclaration()
  -{
  -    return fXSAttributeDeclaration;
  +    return fXSAttributeDeclaration->getRequired();
   }
   
  -/**
  - * Value Constraint: one of default, fixed. 
  - */
   XSConstants::VALUE_CONSTRAINT XSAttributeUse::getConstraintType() const
   {
  -    // REVISIT: same as XSAttributeDeclaration????
  -    if (fAttDef->getDefaultType() & XMLAttDef::Default)
  -    {
  -        return XSConstants::VC_DEFAULT;
  -    }
  -    if (fAttDef->getDefaultType() & XMLAttDef::Fixed ||
  -        fAttDef->getDefaultType() & XMLAttDef::Required_And_Fixed)
  -    {
  -        return XSConstants::VC_FIXED;
  -    }
  -    return XSConstants::VC_NONE;
  +    return fXSAttributeDeclaration->getConstraintType();
   }
   
  -/**
  - * Value Constraint: The actual value. 
  - */
   const XMLCh *XSAttributeUse::getConstraintValue()
   {
  -    // REVISIT: same as XSAttributeDeclaration????
  -    return fAttDef->getValue();
  +    return fXSAttributeDeclaration->getConstraintValue();
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.5       +30 -7     
xml-xerces/c/src/xercesc/framework/psvi/XSAttributeGroupDefinition.hpp
  
  Index: XSAttributeGroupDefinition.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSAttributeGroupDefinition.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XSAttributeGroupDefinition.hpp    14 Nov 2003 22:47:53 -0000      1.4
  +++ XSAttributeGroupDefinition.hpp    21 Nov 2003 17:19:30 -0000      1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/11/21 17:19:30  knoaman
  + * PSVI update.
  + *
    * Revision 1.4  2003/11/14 22:47:53  neilg
    * fix bogus log message from previous commit...
    *
  @@ -91,9 +94,7 @@
   class XSAnnotation;
   class XSAttributeUse;
   class XSWildcard;
  -
   class XercesAttGroupInfo;
  -class XMLStringPool;
   
   class XMLPARSER_EXPORT XSAttributeGroupDefinition : public XSObject
   {
  @@ -109,9 +110,15 @@
         *
         * @param  manager     The configurable memory manager
         */
  -    XSAttributeGroupDefinition(XercesAttGroupInfo* xercesAttGroupInfo,
  -                XSModel*             xsModel,
  -                MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
  +    XSAttributeGroupDefinition
  +    (
  +        XercesAttGroupInfo* const   xercesAttGroupInfo
  +        , XSAttributeUseList* const xsAttList
  +        , XSWildcard* const         xsWildcard
  +        , XSAnnotation* const       xsAnnot
  +        , XSModel* const            xsModel
  +        , MemoryManager* const      manager = XMLPlatformUtils::fgMemoryManager
  +    );
   
       //@};
   
  @@ -133,12 +140,12 @@
       /**
        * Optional. A [wildcard]. 
        */
  -    XSWildcard *getAttributeWildcard();
  +    XSWildcard *getAttributeWildcard() const;
   
       /**
        * Optional. An [annotation]. 
        */
  -    XSAnnotation *getAnnotation();
  +    XSAnnotation *getAnnotation() const;
   
       //@}
   
  @@ -164,7 +171,23 @@
       XercesAttGroupInfo*     fXercesAttGroupInfo;
       XSAttributeUseList*     fXSAttributeUseList;
       XSWildcard*             fXSWildcard;
  +    XSAnnotation*           fAnnotation;
   };
  +
  +inline XSAttributeUseList* XSAttributeGroupDefinition::getAttributeUses()
  +{
  +    return fXSAttributeUseList;
  +}
  +
  +inline XSWildcard* XSAttributeGroupDefinition::getAttributeWildcard() const
  +{
  +    return fXSWildcard;
  +}
  +
  +inline XSAnnotation* XSAttributeGroupDefinition::getAnnotation() const
  +{
  +    return fAnnotation;
  +}
   
   XERCES_CPP_NAMESPACE_END
   
  
  
  
  1.5       +22 -61    
xml-xerces/c/src/xercesc/framework/psvi/XSAttributeGroupDefinition.cpp
  
  Index: XSAttributeGroupDefinition.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSAttributeGroupDefinition.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XSAttributeGroupDefinition.cpp    14 Nov 2003 22:47:53 -0000      1.4
  +++ XSAttributeGroupDefinition.cpp    21 Nov 2003 17:19:30 -0000      1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/11/21 17:19:30  knoaman
  + * PSVI update.
  + *
    * Revision 1.4  2003/11/14 22:47:53  neilg
    * fix bogus log message from previous commit...
    *
  @@ -74,81 +77,39 @@
    */
   
   #include <xercesc/framework/psvi/XSAttributeGroupDefinition.hpp>
  -#include <xercesc/validators/schema/XercesAttGroupInfo.hpp>
   #include <xercesc/framework/psvi/XSAttributeUse.hpp>
  -#include <xercesc/framework/psvi/XSWildcard.hpp>
  +#include <xercesc/validators/schema/XercesAttGroupInfo.hpp>
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  -XSAttributeGroupDefinition::XSAttributeGroupDefinition(XercesAttGroupInfo*  
xercesAttGroupInfo,
  -                                                       XSModel*             xsModel,
  -                                                       MemoryManager * const 
manager):
  -    fXercesAttGroupInfo(xercesAttGroupInfo),
  -    fXSAttributeUseList(0),
  -    fXSWildcard(0),
  -    XSObject(XSConstants::ATTRIBUTE_GROUP_DEFINITION, xsModel, manager )
  +// ---------------------------------------------------------------------------
  +//  XSAttributeGroupDefinition: Constructors and Destructor
  +// ---------------------------------------------------------------------------
  +XSAttributeGroupDefinition::XSAttributeGroupDefinition
  +(
  +    XercesAttGroupInfo* const   xercesAttGroupInfo
  +    , XSAttributeUseList* const xsAttList
  +    , XSWildcard* const         xsWildcard
  +    , XSAnnotation* const       xsAnnot
  +    , XSModel* const            xsModel
  +    , MemoryManager * const     manager
  +)
  +    : XSObject(XSConstants::ATTRIBUTE_GROUP_DEFINITION, xsModel, manager)
  +    , fXercesAttGroupInfo(xercesAttGroupInfo)
  +    , fXSAttributeUseList(xsAttList)
  +    , fXSWildcard(xsWildcard)
  +    , fAnnotation(xsAnnot)
   {
  -    unsigned int attCount = fXercesAttGroupInfo->attributeCount();
  -    if (attCount)
  -    {
  -        fXSAttributeUseList = new (manager) RefVectorOf <XSAttributeUse> (attCount, 
false, manager);
  -        for (unsigned int i=0; i < attCount; i++) 
  -        {
  -            XSAttributeUse* attrUse = (XSAttributeUse*) 
getObjectFromMap((void*)fXercesAttGroupInfo->attributeAt(i));
  -            if (!attrUse)
  -            {
  -                attrUse = new (manager) 
XSAttributeUse(fXercesAttGroupInfo->attributeAt(i), fXSModel, manager);
  -                putObjectInMap((void*)fXercesAttGroupInfo->attributeAt(i), attrUse);
  -            }
  -            fXSAttributeUseList->addElement(attrUse);
  -        }
  -    }
  -    
  -    if (fXercesAttGroupInfo->getCompleteWildCard()) 
  -    {
  -        fXSWildcard = (XSWildcard*) 
getObjectFromMap(fXercesAttGroupInfo->getCompleteWildCard());
  -        if (!fXSWildcard)
  -        {
  -            fXSWildcard = new (manager) 
XSWildcard(fXercesAttGroupInfo->getCompleteWildCard(), fXSModel, manager);
  -            putObjectInMap((void*)fXercesAttGroupInfo->getCompleteWildCard(), 
fXSWildcard);
  -        }
  -    }
   }
   
   XSAttributeGroupDefinition::~XSAttributeGroupDefinition()
   {
       if (fXSAttributeUseList)
  -    {
           delete fXSAttributeUseList;
  -    }
  -    // don't delete fXSWildcard - deleted by XSModel
  -}
  -
  -// XSAttributeGroupDefinition methods
   
  -/**
  - * A set of [attribute uses]. 
  - */
  -XSAttributeUseList *XSAttributeGroupDefinition::getAttributeUses()
  -{
  -    return fXSAttributeUseList;
  -}
  -
  -/**
  - * Optional. A [wildcard]. 
  - */
  -XSWildcard *XSAttributeGroupDefinition::getAttributeWildcard()
  -{
  -    return fXSWildcard;
  +    // don't delete fXSWildcard - deleted by XSModel
   }
   
  -/**
  - * Optional. An [annotation]. 
  - */
  -XSAnnotation *XSAttributeGroupDefinition::getAnnotation()
  -{    
  -    return getAnnotationFromModel(fXercesAttGroupInfo);
  -}
   
   XERCES_CPP_NAMESPACE_END
   
  
  
  
  1.5       +36 -7     
xml-xerces/c/src/xercesc/framework/psvi/XSAttributeDeclaration.hpp
  
  Index: XSAttributeDeclaration.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSAttributeDeclaration.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XSAttributeDeclaration.hpp        14 Nov 2003 22:47:53 -0000      1.4
  +++ XSAttributeDeclaration.hpp        21 Nov 2003 17:19:30 -0000      1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/11/21 17:19:30  knoaman
  + * PSVI update.
  + *
    * Revision 1.4  2003/11/14 22:47:53  neilg
    * fix bogus log message from previous commit...
    *
  @@ -91,9 +94,7 @@
   class XSAnnotation;
   class XSComplexTypeDefinition;
   class XSSimpleTypeDefinition;
  -
   class SchemaAttDef;
  -class XMLStringPool;
   
   class XMLPARSER_EXPORT XSAttributeDeclaration : public XSObject
   {
  @@ -109,9 +110,14 @@
         *
         * @param  manager     The configurable memory manager
         */
  -    XSAttributeDeclaration(SchemaAttDef*            attDef,
  -                XSModel*                            xsModel,
  -                MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
  +    XSAttributeDeclaration
  +    (
  +        SchemaAttDef* const             attDef
  +        , XSSimpleTypeDefinition* const typeDef
  +        , XSAnnotation* const           annot
  +        , XSModel* const                xsModel
  +        , MemoryManager* const          manager = XMLPlatformUtils::fgMemoryManager
  +    );
   
       //@};
   
  @@ -160,7 +166,7 @@
       /**
        * [type definition]: A simple type definition 
        */
  -    XSSimpleTypeDefinition *getTypeDefinition();
  +    XSSimpleTypeDefinition *getTypeDefinition() const;
   
       /**
        * Optional. One of <code>SCOPE_GLOBAL</code>, <code>SCOPE_LOCAL</code>, 
  @@ -189,7 +195,7 @@
       /**
        * Optional. Annotation. 
        */
  -    XSAnnotation *getAnnotation();
  +    XSAnnotation *getAnnotation() const;
   
       //@}
   
  @@ -201,6 +207,8 @@
         * Set the id to be returned on getId().
         */
       void setId(unsigned int id);
  +
  +    bool getRequired() const;
       //@}
   
   private:
  @@ -218,8 +226,29 @@
       // -----------------------------------------------------------------------
       SchemaAttDef*               fAttDef;
       XSSimpleTypeDefinition*     fTypeDefinition;
  +    XSAnnotation*               fAnnotation;
       unsigned int                fId;
   };
  +
  +// ---------------------------------------------------------------------------
  +//  XSAttributeDeclaration: inline methods
  +// ---------------------------------------------------------------------------
  +inline XSSimpleTypeDefinition* XSAttributeDeclaration::getTypeDefinition() const
  +{
  +    return fTypeDefinition;
  +}
  +
  +inline void XSAttributeDeclaration::setId(unsigned int id)
  +{
  +    fId = id;
  +}
  +
  +inline XSAnnotation *XSAttributeDeclaration::getAnnotation() const
  +{
  +    return fAnnotation;
  +}
  +
  +
   
   XERCES_CPP_NAMESPACE_END
   
  
  
  
  1.6       +36 -68    
xml-xerces/c/src/xercesc/framework/psvi/XSAttributeDeclaration.cpp
  
  Index: XSAttributeDeclaration.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSAttributeDeclaration.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- XSAttributeDeclaration.cpp        14 Nov 2003 22:47:53 -0000      1.5
  +++ XSAttributeDeclaration.cpp        21 Nov 2003 17:19:30 -0000      1.6
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.6  2003/11/21 17:19:30  knoaman
  + * PSVI update.
  + *
    * Revision 1.5  2003/11/14 22:47:53  neilg
    * fix bogus log message from previous commit...
    *
  @@ -77,39 +80,37 @@
    */
   
   #include <xercesc/framework/psvi/XSAttributeDeclaration.hpp>
  -#include <xercesc/validators/schema/SchemaAttDef.hpp>
  -#include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
  -#include <xercesc/util/QName.hpp>
  -#include <xercesc/util/StringPool.hpp>
   #include <xercesc/framework/psvi/XSModel.hpp>
   #include <xercesc/framework/psvi/XSNamespaceItem.hpp>
  +#include <xercesc/util/StringPool.hpp>
   #include <xercesc/validators/schema/SchemaGrammar.hpp>
  +#include <xercesc/validators/schema/SchemaAttDef.hpp>
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  -XSAttributeDeclaration::XSAttributeDeclaration(SchemaAttDef*            attDef,
  -                                               XSModel*                 xsModel,
  -                                               MemoryManager * const    manager):
  -    fAttDef(attDef),
  -    fTypeDefinition(0),
  -    XSObject(XSConstants::ATTRIBUTE_DECLARATION, xsModel, manager)
  -{
  -    if (fAttDef->getDatatypeValidator())
  -    {
  -        fTypeDefinition = (XSSimpleTypeDefinition*) getObjectFromMap((void 
*)fAttDef->getDatatypeValidator());
  -        if (!fTypeDefinition)
  -        {
  -            fTypeDefinition = new (manager) 
XSSimpleTypeDefinition(fAttDef->getDatatypeValidator(), fXSModel, manager);
  -            putObjectInMap((void *)fAttDef->getDatatypeValidator(), 
fTypeDefinition);
  -        }
  -    }
  +// ---------------------------------------------------------------------------
  +//  XSAttributeDeclaration: Constructors and Destructor
  +// ---------------------------------------------------------------------------
  +XSAttributeDeclaration::XSAttributeDeclaration(SchemaAttDef* const           attDef,
  +                                               XSSimpleTypeDefinition* const 
typeDef,
  +                                               XSAnnotation* const           annot,
  +                                               XSModel* const                
xsModel,
  +                                               MemoryManager * const         
manager)
  +    : XSObject(XSConstants::ATTRIBUTE_DECLARATION, xsModel, manager)
  +    , fAttDef(attDef)
  +    , fTypeDefinition(typeDef)
  +    , fAnnotation(annot)
  +{
   }
   
   XSAttributeDeclaration::~XSAttributeDeclaration() 
   {
       // don't delete fTypeDefinition - deleted by XSModel
   }
  -// XSObject methods
  +
  +// ---------------------------------------------------------------------------
  +//  XSAttributeDeclaration: XSObject virtual methods
  +// ---------------------------------------------------------------------------
   const XMLCh *XSAttributeDeclaration::getName() 
   {
       return fAttDef->getAttName()->getLocalPart();
  @@ -122,24 +123,18 @@
   
   XSNamespaceItem *XSAttributeDeclaration::getNamespaceItem() 
   {
  -    return getNamespaceItemFromHash(getNamespace());
  +    return fXSModel->getNamespaceItem(getNamespace());
   }
   
  -// XSAttributeDeclaration methods
  -
  -/**
  - * [type definition]: A simple type definition 
  - */
  -XSSimpleTypeDefinition *XSAttributeDeclaration::getTypeDefinition()
  +unsigned int XSAttributeDeclaration::getId() const
   {
  -    return fTypeDefinition;
  +    return fId;
   }
   
  -/**
  - * Optional. One of <code>SCOPE_GLOBAL</code>, <code>SCOPE_LOCAL</code>, 
  - * or <code>SCOPE_ABSENT</code>. If the scope is local, then the 
  - * <code>enclosingCTDefinition</code> is present. 
  - */
  +
  +// ---------------------------------------------------------------------------
  +//  XSAttributeDeclaration: access methods
  +// ---------------------------------------------------------------------------
   XSConstants::SCOPE XSAttributeDeclaration::getScope() const
   {   
       // REVISIT: review... what about SCOPE_ABSENT?
  @@ -149,64 +144,37 @@
       if (((XSAttributeDeclaration*) 
this)->getNamespaceItem()->getSchemaGrammar()->getAttributeDeclRegistry()->get(fAttDef))
           return XSConstants::SCOPE_GLOBAL;
       return XSConstants::SCOPE_LOCAL;
  -
   }
   
  -/**
  - * The complex type definition for locally scoped declarations (see 
  - * <code>scope</code>). 
  - */
   XSComplexTypeDefinition *XSAttributeDeclaration::getEnclosingCTDefinition()
   {
  -    // REVISIT
       return 0;
   }
   
  -/**
  - * Value constraint: one of <code>VC_NONE, VC_DEFAULT, VC_FIXED</code>. 
  - */
   XSConstants::VALUE_CONSTRAINT XSAttributeDeclaration::getConstraintType() const
   {
       if (fAttDef->getDefaultType() & XMLAttDef::Default)
  -    {
           return XSConstants::VC_DEFAULT;
  -    }
  +
       if (fAttDef->getDefaultType() & XMLAttDef::Fixed ||
           fAttDef->getDefaultType() & XMLAttDef::Required_And_Fixed)
  -    {
           return XSConstants::VC_FIXED;
  -    }
  +
       return XSConstants::VC_NONE;
   }
   
  -/**
  - * Value constraint: The actual value with respect to the [type definition
  - * ]. 
  - */
   const XMLCh *XSAttributeDeclaration::getConstraintValue()
   {
       return fAttDef->getValue();
   }
   
  -/**
  - * Optional. Annotation. 
  - */
  -XSAnnotation *XSAttributeDeclaration::getAnnotation()
  +bool XSAttributeDeclaration::getRequired() const
   {
  -    return getAnnotationFromModel(fAttDef);
  -}
  +    if (fAttDef->getDefaultType() == XMLAttDef::Required ||
  +        fAttDef->getDefaultType() == XMLAttDef::Required_And_Fixed)
  +        return true;
   
  -/**
  - * Process Id
  - */ 
  -void XSAttributeDeclaration::setId(unsigned int id)
  -{
  -    fId = id;
  -}
  -
  -unsigned int XSAttributeDeclaration::getId() const
  -{
  -    return fId;
  +    return false;
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to