我正在编写XSD来验证XML,但在验证时出现了以下错误:
输出错误
使用XML架构验证当前文件:
错误:元素'{http://www.w3.org/2001/XMLSchema-instance}Gasto':不应使用此元素。预计为(加斯托)
...我不明白这个错误
以下是我的XML示例:
<?xml version="1.0" encoding="UTF-8"?>
<Armazem>
<Lista_Gastos xmlns:artGasto="http://www.w3.org/2001/XMLSchema-instance"
artGasto:noNamespaceSchemaLocation="TraXSD.xsd">
<artGasto:Gasto id="50">
<artGasto:nome>Robalo</artGasto:nome>
<artGasto:quantidade>1</artGasto:quantidade>
</artGasto:Gasto>
</Lista_Gastos>
</Armazem>
下面是我的XSD示例:
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:artGasto="http://www.w3.org/2001/XMLSchema-instance">
<xsd:element name="Armazem">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Lista_Gastos"
type="TListGastos" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="TListGastos">
<xsd:sequence >
<xsd:element name="Gasto" type="TGasto"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TGasto">
<xsd:sequence >
<xsd:element name="nome" type="xsd:string" />
<xsd:element name="quantidade" type="xs:integer" />
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required"/>
</xsd:complexType>
意见:
xsd: integer
,而不是xs: integer
(仅仅因为在这种情况下被定义为命名空间前缀的是xsd
)。 artGasto
命名空间前缀来表示http://www.w3.org/2001/XMLSchema-instance
充其量是无意义的,并且可能是对命名空间的误解的标志。在这里使用xsi
。 http://www.w3.org/2001/XMLSchema-instance
。由于您的命名空间意图如此不清楚,我现在已经为您删除了它们。进行上述更改后,以下XML对以下XSD有效:
<?xml version="1.0" encoding="UTF-8"?>
<Armazem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="TraXSD.xsd">
<Lista_Gastos>
<Gasto id="50">
<nome>Robalo</nome>
<quantidade>1</quantidade>
</Gasto>
</Lista_Gastos>
</Armazem>
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Armazem">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Lista_Gastos" type="TListGastos" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="TListGastos">
<xsd:sequence >
<xsd:element name="Gasto" type="TGasto" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TGasto">
<xsd:sequence >
<xsd:element name="nome" type="xsd:string" />
<xsd:element name="quantidade" type="xsd:integer" />
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:schema>
解组时出现以下错误: 错误中的“{}”具体指的是什么,如何解压缩以匹配输入XML中的内容和对象的期望?
我尝试使用http://www.freeformatter.com/xml-validator-xsd.html但由于上面的错误,它失败了。我发现了许多相同的问题,但没有一个答案对我有帮助。请帮助,正确的XML/XSD是什么? 我的XML:(只有最小的一个) 我的XSD:(只有最小的一个)
我有以下带有unit&measure子元素的xml。 在SAXParseException中,我获得发生错误的行号。是否可以从行号中获取元素,然后获取其父元素?
“error_yn”在此位置无效,需要标识符。 出现语法错误。 我已经完成了变量声明,我不认为有什么遗漏。我该修什么?
晚安, 我正在对我的服务进行一些测试,在删除方法中执行测试时遇到了问题。 我想知道是否有人犯过这个错误,可以帮助我。 我扫描时出错。据报道,该方法没有使用。 例外情况: 代码: