|
Поправить схему XML | ☑ | ||
---|---|---|---|---|
0
vicof
18.12.24
✎
11:56
|
Всем привет. Должна получиться такая схема:
<xs:schema xmlns:tns="http://www.111.ru xmlns:xs="http://www.w3.org/2001/XMLSchema targetNamespace="http://www.111.ru/api/v1 attributeFormDefault="unqualified" elementFormDefault="qualified"> <xs:complexType name="ArrayOfObjectRights"> <xs:sequence> <xs:element name="ObjectRight" type="tns:ObjectRight" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:schema> Никак не могу заставить схему для ObjectRight установить minOccurs и maxOccurs СхемаXML = Новый СхемаXML; СхемаXML.ПространствоИмен = URIПространстваИмен; СхемаXML.ФормаАтрибутовПоУмолчанию = ФормаПредставленияXS.Неквалифицированная; СхемаXML.ФормаЭлементовПоУмолчанию = ФормаПредставленияXS.Квалифицированная; //------------------------------ ФрагментСхемыМассивОбъектныхПрав = Новый ФрагментXS; ФрагментСхемыМассивОбъектныхПрав.Часть = Новый ГруппаМоделиXS; ТипМассивОбъектныхПрав = Новый ОпределениеСоставногоТипаXS; ТипМассивОбъектныхПрав.Имя = "ArrayOfObjectRights"; ТипМассивОбъектныхПрав.Содержимое = ФрагментСхемыМассивОбъектныхПрав; СхемаXML.Содержимое.Добавить(ТипМассивОбъектныхПрав); ТипЭлементМассиваОбъектныхПрав = Новый ОбъявлениеЭлементаXS; ТипЭлементМассиваОбъектныхПрав.Имя = "ObjectRight"; ТипЭлементМассиваОбъектныхПрав.ИмяТипа = Новый РасширенноеИмяXML(URIПространстваИмен, "ObjectRight"); ФрагментыТипаМассивОбъектныхПрав = ТипМассивОбъектныхПрав.Содержимое.Часть.Фрагменты; ФрагментыТипаМассивОбъектныхПрав.Добавить(ТипЭлементМассиваОбъектныхПрав) Если делаю так, то у меня минимальное значение появляется на уровень выше, что логично. ТипМассивОбъектныхПрав.Содержимое.МинимальноВходит = 0; Судя по СП, "Минимимально входит" может появляться только у "ФрагментXS". Куда еще копнуть, чтобы именно у элемента установить минимально возможное количество элементов, не правя схему руками? |
|||
1
Андрюха
18.12.24
✎
10:47
|
<xs:element name="ObjectRight" type="tns:ObjectRight" minOccurs="0" maxOccurs="unbounded"/> По значениям минимум-максимум запись корректная. |
|||
2
vicof
18.12.24
✎
12:10
|
Это в том результате, который нужно получить.
А у меня или на уровне выше получается, или тип у ObjectRight нужно менять, что тоже неправильно. |
|||
3
vicof
19.12.24
✎
09:44
|
уп
|
|||
4
vicof
24.12.24
✎
02:27
|
В общем, я победил, если кому надо:
&НаСервере Функция СоздатьСхемуМассиваОбъектныхПрав(СхемаXML) URIПространстваИмен = URIПространстваИмен(); ИмяМассива = "ArrayOfObjectRights"; ИмяЭлементаВМассиве = "ObjectRight"; СхемаМассива = Новый ОпределениеСоставногоТипаXS; СхемаМассива.Имя = ИмяМассива; ГруппаМодели = Новый ГруппаМоделиXS; СхемаЭлементаМассива = Новый ОбъявлениеЭлементаXS; СхемаЭлементаМассива.Имя = ИмяЭлементаВМассиве; СхемаЭлементаМассива.ИмяТипа = Новый РасширенноеИмяXML(URIПространстваИмен, ИмяЭлементаВМассиве); ФрагментСхемы = Новый ФрагментXS; ФрагментСхемы.МинимальноВходит = 0; ФрагментСхемы.МаксимальноВходит = "unbounded"; ФрагментСхемы.Часть = СхемаЭлементаМассива; ГруппаМодели.Фрагменты.Добавить(ФрагментСхемы); СхемаМассива.Содержимое = ГруппаМодели; СхемаXML.Содержимое.Добавить(СхемаМассива); Возврат СхемаМассива; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |