XML和schema
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XML和schema相关的知识,希望对你有一定的参考价值。
有下面的XML文档:
<房子>
<门>熊猫牌</门>
<窗户>老虎牌</窗户>
</房子>
请用schema对其规范,写出规范的XSD文件。
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="房子">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="门"/>
<xsd:element ref="窗户"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="门" type="xsd:string"/>
<xsd:element name="窗户" type="xsd:string"/>
</xsd:schema>
写出来为什么关联总出问题阿。。。
错误的是这
----------第1种,以contact为根元素----------------------------------------------------
<?xml version="1.0" encoding="GB2312"?>
<Contact xsi:noNamespaceSchemaLocation="ContactSchema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<name>jonh</name>
<phonenumber>0998876554</phonenumber>
<number>37</number>
<street>champ sleey</street>
<zipcode>80907</zipcode>
<city>hkonima</city>
<country>japan</country>
<surname>toms</surname>
</Contact>
--------第2种,以person为根元素-------------------------------------------------------
代码同上,只不过把Contact改为person
--------第3种,以company为根元素-----------------------------------------------------
代码相似,改了根元素名,去掉surname
<?xml version="1.0" encoding="GB2312"?>
<company xsi:noNamespaceSchemaLocation="ContactSchema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<name>jonh</name>
<phonenumber>0998876554</phonenumber>
<number>37</number>
<street>champ sleey</street>
<zipcode>80907</zipcode>
<city>hkonima</city>
<country>japan</country>
</company>
managed-schema 和 schema.xml 有啥区别
【中文标题】managed-schema 和 schema.xml 有啥区别【英文标题】:What is the difference between managed-schema and schema.xmlmanaged-schema 和 schema.xml 有什么区别 【发布时间】:2017-02-13 10:02:16 【问题描述】:我在 solr 6 中有以下问题。
-
managed-schema 和 schema.xml 的主要区别是什么
使用 managed-schema 和 schema.xml(classic) 有哪些优点和缺点。
您能否帮助我理解 solr6 中的推荐内容?
问候,
沙菲克
【问题讨论】:
他们为 solr 6 遵循的命名约定。命名改为托管模式而不是模式。目的是一样的。 【参考方案1】:我在想同样的事情之后做了一些调查,这是我能想到的最好的。
schema.xml
和managed-schema
似乎是相同的,只是他们在 Solr6 中更改了名称。
托管模式的好处
好处是您可以更安全地更改架构,而不必担心出现拼写错误或创建无效架构。如果某些内容无效,API 会拒绝您的更改。 架构 API 还可以处理架构更改后内核的所有重新加载,因此您不必这样做。托管模式的缺点
您不应该对托管模式进行手动编辑,因此您应该通过 API,这使得跟踪模式的当前状态变得更加困难(例如,通过版本控制)注意:Schema API 有一个端点来获取带有特殊参数
curl http://localhost:8983/solr/<COLLECTION>/schema?wt=schema.xml
的托管模式
注意:如果您有一个 schema.xml 文件并且在启动 Solr 时没有有一个托管模式并且没有在您的 solrconfig.xml 文件中指定 schemaFactory,Solr 将假定它是托管的,并从您的 schema.xml 文件创建一个 managed_schema,此时您的 schema.xml 文件不再被读取。托管模式将从此时开始读取。对 schema.xml 的进一步更改将被忽略。
【讨论】:
【参考方案2】:来自 Solr 6.6 参考 documentation:
managed-schema 是 Solr 默认使用的架构文件的名称 支持在运行时通过Schema API 进行架构更改,或者 无模式模式功能。您可以显式配置托管 如果您选择使用替代文件名的架构功能,但 Solr 仍会自动更新文件的内容。
schema.xml 是模式文件的传统名称,可以 由使用 ClassicIndexSchemaFactory 的用户手动编辑。
如果您想使用 schema.xml 手动编辑您的架构(尽管不推荐),而不是通过架构 api 作为托管架构,您可以通过在 solrconfig.xml 中设置 schemaFactory 配置来实现:
快速阅读此link,以清楚地回答您的所有问题。
【讨论】:
以上是关于XML和schema的主要内容,如果未能解决你的问题,请参考以下文章