XML数据对于模式';无效;[A-FH-Z][A-Z]|[A-Z][A-QS-Z]';
当使用“34”作为我的值时,我得到以下错误: Cvc模式有效:值“34”对于 “TKodKrajuJPK”类型的图案“[A-FH-Z][A-Z]|[A-Z][A-QS-Z]”,第行 “86”,第“56”列 下面是XSD中类型的模式:XML数据对于模式';无效;[A-FH-Z][A-Z]|[A-Z][A-QS-Z]';,xml,xsd,Xml,Xsd,当使用“34”作为我的值时,我得到以下错误: Cvc模式有效:值“34”对于 “TKodKrajuJPK”类型的图案“[A-FH-Z][A-Z]|[A-Z][A-QS-Z]”,第行 “86”,第“56”列 下面是XSD中类型的模式: <xsd:simpleType name="TKodKraju"> <xsd:union memberTypes="etd:TKodKraju tns:TKodKrajuISO"/> </xsd:simpleTy
<xsd:simpleType name="TKodKraju">
<xsd:union memberTypes="etd:TKodKraju tns:TKodKrajuISO"/>
</xsd:simpleType>
<xsd:simpleType name="TKodKrajuISO">
<xsd:annotation>
<xsd:documentation>Uzupełnienie słownika kodów krajów o brakujące kody wg ISO 3166 oraz unijny kod dla Grecji - EL</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:normalizedString">
<xsd:enumeration value="SX">
<xsd:annotation>
<xsd:documentation>WYSPA SINT MAARTEN (CZĘŚĆ HOLENDERSKA WYSPY)</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="BQ">
<xsd:annotation>
<xsd:documentation>BONAIRE, SINT EUSTATIUS I SABA</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="SS">
<xsd:annotation>
<xsd:documentation>SUDAN POŁUDNIOWY</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="CW">
<xsd:annotation>
<xsd:documentation>CURAÇAO</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="EL">
<xsd:annotation>
<xsd:documentation>GRECJA</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TKodKrajuJPK">
<xsd:annotation>
<xsd:documentation>Wyklucznie ze słownika kodów krajów kodu dla Grecji - GR</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="tns:TKodKraju">
<xsd:pattern value="[A-FH-Z][A-Z]"/>
<xsd:pattern value="[A-Z][A-QS-Z]"/>
</xsd:restriction>
</xsd:simpleType>
Uzupełnie słownika kodów krajów o brakujące kody wg ISO 3166 oraz unijny kod dla Grecji-EL
圣马丁WYSPA(捷克霍伦德斯卡WYSPY)
博内尔,圣尤斯特乌斯一世萨巴
苏丹波乌德尼奥伊
库拉索
格雷加
Wyklucznie ze słownika kodów krajów kodu dla Grecji-GR
据我所知,它应该是a-Z
范围内的大写字母。但是,当我使用“AA”时,它仍然会出错:
Cvc数据类型有效。1.2.3:“AA”不是联合类型的有效值
“TKodKrajuJPK.”,第“86”行,第“56”列
但是当我使用BB
时,错误就被解决了
有人能澄清什么是有效值以及我应该输入哪种模式吗?这些是正则表达式。 它们定义了有效大写字母的范围 您的XML似乎包含一个34的数值。这显然是无效的。此外,您需要检查
子句后面的内容。如果没有该条款,AA
将通过验证
在原始帖子中的最新公开,pieces of XSD,意味着该值需要通过对枚举数“SX”、“BQ”、“SS”等的第一次验证,然后是正则表达式模式
XML
您告诉我们的验证错误似乎有两个 首先,“34”不符合正则表达式,因为它只允许大写字母 第二,“AA”无效的原因更为复杂。类型
TKodKrajuJPK
定义为TKodKraju
的限制,TKodKraju
定义为etd:TKodKraju
和tns:TKodKrajuISO
的联合。因此,“AA”必须满足(a)类型TKodKrajuJPK
(它确实满足)和(b)类型之一etd:TKodKraju
和tns:TKodKrajuISO
的约束
您没有向我们展示类型etd:TKodKraju
,因此我们不知道它是否对该类型有效(但证据表明不是),并且它对类型tns:TKodKrajuISO
肯定无效。因为这是5个特定值的枚举
所以我想我们需要看看AA对类型
etd:TKodKraju
是否有效,我怀疑它不是。我修改了它并尝试了AA
,但它仍然有一个错误。还有,正确的格式是什么?您能否进一步澄清,特别是关于模式[A-FH-Z][A-Z]
?我在答案中添加了一个小示例。谢谢您,我添加了有关XSD
的更多信息。如果您能进一步澄清,我将不胜感激。非常感谢。我用额外的解释更新了答案。我从哪里获得etd:TKodKraju
?在我上面的代码片段中,这是我唯一看到它的地方。它可能位于您没有向我们展示的模式部分的某个地方-可能是一个导入的模块,因为它是一个不同的名称空间。检查xsd:import
声明。
<?xml version="1.0"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="kod.xsd">
<kod>AA</kod>
</root>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element ref="kod"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="kod">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-FH-Z][A-Z]"/>
<xs:pattern value="[A-Z][A-QS-Z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
Running custom validation engine Saxonica 9.8.0.12 Validator...
SAXON-EE 9.8.0.12J from Saxonica validate complete