我正在尝试编写XSD。当我尝试使用此XSD解析XML时,以下组件导致错误。错误消息是
内容无效。预期是(注释?)。,第9行
我尝试删除xs:annotation
部分,但没有运气。我在其他地方定义了'Job'和'JobParameter'。有人可以帮助我吗?
<xs:complexType name='JobsType'>
<xs:annotation>
<xs:documentation>
A collection of Jobs for this component
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref='Job' minOccurs='1' maxOccurs='unbounded'>
<xs:complexType>
<xs:annotation>
<xs:documentation>
A job element
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name='JobParameters' type='JobParametersType' minOccurs='0' maxOccurs='1'>
<xs:annotation>
<xs:documentation>
A collection of job parameters
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name='JobParametersType'>
<xs:annotation>
<xs:documentation>
A collection of Actions for this component
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref='JobParameter' minOccurs='1' maxOccurs='unbounded'/>
</xs:sequence>
</xs:complexType>
答案 0 :(得分:1)
使用xs:element/@ref
引用全局声明的元素。
使用xs:element/@name
为本地声明的元素指定名称。
@ref
或@name
。 您不能同时使用。以上是适用于您的XSD的更正。请注意,JobParameter
元素可能会在其他位置定义可以引用的定义,但由于您未包含它,我继续将其更改为@name
属性。你可能想要改变它。
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:complexType name='JobsType'>
<xs:annotation>
<xs:documentation>
A collection of Jobs for this component
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name='Job' minOccurs='1' maxOccurs='unbounded'>
<xs:complexType>
<xs:annotation>
<xs:documentation>
A job element
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name='JobParameters'
type='JobParametersType' minOccurs='0' maxOccurs='1'>
<xs:annotation>
<xs:documentation>
A collection of job parameters
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name='JobParametersType'>
<xs:annotation>
<xs:documentation>
A collection of Actions for this component
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name='JobParameter'
minOccurs='1' maxOccurs='unbounded'/>
</xs:sequence>
</xs:complexType>
</xs:schema>