protected virtual void SaveAsXml(TextWriter textWriter,
                                         UidDictionaryEntry[] entryArray)
        {
            XmlTextWriter xmlTextWriter = new XmlTextWriter(textWriter);

            xmlTextWriter.Formatting  = Formatting.Indented;
            xmlTextWriter.Indentation = 4;
            xmlTextWriter.WriteStartDocument();
            xmlTextWriter.WriteComment(" " + fileComment + " ");
            xmlTextWriter.WriteStartElement("DicomUidDictionary");
            foreach (UidDictionaryEntry entry in entryArray)
            {
                xmlTextWriter.WriteStartElement("DictionaryEntry");
                if (entry.IsRetired)
                {
                    xmlTextWriter.WriteAttributeString("retired", "true");
                }
                xmlTextWriter.WriteElementString("Uid", entry.Uid.ToString());
                xmlTextWriter.WriteElementString("Name", entry.Name);
                xmlTextWriter.WriteElementString("Type",
                                                 UidType.GetName(typeof(UidType), entry.Type));
                xmlTextWriter.WriteEndElement();
            }
            xmlTextWriter.WriteEndElement();
            xmlTextWriter.Close();
        }
 private void SaveAsCsv(TextWriter textWriter,
                        UidDictionaryEntry[] entryArray)
 {
     textWriter.WriteLine("# " + fileComment);
     foreach (UidDictionaryEntry entry in entryArray)
     {
         if (entry.IsRetired)
         {
             textWriter.WriteLine(entry.Uid + "; " +
                                  entry.Name + "; " +
                                  UidType.GetName(typeof(UidType), entry.Type) +
                                  "; RET");
         }
         else
         {
             textWriter.WriteLine(entry.Uid + "; " +
                                  entry.Name + "; " +
                                  UidType.GetName(typeof(UidType), entry.Type));
         }
     }
 }
 private void AddDataElementToXml(XmlTextWriter xml,
                                  DataElement element)
 {
     xml.WriteStartElement("DataElement");
     xml.WriteAttributeString("streamPosition", element.StreamPosition.ToString());
     xml.WriteElementString("Tag", element.Tag.ToString());
     xml.WriteElementString("VR", element.VR.ToString());
     xml.WriteElementString("VM",
                            element.Tag.GetDictionaryEntry().VM.ToString());
     xml.WriteElementString("Description",
                            element.Tag.GetDictionaryEntry().Description);
     xml.WriteElementString("ValueLength", element.ValueLength.ToString());
     if (element.Value.IsSequence)
     {
         xml.WriteStartElement("Sequence");
         xml.WriteAttributeString("elementCount",
                                  ((Sequence)element.Value[0]).Count.ToString());
         foreach (DataElement d in (Sequence)element.Value[0])
         {
             AddDataElementToXml(xml, d);
         }
     }
     else if (element.Value.IsNestedDataSet)
     {
         xml.WriteStartElement("NestedDataSet");
         xml.WriteAttributeString("elementCount",
                                  ((NestedDataSet)element.Value[0]).Count.ToString());
         foreach (DataElement d in (NestedDataSet)element.Value[0])
         {
             AddDataElementToXml(xml, d);
         }
     }
     else if (element.Value.IsMultiValue)
     {
         xml.WriteStartElement("MultiValue");
         xml.WriteAttributeString("count", element.Value.Count.ToString());
         object[] valueArray = element.Value.ToArray();
         for (int i = 0; i < valueArray.Length; i++)
         {
             xml.WriteStartElement("Value");
             xml.WriteAttributeString("order", i.ToString());
             AddValueToXml(xml, valueArray[i], element.Value.IsDate);
             xml.WriteEndElement();
         }
     }
     else if (element.Value.IsUid)
     {
         Uid uid = (Uid)element.Value[0];
         xml.WriteStartElement("Uid");
         xml.WriteStartElement("Value");
         AddValueToXml(xml, uid, element.Value.IsDate);
         xml.WriteEndElement();
         xml.WriteStartElement("Name");
         AddValueToXml(xml, uid.GetDictionaryEntry().Name,
                       element.Value.IsDate);
         xml.WriteEndElement();
         xml.WriteStartElement("Type");
         AddValueToXml(xml, UidType.GetName(typeof(UidType),
                                            uid.GetDictionaryEntry().Type), element.Value.IsDate);
         xml.WriteEndElement();
     }
     else
     {
         xml.WriteStartElement("Value");
         if (!element.Value.IsEmpty)
         {
             AddValueToXml(xml, element.Value[0], element.Value.IsDate);
         }
     }
     // Value
     xml.WriteEndElement();
     // DataElement
     xml.WriteEndElement();
 }