2010-12-02 2 views
0

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

<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 Designer, у меня что-то вроде следующего:

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.

ответ

1

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

Я не думаю, что вы сможете решить эту проблему без изменения формы PDF, так как вы настроили ее ВСЕГДА вставлять BOTH детей ItemsSubForm.

Вы должны были использовать либо подформу выбора, либо параметры повтора, связанные с каждым элементом? Обертка (повтор для каждого элемента данных, Min Count = 0).

1

Если выбор действительно достаточно прост, вы можете использовать перечисление 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 элемент непосредственно под корневым элементом в вы схема.

Смежные вопросы