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); } }
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; }
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; } }
public bool GetResult(out CsdlModel model, out IEnumerable<EdmError> errors) { model = this.result; errors = this.errorsList; return this.success; }
public CsdlParser() { this.errorsList = new List<EdmError>(); this.result = new CsdlModel(); this.success = true; }