/**********************************************************************************************
 * Copyright (c) 2001-2017 Liquid Technologies Limited. All rights reserved.
 * See www.liquid-technologies.com for product details.
 *
 * Please see products End User License Agreement for distribution permissions.
 *
 * WARNING: THIS FILE IS GENERATED
 * Changes made outside of ##HAND_CODED_BLOCK_START blocks will be overwritten
 *
 * Generation  :  by Liquid XML Data Binder 15.0.1.7161
 * Using Schema: D:\Development2017\Liquid\Tools\DataBindingSamples\Samples\DerivedByExtension\Schema\DerivedByExtension.xsd
 **********************************************************************************************/
#ifndef _DerivedByExtensionLib_DerivedByExtensionLib_IAddress_h 
#define _DerivedByExtensionLib_DerivedByExtensionLib_IAddress_h 

// Include Base classes

// ##HAND_CODED_BLOCK_START ID="Additional Includes"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS

// Add Additional Includes here...

// ##HAND_CODED_BLOCK_END ID="Additional Includes"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS

namespace DerivedByExtensionLib
{
    /*
     * IAddress
     *  
     * This class wraps the element IAddress in the schema
     */
    class DerivedByExtensionLib_DLL IAddress : public virtual DerivedByExtensionLib::CXmlCommonBase
// ##HAND_CODED_BLOCK_START ID="Additional Base Classes"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS
// Add Additional base classes here...
// ##HAND_CODED_BLOCK_END ID="Additional Base Classes"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS
    {
    public:
        virtual DerivedByExtensionLib::IAddressPtr Clone() const = 0;

        virtual std::tstring GetName() const = 0;
        virtual void SetName(std::tstring val) = 0;
            
        virtual std::tstring GetStreet() const = 0;
        virtual void SetStreet(std::tstring val) = 0;
            
        virtual std::tstring GetCity() const = 0;
        virtual void SetCity(std::tstring val) = 0;
            
    
        

// ##HAND_CODED_BLOCK_START ID="Additional Methods"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS

// Add Additional Methods here...

// ##HAND_CODED_BLOCK_END ID="Additional Methods"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS
    };
}; // end namespace (DerivedByExtensionLib)


#endif // _DerivedByExtensionLib_IAddress_h