Example #1
0
		public CsdlSemanticsModel(CsdlModel astModel, EdmDirectValueAnnotationsManager annotationsManager, IEnumerable<IEdmModel> referencedModels) : base(referencedModels, annotationsManager)
		{
			this.schemata = new List<CsdlSemanticsSchema>();
			this.outOfLineAnnotations = new Dictionary<string, List<CsdlSemanticsAnnotations>>();
			this.wrappedAnnotations = new Dictionary<CsdlVocabularyAnnotationBase, CsdlSemanticsVocabularyAnnotation>();
			this.associationDictionary = new Dictionary<string, IEdmAssociation>();
			this.derivedTypeMappings = new Dictionary<string, List<IEdmStructuredType>>();
			this.astModel = astModel;
			foreach (CsdlSchema schema in this.astModel.Schemata)
			{
				this.AddSchema(schema);
			}
		}
Example #2
0
        public static bool TryParse(IEnumerable<XmlReader> csdlReaders, out CsdlModel entityModel, out IEnumerable<EdmError> errors)
        {
            EdmUtil.CheckArgumentNull(csdlReaders, "csdlReaders");
            CsdlParser parser = new CsdlParser();
            int readerCount = 0;
            foreach (var inputReader in csdlReaders)
            {
                if (inputReader != null)
                {
                    try
                    {
                        parser.AddReader(inputReader);
                    }
                    catch (XmlException e)
                    {
                        entityModel = null;
                        errors = new EdmError[] { new EdmError(new CsdlLocation(e.LineNumber, e.LinePosition), EdmErrorCode.XmlError, e.Message) };

                        return false;
                    }
                }
                else
                {
                    entityModel = null;
                    errors = new EdmError[] { new EdmError(null, EdmErrorCode.NullXmlReader, Edm.Strings.CsdlParser_NullXmlReader) };

                    return false;
                }

                readerCount++;
            }

            if (readerCount == 0)
            {
                entityModel = null;
                errors = new EdmError[] { new EdmError(null, EdmErrorCode.NoReadersProvided, Edm.Strings.CsdlParser_NoReadersProvided) };

                return false;
            }

            bool success = parser.GetResult(out entityModel, out errors);
            if (!success)
            {
                entityModel = null;
            }

            return success;
        }
Example #3
0
		public static bool TryParse(IEnumerable<XmlReader> csdlReaders, out CsdlModel entityModel, out IEnumerable<EdmError> errors)
		{
			bool flag;
			EdmUtil.CheckArgumentNull<IEnumerable<XmlReader>>(csdlReaders, "csdlReaders");
			CsdlParser csdlParser = new CsdlParser();
			int num = 0;
			IEnumerator<XmlReader> enumerator = csdlReaders.GetEnumerator();
			using (enumerator)
			{
				while (enumerator.MoveNext())
				{
					XmlReader current = enumerator.Current;
					if (current == null)
					{
						entityModel = null;
						EdmError[] edmError = new EdmError[1];
						edmError[0] = new EdmError(null, EdmErrorCode.NullXmlReader, Strings.CsdlParser_NullXmlReader);
						errors = edmError;
						flag = false;
						return flag;
					}
					else
					{
						try
						{
							csdlParser.AddReader(current);
						}
						catch (XmlException xmlException1)
						{
							XmlException xmlException = xmlException1;
							entityModel = null;
							EdmError[] edmErrorArray = new EdmError[1];
							edmErrorArray[0] = new EdmError(new CsdlLocation(xmlException.LineNumber, xmlException.LinePosition), EdmErrorCode.XmlError, xmlException.Message);
							errors = edmErrorArray;
							flag = false;
							return flag;
						}
						num++;
					}
				}
				goto Label0;
			}
			return flag;
		Label0:
			if (num != 0)
			{
				bool result = csdlParser.GetResult(out entityModel, out errors);
				if (!result)
				{
					entityModel = null;
				}
				return result;
			}
			else
			{
				entityModel = null;
				EdmError[] edmError1 = new EdmError[1];
				edmError1[0] = new EdmError(null, EdmErrorCode.NoReadersProvided, Strings.CsdlParser_NoReadersProvided);
				errors = edmError1;
				return false;
			}
		}
Example #4
0
		public bool GetResult(out CsdlModel model, out IEnumerable<EdmError> errors)
		{
			model = this.result;
			errors = this.errorsList;
			return this.success;
		}
Example #5
0
		public CsdlParser()
		{
			this.errorsList = new List<EdmError>();
			this.result = new CsdlModel();
			this.success = true;
		}