SOL9 2.0 Class: SchemaAttribute

 SOL9 C++ Class Library  SOL9 Samples  SOL9 Tutorial  SOL9 FAQ  SOL9 ClassTree 

Source code

/*
 * SchemaAttribute.h 
 * Copyright (c) 2011 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. 
 */


// SOL9
// 2011/02/06
#pragma once

#include <sol/xml/SchemaItem.h>
#include <sol/xml/SOMItemType.h>

namespace SOL {

class SchemaAttribute : public SchemaItem
{
public:
    SchemaSchemaAttribute(MSXML2::ISchemaAttributePtr pAttr)
    :SchemaItem((MSXML2::ISchemaItemPtr)pAttr)
    {
    }
public:
    MSXML2::ISchemaAttributePtr getAttributePtr()
    {
        return(MSXML2::ISchemaAttributePtr)SchemaItem::getItemPtr();
    }
    
    MSXML2::ISchemaTypePtr getType()
    {
        return getAttributePtr()->Gettype();
    }
    
    MSXML2::ISchemaComplexTypePtr getScope()
    {
        return getAttributePtr()->Getscope();
    }
    
    _bstr_t getDefaultValue()
    {
        return getAttributePtr()->GetdefaultValue ();
    }
    
    _bstr_t getFixedValue()
    {
        return getAttributePtr()->GetfixedValue();
    }
    
    SCHEMAUSE getUse()
    {
        return getAttributePtr()->Getuse();
    }
    
    VARIANT_BOOL getIsReference()
    {
        return getAttributePtr()->GetisReference();
    }

public:
    void display(const TCHAR* name=NULL)
    {
        if (name == NULL) {
            name = _T("SchemaAttribute");
        }
        _tprintf(_T("<%s>\n"), name);
        SchemaItem::display();

        SOMItemType type;
        try {
            _tprintf(_T("<Use>%s<\Use>\n"), type.getType(getUse()));
        } catch (...) {
        }

        try {
            SchemaType type = getType();
            type.display(_T("Type"));
        } catch (...) {
        }
        try {
            SchemaComplexType ctype = getScope();
            ctype.display(_T("Scope"));
        } catch (...) {
        }
        try {
            _bstr_t defValue = getDefaultValue();
            _tprintf(_T("<DefaultValue>%s</DefaultValue>\n"), (const TCHAR*)defValue);
        } catch (...) {
        }

        try {
        _bstr_t fixedValue = getFixedValue();
            _tprintf(_T("<FixedValue>%s</FixedValue>\n"), (const TCHAR*)fixedValue);
        } catch (...) {
        }            
        _tprintf(_T("</%s>\n"), name);

    }

};


}

Last modified: 1 Feb 2012

Copyright (c) 2009-2012 Antillia.com ALL RIGHTS RESERVED.