function schema
%SCHEMA for @excelsource

% Register class 
p = findpackage('tsdata');
c = schema.class(p,'ExcelSource',findclass(findpackage('hds'),'ArrayContainer'));

% Assumption is that data is contained in a sequence of columns on the
% spreadsheet, indexed by the *same* set of contiguous rows

% Public properties
% The Readonly property default is set to true to protect spreadsheets
% from inadvertant writes
p = schema.prop(c,'Readonly','on/off'); 
p.FactoryValue = 'on';
schema.prop(c,'Filename','string'); 
schema.prop(c,'Sheetname','string');
schema.prop(c,'ColumnNumbers','MATLAB array'); 
schema.prop(c,'StartRow','double'); 
schema.prop(c,'EndRow','double');
schema.prop(c,'comhandle','handle');

% Private attributes
p = schema.prop(c, 'Listeners', 'handle vector');
set(p, 'AccessFlags.PublicGet', 'off', 'AccessFlags.PublicSet', 'off');
p = schema.prop(c, 'Handles', 'MATLAB array');
%set(p, 'AccessFlags.PublicGet', 'off', 'AccessFlags.PublicSet', 'off');