public void SXPRSTMixedComponentsFormatting() { SXPR <RTO <INT, INT> > test = SXPR <RTO <INT, INT> > .CreateSXPR(new IVL <RTO <INT, INT> >(new RTO <INT, INT>(1, 3), new RTO <INT, INT>(2, 3)), new PIVL <RTO <INT, INT> >( new IVL <RTO <INT, INT> >(new RTO <INT, INT>(2, 3), new RTO <INT, INT>(5, 6)), new PQ((decimal)1.0, "y") ) //new SXCM<RTO<INT,INT>>(new RTO<INT,INT>(1,2)) { Operator = SetOperator.A }, //new IVL<RTO<INT,INT>>(new RTO<INT,INT>(1,2)) { Operator = SetOperator.Intersect ); StringWriter sw = new StringWriter(); DatatypeFormatter fmtr = new DatatypeFormatter(); XmlStateWriter xw = new XmlStateWriter(XmlWriter.Create(sw)); xw.WriteStartElement("sxpr"); fmtr.Graph(xw, test); xw.WriteEndElement(); // comp xw.Flush(); Tracer.Trace(sw.ToString()); StringReader sr = new StringReader(sw.ToString()); XmlStateReader rdr = new XmlStateReader(XmlReader.Create(sr)); rdr.Read(); rdr.Read(); var parse = fmtr.Parse(rdr, typeof(SXPR <RTO <INT, INT> >)).Structure as SXPR <RTO <INT, INT> >; Assert.AreEqual(parse.Count, test.Count); for (int i = 0; i < parse.Count; i++) { Assert.AreEqual(parse[i].GetType(), test[i].GetType()); } }
/// <summary> /// Parse a string /// </summary> /// <param name="actualXml"></param> /// <param name="type"></param> /// <returns></returns> internal static object ParseString(string xmlString, Type type) { StringReader sr = new StringReader(xmlString); DatatypeR2Formatter fmtr = new DatatypeR2Formatter(); XmlStateReader rdr = new XmlStateReader(XmlReader.Create(sr)); while (rdr.NodeType != XmlNodeType.Element) { rdr.Read(); } var result = fmtr.Parse(rdr, type); Assert.AreEqual(ResultCode.Accepted, result.Code); return(result.Structure); }
public void SXPRTSMixedComponentsFormatting() { SXPR <TS> test = SXPR <TS> .CreateSXPR(new IVL <TS>(DateTime.Now, DateTime.Now.AddDays(1)), new PIVL <TS>( new IVL <TS>(DateTime.Now, DateTime.Now.AddDays(1)), new PQ((decimal)1.0, "y") ), //new SXCM<TS>(DateTime.Now) { Operator = SetOperator.A }, new IVL <TS>(DateTime.Now) { Operator = SetOperator.Intersect }, new EIVL <TS>(DomainTimingEventType.BeforeLunch, new IVL <PQ>( new PQ((decimal)1.0, "d") ) ) { Operator = SetOperator.Inclusive }); StringWriter sw = new StringWriter(); DatatypeFormatter fmtr = new DatatypeFormatter(); XmlStateWriter xw = new XmlStateWriter(XmlWriter.Create(sw)); xw.WriteStartElement("sxpr"); fmtr.Graph(xw, test); xw.WriteEndElement(); // comp xw.Flush(); Tracer.Trace(sw.ToString()); StringReader sr = new StringReader(sw.ToString()); XmlStateReader rdr = new XmlStateReader(XmlReader.Create(sr)); rdr.Read(); rdr.Read(); var parse = fmtr.Parse(rdr, typeof(SXPR <TS>)).Structure as SXPR <TS>; Assert.AreEqual(parse.Count, test.Count); for (int i = 0; i < parse.Count; i++) { Assert.AreEqual(parse[i].GetType(), test[i].GetType()); } }
public void IVLInclusiveParsingTest() { StringReader sr = new StringReader("<ivl xmlns=\"urn:hl7-org:v3\"><low inclusive=\"true\" value=\"1\" /><high inclusive=\"false\" value=\"4\" /></ivl>"); XmlStateReader rdr = new XmlStateReader(XmlReader.Create(sr)); // Read to first node while (rdr.NodeType != XmlNodeType.Element) { rdr.Read(); } // Parse MARC.Everest.Formatters.XML.Datatypes.R1.DatatypeFormatter fmtr = new MARC.Everest.Formatters.XML.Datatypes.R1.DatatypeFormatter(); IVL <INT> retVal = fmtr.Parse(rdr, typeof(IVL <INT>)).Structure as IVL <INT>; Assert.IsTrue(retVal.HighClosed.HasValue); Assert.IsTrue(retVal.LowClosed.HasValue); Assert.IsFalse(retVal.HighClosed.Value); Assert.IsTrue(retVal.LowClosed.Value); }
public void EV_1089ENXPParseTest() { EN myEn = EN.FromFamilyGiven(EntityNameUse.License, "Toet", "J"); myEn.Part[0].Qualifier = new SET <CS <EntityNamePartQualifier> >(); myEn.Part[1].Qualifier = new SET <CS <EntityNamePartQualifier> >(); myEn.Part[0].Qualifier.Add(EntityNamePartQualifier.Birth); myEn.Part[1].Qualifier.Add(EntityNamePartQualifier.Initial); String xmlString = R1SerializationHelper.SerializeAsString(myEn); StringReader sr = new StringReader(xmlString); DatatypeFormatter fmtr = new DatatypeFormatter(); XmlStateReader rdr = new XmlStateReader(XmlReader.Create(sr)); while (rdr.NodeType != XmlNodeType.Element) { rdr.Read(); } var result = fmtr.Parse(rdr, typeof(EN)); Assert.AreEqual(0, result.Details.Count(o => o.Type == Connectors.ResultDetailType.Error)); }
/// <summary> /// Validate the MIF file /// </summary> public void ValidateMifFile(Stream fileStream, string fileName) { string mifDirectory = Path.Combine(Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "schemas"), "mif2.1.4"); // First, validate the schema directory exists if (context.Mode != Pipeline.OperationModeType.Strict) { Trace.Write("Not operating in strict mode, not applying MIF validation", "warn1"); return; } if (!Directory.Exists(mifDirectory)) { throw new InvalidOperationException("Cannot find the MIF schemas, ensure that the Schemas\\mif2.1.4 directory exists"); } // Load the schemas if (m_schemas == null) { m_schemas = new XmlSchemaSet(); m_schemas.ValidationEventHandler += new ValidationEventHandler(m_schemas_ValidationEventHandler); foreach (var file in Directory.GetFiles(mifDirectory, "*.xsd")) { XmlReader schemaReader = XmlReader.Create(file, new XmlReaderSettings() { ProhibitDtd = false }); try { m_schemas.Add("urn:hl7-org:v3/mif2", schemaReader); } finally { schemaReader.Close(); } } m_schemas.Compile(); } // Sanity check if (!m_schemas.IsCompiled) { throw new InvalidOperationException("The schema set must compile successfully for execution to continue"); } // Reader XmlStateReader xr = null; try { // Create settings var settings = new XmlReaderSettings() { ProhibitDtd = false, ValidationType = ValidationType.Schema, Schemas = m_schemas }; // Is the object valid bool isValid = true; settings.ValidationEventHandler += new ValidationEventHandler( delegate(object sender, ValidationEventArgs e) { Trace.WriteLine(String.Format("{0} : {1}", Path.GetFileName(fileName), e.Message), e.Severity == XmlSeverityType.Error ? "error" : "warn"); isValid &= e.Severity == XmlSeverityType.Warning; } ); // Create the reader xr = new XmlStateReader(XmlReader.Create(fileStream, settings)); // Read while (xr.Read()) { ; } if (!isValid) { throw new XmlSchemaValidationException("File failed basic schema check"); } } finally { if (xr != null) { xr.Close(); } } }