} // materializeMainSchemaTable()

        private DocumentSource createDocumentSource()
        {
            Debug.WriteLine("JsonDataContext.createDocumentSource()");

            NInputStream input_stream = _resource.read();

            try
            {
                // MappingJsonFactory jsonFactory = new MappingJsonFactory();
                NJsonParser parser = new NJsonParser(input_stream); // jsonFactory.createParser(inputStream);
                logger.debug("Created JSON parser for resource: {0}", _resource);

                return(new JsonDocumentSource(parser, _resource.getName()));
            }
            catch (Exception e)
            {
                Debug.WriteLine("Unexpected error while creating JSON parser  \n    " + e.Message);
                try
                {
                    Debug.WriteLine("Trying to close input_stream");
                    FileHelper.safeClose(input_stream);
                }
                catch (Exception e1)
                {
                    throw new MetaModelException("Tried to close input_stream\n    " + e1.Message);
                }
                throw new MetaModelException("... Unexpected error while creating JSON parser  \n    " + e.Message);
            }
        } // createDocumentSource()
        public JsonDocumentSource(NJsonParser parser, String sourceCollectionName)
        {
            Debug.WriteLine("new JsonDocumentSource()  sourceCollectionName: '" + sourceCollectionName + "'");
            _parser = parser;
            _sourceCollectionName = sourceCollectionName;

            _parser.parse();
        } // constructor