IntelliJ中无法识别XML Schema唯一约束

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IntelliJ中无法识别XML Schema唯一约束相关的知识,希望对你有一定的参考价值。

在尝试了许多事情以在IntelliJ中通过一个独特的约束获得错误之后,我开始怀疑IntelliJ是否甚至认识到它。

我试过的最后一个模式来自这篇文章Unique constraint in XML Schema

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.brabantia.com/XMLSchema/ESBConfig"
        xmlns:tns="http://www.brabantia.com/XMLSchema/ESBConfig"
        elementFormDefault="qualified">
    <element name="authors">
        <complexType>
            <sequence>
                <element name="author" maxOccurs="unbounded" type="string"/>
            </sequence>
        </complexType>
        <unique name="uniqueAuthor">
            <selector xpath="author"/>
            <field xpath="."/>
        </unique>
    </element>
</schema>

我曾经用IntelliJ生成XML。

<?xml version="1.0" encoding="UTF-8"?>
<esb:authors xmlns:esb="http://www.brabantia.com/XMLSchema/ESBConfig">
  <!--1 or more repetitions:-->
  <esb:author>string</esb:author>
  <esb:author>string</esb:author>
  <esb:author>string</esb:author>
</esb:authors>

哪个应该显示错误,但事实并非如此。

Generate Instance Document From Schema巫师我检查了Enable restriction checkEnable unique check

所有其他检查都有效,如枚举和模式。

有人可以告诉我这是架构中的东西还是IntellJ中根本不支持的东西?

答案

添加xmlns:esb="http://www.brabantia.com/XMLSchema/ESBConfig"并更改为<selector xpath="esb:author"/> in your schema

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.brabantia.com/XMLSchema/ESBConfig"
        xmlns:esb="http://www.brabantia.com/XMLSchema/ESBConfig"
        elementFormDefault="qualified">
    <element name="authors">
        <complexType>
            <sequence>
                <element name="author" maxOccurs="unbounded" type="string"/>
            </sequence>
        </complexType>
        <unique name="uniqueAuthor">
            <selector xpath="esb:author"/>
            <field xpath="."/>
        </unique>
    </element>
</schema>

结果:

Validation result

以上是关于IntelliJ中无法识别XML Schema唯一约束的主要内容,如果未能解决你的问题,请参考以下文章

XML Schema 1.1无法识别'assert'或'assertion'

无法让 IntelliJ 识别 proto 编译的 Java 类文件

Intellij IDEA:如何验证 XML SCHEMA 1

Intellij IDEA 无法识别 Maven 依赖项中指定的类

Intellij IDEA 无法识别 Maven 依赖项中指定的类

Intellij 无法识别 h2 表