|
Работа со списками XDTO | ☑ | ||
---|---|---|---|---|
0
SeraFim
23.03.11
✎
08:24
|
Не могу разобраться со списками.
Сделал такой вот тестовый примерчик: создал пакет XDTO. В нем - тип значения, например, "Неделя". В нем указал: вариант - "список" тип - "string" В web-сервисе создал операцию "ВернутьНеделю()", без параметров, тип возвращаемого значения - "Неделя". В коде этой операции прописываю: НеделяТип = ФабрикаXDTO.Тип("http://localhost/web", "Неделя"); Неделя = ФабрикаXDTO.Создать(НеделяТип); А дальше как??? Неделя.Добавить("Понедельник"); - ошибка, так как не объектный тип Неделя = "понедельник"; - возвращает только последнюю строку. Документацию читал - там только описание свойств/методов. А вот конкретных примеров нет :( в общем и вопрос - как все это заполнить? и заодно, чтоб разобраться: последовательностьXDTO тоже не понятно как с ней работать. |
|||
1
SeraFim
24.03.11
✎
03:24
|
Ребятааа, ну что, никто с этой бякой не работал, что ли?(((
|
|||
2
sda553
24.03.11
✎
06:35
|
Наводишься по XDTO пакету в конфигурации, нажимаешь правой кнопкой мыши и выбираешь "Экспорт XML схемы". Получившуюся XML выкладываешь сюда на форум. Тогда будет всем понятно что там у тебя за неделя
|
|||
3
SeraFim
24.03.11
✎
08:28
|
Ну, про неё я и в самом начале расписал, но вот:
<xs:schema xmlns:tns="http://localhost/web" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://localhost/web" attributeFormDefault="unqualified" elementFormDefault="qualified"> <xs:simpleType name="Неделя"> <xs:list itemType="xs:string"/> </xs:simpleType> </xs:schema> еще раз обращаю внимание - пример тестовый, никакого смысла в его использовании нет, просто чтоб разобраться :) |
|||
4
sda553
24.03.11
✎
09:31
|
<xs:schema xmlns:tns="http://localhost/web" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://localhost/web" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:complexType name="Неделя"> <xs:sequence> <xs:element name="ЭлементСпискаНедели" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:schema> Вот так сделай и потом программно НеделяТип = ФабрикаXDTO.Тип("http://localhost/web", "Неделя"); Неделя = ФабрикаXDTO.Создать(НеделяТип); Неделя.ЭлементСпискаНедели.Добавить("Понедельник"); |
|||
5
SeraFim
24.03.11
✎
09:56
|
Спасибо, но это не совсем то, что нужно. С этим я и так уже разобрался :)
В данном случае мы получаем "Тип Объекта XDTO", а в моем первом примере - "Тип Значения XDTO". У "Типа Значения XDTO" есть 3 варианта: атомарный, список и объединение. Вот с ними-то я и хочу разобраться :) |
|||
6
sda553
24.03.11
✎
10:10
|
ТОгда еще проще
НеделяТип = ФабрикаXDTO.Тип("http://localhost/web", "Неделя"); Неделя = ФабрикаXDTO.Создать(НеделяТип); Неделя.Список.Добавить("понедельник"); |
|||
7
SeraFim
24.03.11
✎
10:15
|
Ошибка:
"Значение не является значением объектного типа (Список)" |
|||
8
sda553
24.03.11
✎
10:20
|
ага, вижу. Его только читать можно почему то
|
|||
9
SeraFim
24.03.11
✎
10:28
|
Не знаю, может поможет, наведет вас на мысль:
НеделяТип = ФабрикаXDTO.Тип("http://localhost/web", "Неделя"); Неделя = ФабрикаXDTO.Создать(НеделяТип); Неделя = "понедельник"; Неделя = "вторник"; Неделя = "среда"; На выходе получаю "Среда". Тип - ФиксированныйМассив |
|||
10
sda553
24.03.11
✎
10:34
|
Вот так у меня получилось!
НеделяТип = ФабрикаXDTO.Тип("http://localhost/web", "Неделя"); Неделя = ФабрикаXDTO.Создать(НеделяТип,"понедельник вторник среда"); Сообщить(Неделя.Список.Получить(0).Значение); Сообщить(Неделя.Список.Получить(1).Значение); Сообщить(Неделя.Список.Получить(2).Значение); |
|||
11
SeraFim
24.03.11
✎
10:52
|
Ух ты, отлично :) Спасибо большое!!!
А как быть, если у "Неделя" тип не строка, а, например, дата? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |