【发布时间】:2021-05-02 12:40:09
【问题描述】:
我试图在 XSD 文件(XML Schema)中引用一些属性,并得到以下错误:
属性“code”不允许出现在元素“project”中。
属性“type”不允许出现在元素“duration”中。
属性“type”不允许出现在元素“duration”中。
谁能向我解释我做错了什么?
这是我的 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<timesheets xmlns="http://www.dcs.bbk.ac.uk/~lharar01/ns/timesheets"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.dcs.bbk.ac.uk/~lharar01/ns/timesheets timesheets.xsd">
<employee id="234456" ismanager="false" hiredate="2003-01-12">
<firstname>Julie</firstname>
<surname>Smith</surname>
</employee>
<projects>
<project code="TSK2367">
<task>
<description>Create project plan for MIJ website</description>
<duration type="days">
<planned>2</planned>
<actual>1</actual>
</duration>
</task>
<task>
<description>Draft the conceptual web site navigation for MIJ</description>
<duration type="hours">
<planned>3</planned>
<actual>2</actual>
</duration>
</task>
</project>
</projects>
</timesheets>
这是我的 XSD 文件:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.dcs.bbk.ac.uk/~lharar01/ns/timesheets"
xmlns="http://www.dcs.bbk.ac.uk/~lharar01/ns/timesheets"
>
<xs:attributeGroup name="employeeAttrs">
<xs:attribute name="id" type="xs:int" />
<xs:attribute name="ismanager" type="xs:boolean" />
<xs:attribute name="hiredate" type="xs:date" />
</xs:attributeGroup>
<xs:element name="firstname" type="xs:string" />
<xs:element name="surname" type="xs:string" />
<xs:attribute name="code" type="xs:string" />
<xs:element name="description" type="xs:string" />
<xs:attribute name="type" type="xs:string" />
<xs:element name="planned" type="xs:int" />
<xs:element name="actual" type="xs:int" />
<xs:element name="timesheets">
<xs:complexType>
<xs:sequence>
<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element ref="firstname" />
<xs:element ref="surname" />
</xs:sequence>
<xs:attributeGroup ref="employeeAttrs" />
</xs:complexType>
</xs:element>
<xs:element name="projects">
<xs:complexType>
<xs:sequence>
<xs:element name="project" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="task" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="description" />
<xs:element name="duration">
<xs:complexType>
<xs:sequence>
<xs:element ref="planned" />
<xs:element ref="actual" />
</xs:sequence>
<xs:attribute ref="type" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute ref="code" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
【问题讨论】:
-
我使用 XmlPad 验证您拥有的内容,没有发现任何错误。你在用什么?
-
嗨,史蒂夫,我正在使用 Oxygen XML 作者。
标签: xml xsd xml-validation