В моей работе мы загружаем файлы excel и сохраняем их в базе данных.
Это в основном поток:
Мы импортируем данные в DataSet из файла Excel, где каждый лист загружается в свой собственный DataTable внутри DataSet. После заполнения DataDet я хочу проверить данные внутри DataSet, скажем, первого DataTable. Я получаю xml из DataTable с помощью метода WriteXml() класса DataTable и загружаю этот xml в XDocument. Затем я использую метод Validate() класса XDocument с предопределенным xsd, который загружается в объект XmlSchemaSet.Определить формат dateTime в xsd
Проблема в том, что данные в excel хранятся в формате, отличном от формата dateTime в xsd.
Мы получаем файлы Excel с столбцами datetime, отформатированными как thie: '12/01/2015 12:44:45 ', тогда как формат dateTime в xsd должен быть таким: ' 2015-01-12T12: 44: 45 '
Возможно ли определить пользовательский формат даты в формате xsd?
Например, вместо '2015-01-12T12: 44: 45', я хотел бы, чтобы это было '12/01/2015 12:44:45', так что мой XML-элемент будет выглядеть как это:
<createDate>12/01/2015 12:44:45>/createDate>
Кроме того, я был бы не против, если время часть будет игнорироваться вообще.
Кроме того, еще один пользовательский XSD формат мне нужно, как это: 378,216.00
Можно ли определить его в свой файл XSD?
Вот этот код, где мы делаем проверку на XML, извлечен из DataTable
public string[] ValidateExcelFromXsdFile(string schemaUri)
{
_validationErrors.Clear();
var schemas = new XmlSchemaSet();
schemas.Add("", schemaUri);
var doc = XDocument.Parse(GetXml(_dataSetFromExcel.Tables[0]));
doc.Validate(schemas, (sender, args) => _validationErrors.Add(args.Message));
return _validationErrors.ToArray();
}
Вы хотите, чтобы код C# сериализовал/экспортировал, чтобы написать этот особый формат dateTimeFormat, не так ли? В этом случае добавьте исходный код. В случае, если я вас неправильно понял, пожалуйста, уточните. –
Нет, прошу прощения, это не то, что я имел в виду. Я импортирую данные в DataSet из файла Excel, где каждый лист загружается в свой собственный DataTable внутри DataSet.После заполнения DataDet я хочу проверить данные внутри DataSet, скажем, первого DataTable. Я получаю xml из DataTable с помощью метода WriteXml() класса DataTable и загружаю этот xml в XDocument. Затем я использую метод Validate() класса XDocument с предопределенным xsd, который загружается в объект XmlSchemaSet. – ashilon
И вот код 'public string [] ValidateExcelFromXsdFile (string schemaUri) { _validationErrors.Clear(); var schemas = new XmlSchemaSet(); schemas.Add ("", schemaUri); var doc = XDocument.Parse (GetXml (_dataSetFromExcel.Tables [0])); doc.Validate (схемы, (отправитель, args) => _validationErrors.Add (args.Message)); return _validationErrors.ToArray(); } ' – ashilon