예제 #1
0
 protected void Validate(Cardinality cardinality)
 {
     Invariant(cardinality.Interval != null, string.Format(
         CommonStrings.XMustNotBeNull, "Cardinality.Interval"));
     Invariant(!cardinality.Interval.LowerUnbounded, AmValidationStrings.CardinalityLowerUnbounded);
 }
예제 #2
0
        private void ReadXml(Cardinality cardinality)
        {
            Check.Require(cardinality != null, string.Format(CommonStrings.XMustNotBeNull, "cardinality"));

            reader.ReadStartElement();
            reader.MoveToContent();

            Check.Assert(reader.LocalName == "is_ordered", "local name must be 'is_ordered' rather than " + reader.LocalName);
            cardinality.IsOrdered = reader.ReadElementContentAsBoolean("is_ordered", OpenEhrNamespace);
            reader.MoveToContent();

            Check.Assert(reader.LocalName == "is_unique", "local name must be 'is_unique' rather than " + reader.LocalName);
            cardinality.IsUnique = reader.ReadElementContentAsBoolean("is_unique", OpenEhrNamespace);
            reader.MoveToContent();

            if (reader.LocalName != "interval")
            {
                throw new InvalidXmlException("interval", reader.LocalName);
            }
            cardinality.Interval = new Interval<int>();
            this.ReadXml(cardinality.Interval);

            DesignByContract.Check.Assert(reader.NodeType == System.Xml.XmlNodeType.EndElement, "Expected endElement of cardinality");
            reader.ReadEndElement();
            reader.MoveToContent();
        }
예제 #3
0
        private void WriteXml(Cardinality cardinality)
        {
            Check.Require(cardinality != null, string.Format(CommonStrings.XMustNotBeNull, "cardinality"));
            Check.Require(cardinality.Interval != null, string.Format(CommonStrings.XMustNotBeNull, "cardinality.Interval"));

            writer.WriteElementString(UseOpenEhrPrefix(writer), "is_ordered", OpenEhrNamespace, cardinality.IsOrdered.ToString().ToLower());

            writer.WriteElementString(UseOpenEhrPrefix(writer), "is_unique", OpenEhrNamespace, cardinality.IsUnique.ToString().ToLower());

            writer.WriteStartElement(UseOpenEhrPrefix(writer), "interval", OpenEhrNamespace);
            this.WriteXml(cardinality.Interval);
            writer.WriteEndElement();
        }
예제 #4
0
 public void WriteCardinality(XmlWriter writer, Cardinality cardinality)
 {
     this.writer = writer;
     WriteXml(cardinality);
 }
예제 #5
0
 public void ReadCardinality(XmlReader reader, Cardinality cardinality)
 {
     this.reader = reader;
     ReadXml(cardinality);
 }