簡體   English   中英

Src-resolve:無法將名稱“ Flowers”解析為A(n)“ type Definition”組件

[英]Src-resolve: Cannot Resolve The Name 'Flowers' To A(n) 'type Definition' Component

我有一個XML文件需要閱讀,它看起來與此類似:

<?xml version="1.0" encoding="UTF-8"?>
<flowers>
    <flower name="rose">
        <soilType>Podzolic</soilType>   
        <visualParameters>
            <stemColor>Green</stemColor>
            <leafColor>Red</leafColor>
            <averageSize>50</averageSize>
        </visualParameters>
    <growingTips>
            <LightType>photophilous</LightType>
            <temperature>38</temperature>
            <watering>1200</watering>
        </growingTips>
    <multiplying>bySeeds</multiplying>
    <origin>Belarus</origin>
        <description>Classic Choice</description>
    </flower>
</flowers>

在構建時,我正在使用JAXB為XSD生成類(此xsd由幾列修改)。 當我嘗試驗證它時,它抱怨

無法將名稱“花”解析為A(n)“類型定義”組件。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="flowers" type="Flowers"></xs:element>

<xs:complexType name="flowers">
   <xs:sequence>
     <xs:element name="flower" type="flower" maxOccurs="unbounded" />
   </xs:sequence>
 </xs:complexType>

   <xs:element name="flower" type="FlowerType"/>
 <xs:complexType name="flower">
    <xs:sequence>
      <xs:element name="soilType" type="SoilType" minOccurs="0"/>
      <xs:element name="visualParameters" type="VisualParameters" minOccurs="0"/>
      <xs:element name="growingTips" type="growingTips" minOccurs="0"/>
      <xs:element name="multiplyingType" type="multiplyingType" minOccurs="0"/>
      <xs:element name="origin" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="name" type="xs:string"/>
  </xs:complexType>


  <xs:complexType name="growingTips">
    <xs:sequence>
      <xs:element name="temperature" type="xs:int"/>
      <xs:element name="watering" type="xs:int"/>
    </xs:sequence>
    <xs:attribute name="value" type="lightingType"/>
  </xs:complexType>

  <xs:complexType name="VisualParameters">
    <xs:sequence>
      <xs:element name="stemColor" type="xs:string" minOccurs="0"/>
      <xs:element name="leafColor" type="xs:string" minOccurs="0"/>
      <xs:element name="averageSize" type="xs:int"/>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="multiplyingType">
    <xs:restriction base="SoilName"/>
  </xs:simpleType>

  <xs:complexType name="SoilType">
    <xs:sequence>
      <xs:element name="value" type="Soil" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="lightingType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="photophilous"/>
      <xs:enumeration value="unphotophilous"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="SoilName">
    <xs:restriction base="xs:string">
      <xs:enumeration value="byLeafs"/>
      <xs:enumeration value="byCutting"/>
      <xs:enumeration value="bySeeds"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="Soil">
    <xs:restriction base="xs:string">
      <xs:enumeration value="podzolic"/>
      <xs:enumeration value="dirt"/>
      <xs:enumeration value="sodPodzolic"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

如何設置架構以成功驗證xml?

我懷疑flowers元素的定義是原因,可能應該這樣寫:

<xs:complexType name="flowers">
   <xs:sequence>
     <xs:element name="flower" type="flower" maxOccurs="unbounded" />
   </xs:sequence>
 </xs:complexType>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM