【发布时间】:2020-07-19 01:08:59
【问题描述】:
尝试完成一个 XML 模式,该模式包括汽车的父元素,该元素具有品牌、型号等子元素。配件元素需要只有是或否值的属性。我已经为此工作了一段时间,并且已经到了下面,但它没有提供错误,只是第 22 行上的红色 x (扩展 base="cxml:YesNo")。在 XML 中,我在第 15 行收到以下错误,在此行找到多个注释:
- cvc-complex-type.4: Attribute 'Radio' must appear on element 'cxml:Accessories'.
- cvc-complex-type.4: Attribute 'Air_Conditioning' must appear on element
'cxml:Accessories'.
- cvc-complex-type.4: Attribute 'Power_Steering' must appear on element
'cxml:Accessories'.
- cvc-complex-type.4: Attribute 'Power_Brakes' must appear on element
'cxml:Accessories'.
- cvc-complex-type.4: Attribute 'Power_Windows' must appear on element
'cxml:Accessories'. I am using eclipse.
我知道是配件导致了问题,但我似乎找不到解决方法。任何帮助将不胜感激。
XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://xxxxxxxxxx.com/CarsXML"
xmlns:cxml="http://xxxxxxxxxxxx.com/CarsXML" elementFormDefault="qualified" >
<xs:element name= "Car">
<xs:complexType>
<xs:sequence>
<xs:element name="Make" type="xs:string" />
<xs:element name="Model" type="xs:string" />
<xs:element name="Year" type="xs:gYear" />
<xs:element name="Color" type="xs:string" />
<xs:element name="Engine" type="cxml:EngineInfo" />
<xs:element name="Number_of_Doors" type="xs:positiveInteger" />
<xs:element name="Transmission_Type" type="cxml:TransInfo" />
<xs:element name="Accessories" >
<xs:complexType>
<xs:simpleContent>
<extension base="cxml:YesNo">
<xs:attribute name="Radio" type="cxml:YesNo" use="required" />
<xs:attribute name="Air_Conditioning" type="cxml:YesNo" use="required"/>
<xs:attribute name="Power_Windows" type="cxml:YesNo" use="required"/>
<xs:attribute name="Power_Steering" type="cxml:YesNo" use="required"/>
<xs:attribute name="Power_Brakes" type="cxml:YesNo" use="required"/>
</extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="EngineInfo">
<xs:sequence>
<xs:element name="Number_Of_Cylinders" type="xs:positiveInteger"></xs:element>
<xs:element name="Fuel_System">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Carbureted"/>
<xs:enumeration value="Fuel_Injected"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TransInfo">
<xs:sequence>
<xs:element name="Transmission_Type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Automatic"/>
<xs:enumeration value="Manual"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="YesNo">
<xs:restriction base="xs:string">
<xs:enumeration value="Yes" />
<xs:enumeration value="No" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
XML:
<?xml version="1.0" encoding="UTF-8"?>
<cxml:Car xmlns:cxml="http://cis337-0217.cisdprogram.com/CarsXML"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:xxxxxxxx.com/CarsXML
Cars.xsd ">
<cxml:Make>cxml:Make</cxml:Make>
<cxml:Model>cxml:Model</cxml:Model>
<cxml:Year>2001</cxml:Year>
<cxml:Color>cxml:Color</cxml:Color>
<cxml:Engine>
<cxml:Number_Of_Cylinders>1</cxml:Number_Of_Cylinders>
<cxml:Fuel_System>Carbureted</cxml:Fuel_System>
</cxml:Engine>
<cxml:Number_of_Doors>1</cxml:Number_of_Doors>
<cxml:Transmission_Type>
<cxml:Transmission_Type>Automatic</cxml:Transmission_Type>
</cxml:Transmission_Type>
<cxml:Accessories>cxml:Accessories</cxml:Accessories>
</cxml:Car>
【问题讨论】:
标签: xml xsd attributes schema enumerate