|
Как записать/отправить в XML пустую дату | ☑ | ||
---|---|---|---|---|
0
kugelfangg
04.03.19
✎
19:04
|
Всем привет.
Столкнулся с очень забавной проблемой. Нужно передать в XML-файл пустую дату. Но это сделать не получается. Пробовал: 1) Передавать "Дата(1,1,1)", в файл записывается, но это не устраивает систему, которая эти файлы потом читает, так как она видит 0001-01-01T00:00:00, а это уже не пустая дата для нее 2) Передавать строку "0000-00-00T00:00:00", но тогда выдает ошибку: не соответствует простому типу: {http://www.w3.org/2001/XMLSchema}dateTime 3) Передавать NULL но тогда выдает ошибку: не соответствует простому типу: {http://www.w3.org/2001/XMLSchema}dateTime Подскажите пожалуйста, как можно забороть эту проблему? |
|||
1
Fram
04.03.19
✎
19:05
|
пустую строку или вообще опустить этот узел пробовал?
|
|||
2
palsergeich
04.03.19
✎
19:06
|
Передавай без значения просто тег
|
|||
3
palsergeich
04.03.19
✎
19:08
|
Ибо в unix time. Отсчёт ведётся не от рождества Христова, попробуй 01.01.1970
|
|||
4
kugelfangg
04.03.19
✎
19:20
|
(2) Генератор файла устроен так что если ничего не передавать, то он просто этот параметр не добавляет в файл
|
|||
5
palsergeich
04.03.19
✎
19:22
|
01.01.1970 бахни
|
|||
6
Fram
04.03.19
✎
19:31
|
(4) ну может так и нужно?
|
|||
7
kugelfangg
04.03.19
✎
19:34
|
(5) Не, получается не то что нужно:
<PartsOrderReceivedDateTime>1970-01-01T00:00:00</PartsOrderReceivedDateTime> |
|||
8
kugelfangg
04.03.19
✎
19:37
|
(4) в том то и дело, что нет=(
Люди, которые систему-приемник админят, сказали что должна быть пустая дата. |
|||
9
Fram
04.03.19
✎
19:38
|
(8) а пример пустой даты у них попросить гордость не позволяет? ) лучше форум помучать
|
|||
10
kugelfangg
04.03.19
✎
19:52
|
(9) вот что должно быть: "0000-00-00T00:00:00"
|
|||
11
Fram
04.03.19
✎
20:01
|
(10) а как же пункт 2) из (0)
|
|||
12
kugelfangg
04.03.19
✎
20:03
|
(11) это по тому что я строку передавал в тип "Дата" по этому не прокатило. В том то и затык, что не понятно как такое значение с типом дата передать.
|
|||
13
Fram
04.03.19
✎
20:07
|
(12) весь xml документ по сути это строка. типизация уже от парсера зависит на том конце. ты тут причем?
|
|||
14
palsergeich
04.03.19
✎
20:14
|
Ну есть еще вариант. СТРЗАМЕНИТЬ называется
|
|||
15
palsergeich
04.03.19
✎
20:20
|
Ибо я тут глянул этот ISO и что то мне говорит, что "0000-00-00T00:00:00" эта запись не каннонична и является плодом автора Вашей поделки
|
|||
16
Garykom
гуру
04.03.19
✎
20:28
|
XMLСтрока (XMLString)
Синтаксис: XMLСтрока(<Значение>) Параметры: <Значение> (обязательный) Тип: Неопределено; Null; Булево; Число; Строка; Дата; УникальныйИдентификатор; ДвоичныеДанные; ХранилищеЗначения; значения перечислений, значения системных перечислений (ВидСчета; ВидДвиженияБухгалтерии; ВидДвиженияНакопления; ДопустимыйЗнак; ДопустимаяДлина; ЧастиДаты) или все ссылки на объекты базы данных. Значение, для которого должно быть получено строковое представление, которое может быть использовано как текст элемента или значение атрибута XML. Возвращаемое значение: Тип: Строка. Описание: Получает XML представление значения для помещения в текст элемента или значение атрибута XML. XML представление зависит от типа значения: Строка - как есть; Булево: Истина - как "true", Ложь - как "false"; Дата - XML представление соответствует представлению типа dateTime схемы XML (см. http://www.w3.org/TR/xmlschema-2/#dateTime); Число - XML представление соответствует представлению типа decimal схемы XML (см. http://www.w3.org/TR/xmlschema-2/#decimal); Значение системного перечисления (для перечислений, поддерживающих XML сериализацию) - как имя значения перечисления; УникальныйИдентификатор - как строковое представление уникального идентификатора; Ссылки - как XML представление уникального идентификатора ссылки; ХранилищеЗначения и ДвоичныеДанные - как строка в формате base64. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). |
|||
17
palsergeich
04.03.19
✎
20:30
|
(16) И как это поможет.
Открываем стандлат по ссылке и видим The date and time datatypes described in this recommendation were inspired by [ISO 8601]. '0001' is the lexical representation of the year 1 of the Common Era (1 CE, sometimes written "AD 1" or "1 AD"). There is no year 0, and '0000' is not a valid lexical representation. '-0001' is the lexical representation of the year 1 Before Common Era (1 BCE, sometimes written "1 BC"). |
|||
18
palsergeich
04.03.19
✎
20:32
|
Запись не канонична.
СТР заменить тебя спасет |
|||
19
kugelfangg
04.03.19
✎
20:35
|
Ладно, буду пробовать XSD схему менять.
Если получится решить проблему обязательно отпишусь. Спасибо всем за участие. |
|||
20
Garykom
гуру
04.03.19
✎
20:38
|
(18) Самый простой вариант хотя и не кошерный.
Кошерно было бы привести приемную систему к https://www.w3.org/TR/xmlschema-2/#dateTime |
|||
21
palsergeich
04.03.19
✎
20:41
|
(20) кошерно, согласен, но что то мне говорит что со второй стороны те еще фрукты
|
|||
22
palsergeich
04.03.19
✎
20:42
|
там или допилили парсер или такое древнее хм, судя по парсеру
|
|||
23
etc
04.03.19
✎
21:12
|
составной тип не прокатит?
|
|||
24
etc
04.03.19
✎
21:12
|
принимающая сторона как воспримет вообще пустое поле?
|
|||
25
Скиурус
04.03.19
✎
22:12
|
Я бы просто делал нормальный XML с представлением пустой даты как 0001-01-01T00:00:00. А потом уже в тексте обычной заменой строки заменил бы "0001-01-01T00:00:00" на "0000-00-00T00:00:00", чтобы удовлетворить идиотов, которые думают, что был нулевой год, нулевой месяц или нулевое число.
|
|||
26
palsergeich
04.03.19
✎
22:17
|
(25) Стр заменить в посте было уже 2 раза)
|
|||
27
Скиурус
04.03.19
✎
23:02
|
(26) сорян, чувствую себя чукчей-писателем :(
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |