我有一个关于相同代码的新问题。现在我在XML文件中的所有单词(原始示例中只有一个,但我的文件中有更多)都有id:s,如下所示:
<words id="wordone">clock</words>
<words id="wordtwo">sleep</words>
现在我必须更改我的XML架构中的代码,但我无法弄清楚如何。我现在有这个:
<xsd:element name="words" type="xsd:string" maxOccurs="unbounded" />
而且我认为这样可行,因为单词的名称仍然是“单词”,但我收到错误。我错过了什么?
我是新手,我需要一些帮助。 :)这是我的第一次尝试,我的XML架构如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!-- File Name: words.xsd -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>
Lexicon spanish english
</xsd:documentation>
</xsd:annotation>
<xsd:element name="english">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="listwords"/>
<xsd:element name="language" type="xsd:string"/>
<xsd:element name="authur" type="xsd:string"/>
<xsd:element name="allwords" type="xsd:string"/>
<xsd:element name="words" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
和我的XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="main.css"?>
<english xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="words.xsd">
<!-- Filename: english.xml -->
<!-- Authur: FL -->
<!-- Date: 2016-11-15 -->
<listwords>
<language>English</language>
<authur>FL</authur>
<allwords>
<words>clock</words>
</allwords>
</listwords>
错误:“XML文档结构必须在同一实体内开始和结束。”
帮助? :)
答案 0 :(得分:1)
您必须在文件底部添加<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="main.css"?>
<english xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="words.xsd">
<!-- Filename: english.xml -->
<!-- Authur: FL -->
<!-- Date: 2016-11-15 -->
<listwords>
<language>English</language>
<authur>FL</authur>
<allwords>
<words>clock</words>
</allwords>
</listwords>
</english>
:
IndexResponse response = client.prepareIndex(indexName, documentName)
.setSource(mapper.writeValueAsString(data))
.get();