Представляют элементы выбора XSD в формы PDF -дизайнера LiveCycle

StackOverflow https://stackoverflow.com/questions/4333701

Вопрос

Я использую Adobe LiveCycle Designer и XML -файлы для создания некоторых форм PDF для проекта. Я создал XSD, который, помимо прочего, содержит неограниченную последовательность вариантов, например, что -то вроде следующего:

<xs:sequence maxOccurs="unbounded">
  <xs:choice>
    <xs:element name="Item1" type="xs:string" />
    <xs:element name="Item2" type="xs:string"/>
  </xs:choice>
</xs:sequence>

Чтобы представить это в дизайнере Adobe LiveCycle, у меня есть что -то вроде следующего:

MyForm (Subform)
  ItemsSubForm (Subform, repeated for many items)
    Item1Wrapper (Subform)
      Item1 (TextField)
    Item2Wrapper (Subform)
      Item2 (TextField)
  AddItemsButtonsSubForm
    AddItem1Button (Button)
    AddItem2Button (Button)

Когда кто -то нажимает на Additem1button, я создаю новый экземпляр itemsSubform, используя следующее:

this.parent.parent._ItemsSubForm.addInstance();
xfa.resolveNode("this.parent.parent.ItemsSubForm[" +(this.parent.parent.ItemsSubForm.instanceManager.count - 1) + "]").Item2Wrapper.presence = "hidden";

И противоположная вещь для Additem2button.

Проблема в том, что, кроме вставки элементов вручную, я также хочу иметь возможность использовать XML -файл, и по этой причине я создал XSD выше. Я также использую привязки для ассоциации элементов item1 и item2 из XSD с Item1wrapper и Item2wrapper соответственно. Проблема в том, что, как только у меня есть элемент Item1 в XML, созданы как Item1wrapper, так и Item2wrapper (и то же самое с Item2). Есть ли способ управлять загрузкой, чтобы скрыть соответствующую обертку?

Я хотел бы сообщить вам, что, к сожалению, я не могу изменить ни PDFFORM, ни XSD.

Это было полезно?

Решение

Если я правильно вас понимаю, решение должно быть ограничено изменением файла XML.

Я не думаю, что вы сможете решить это, не изменяя форму PDF, поскольку вы настроили ее, чтобы всегда вставить обоих детей из предметов.

Вы должны были использовать либо подраздел «Выбор», либо настройки повторения, связанные с каждым элементом? Обертка (повторите для каждого элемента данных, min count = 0).

Другие советы

Если выбор действительно довольно прост, вы можете использовать XSD: перечисление. В противном случае ваш сложный тип должен выглядеть так:

<xs:complexType name="ItemList">
    <xs:sequence>
       <xs:element name="item" type="xs:string" maxOccurs="unbounded"/>
    </xs:sequence>
</xs:complexType>
<xs:element name="myItems" type="ItemList"/>

и ваши привязки в диалоговом окне динамических свойств «Список элементов» должны быть

Items:   $record.myItems.item[*]
Item Text:   $
Item Value:  $

предполагая, что вы положили myItems Элемент прямо под корневым элементом в вашей схеме.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top