Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel中的XSD映射以生成多个XML元素实例_Xml_Excel_Xsd - Fatal编程技术网

Excel中的XSD映射以生成多个XML元素实例

Excel中的XSD映射以生成多个XML元素实例,xml,excel,xsd,Xml,Excel,Xsd,我将XSD映射与excel结合使用,可以在其中插入信息以生成XML文件。问题是,我使用的XSD映射不允许我创建一个元素的多个实例。这是我的XSD代码: <?xml version="1.0" encoding="ISO-8859-1"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="application"> <xs:complexType

我将XSD映射与excel结合使用,可以在其中插入信息以生成XML文件。问题是,我使用的XSD映射不允许我创建一个元素的多个实例。这是我的XSD代码:

<?xml version="1.0" encoding="ISO-8859-1"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="application">
    <xs:complexType>
        <xs:all>
            <xs:element name="name" type="xs:string" />
            <xs:element name="pagina">
                <xs:complexType>
                    <xs:all>
                        <xs:element name="page_name" type="xs:string" />
                        <xs:element name="formulario" minOccurs="0">
                            <xs:complexType>
                                <xs:all>
                                    <xs:element name="textField" type="xs:string" minOccurs="0" />
                                    <xs:element name="checkBox">
                                        <xs:complexType>
                                            <xs:all>
                                                <xs:element name="opcao" type="xs:boolean" minOccurs="0" />
                                            </xs:all>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:all>
                            </xs:complexType>
                        </xs:element>

                        <xs:element name="listagem" minOccurs="0">
                            <xs:complexType>
                                <xs:all>
                                    <xs:element name="entrada" minOccurs="1" type="xs:string" />
                                </xs:all>   
                            </xs:complexType>
                        </xs:element>
                    </xs:all>
                </xs:complexType>
            </xs:element>

            <xs:element name="escolha" minOccurs="0">
                <xs:complexType>
                    <xs:all>
                        <xs:element name="origem" type="xs:string" /> 
                        <xs:element name="onSuccess" type="xs:string" />
                        <xs:element name="onFailure" type="xs:string" />
                    </xs:all>
                </xs:complexType>
            </xs:element>

        </xs:all>
    </xs:complexType>
</xs:element>

例如,当我在excel中创建地图时,我只能为“entrada”创建一个信息条目,而实际上,我希望能够为单个“listage”元素添加多个“entrada”信息条目


如何映射信息以实现此目的?

默认情况下
maxOccurs
minOccurs
将默认为1,仅允许单个元素。您需要将
maxOccurs
设置为
unbounded
或显式值

<xs:element name="entrada" minOccurs="1" maxOccurs="unbounded" type="xs:string" />


当我将maxOccurs=“unbounded”添加到“pagina”元素时,我得到“无法加载指定的XML架构”。出于某种原因,Excel不喜欢我将maxOccurs=“unbounded”添加到任何元素。是的,对不起。这将是xsd单独的解决方案,但excel地图显然不是这样工作的。我会找到一个允许多样性的Excel模式,然后窃取实现这一点的部分,或者创建一个示例XML文件,其中包含您需要的示例,并使用Excel映射生成工具。我正试图找到一个这样的示例,但我并不幸运。您最好的第一步是尝试该工具。这似乎是微软推荐的方式。甚至关于生成映射文件的更多技术信息似乎也提倡使用生成模式的脚本,而不是手动创建/修改(保持透明相对不透明)。这篇文章提到获得一个架构,如果不直接使用,至少可以从中窃取: