我有选择声明的xsd
<xs:complexType name="opt_type">
<xs:choice>
<xs:element name="opt_1_1" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xsd:string">
<xs:enumeration value="opt_1_1 value 1"/>
<xs:enumeration value="opt_1_1 value 2"/>
<xs:enumeration value="opt_1_1 value 3"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="opt_1_2" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xsd:string">
<xs:enumeration value="opt_1_2 value"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="opt_1_3" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xsd:string">
<xs:enumeration value="opt_1_3 value"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:choice>
</xs:complexType>
...
<xs:element name="opt" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
...
<xs:element name="opt_1" type="myns:opt_type" minOccurs="0"></xs:element>
...
</xs:sequence>
</xs:complexType>
</xs:element>
我需要xforms(我和Orbeon一起工作),根据用户的选择,我会根据这些节点给出xml:
<myns:opt_1>
<myns:opt_1_1>opt_1_1 value 1</myns:opt_1_1>
</myns:opt_1>
或
<myns:opt_1>
<myns:opt_1_1>opt_1_1 value 2</myns:opt_1_1>
</myns:opt_1>
或
<myns:opt_1>
<myns:opt_1_1>opt_1_1 value 3</myns:opt_1_1>
</myns:opt_1>
或
<myns:opt_1>
<myns:opt_1_2>opt_1_2 value</myns:opt_1_1>
</myns:opt_1>
或
<myns:opt_1>
<myns:opt_1_3>opt_1_3 value</myns:opt_1_1>
</myns:opt_1>
我怎样才能实现这一目标? 如何构建xforms?
答案 0 :(得分:0)
简而言之,您希望更改XML的结构(使用不同的元素名称)。为此,您的工具应该是使用xf:insert
和xf:delete
的操作,以插入和删除元素。您需要手动执行此操作&#34;,因为XForms引擎不会根据架构自动为您执行此操作。