cvc-complex-type.2.4.a:发现以元素 'Team' 开头的无效内容。应为“{"":Player}”之一

cvc-complex-type.2.4.a: Invalid content was found starting with element 'Team'. One of '{"":Player}' is expected

这是我第一次在这里提问,如果格式不正确请见谅。

谁能帮我理解这个错误:

cvc-complex-type.2.4.a: Invalid content was found starting with element 'Team'. One of '{"":Player}' is expected.

我的.xml 文件

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

<Teams xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Homework3.xsd">

<Team Name="Cubs" Est="1876" State="Illinois" City="Chicago" FieldName="Wrigley Field" MascotName="Clark">
    <Player>
        <Name>Willson Contreras</Name>
        <BirthDate>1992-05-13</BirthDate>
        <Position>Catcher</Position>
        <RBIs>40</RBIs>
        <HRs>17</HRs>
        <BattingAvg>.227</BattingAvg>
    </Player>
    <Player>
        <Name>David Bote</Name>
        <BirthDate>1993-04-07</BirthDate>
        <Position>Second Base</Position>
        <RBIs>32</RBIs>
        <HRs>8</HRs>
        <BattingAvg>.202</BattingAvg>
    </Player>
    <Player>
        <Name>Ian Happ</Name>
        <BirthDate>1994-08-12</BirthDate>
        <Position>Center Field</Position>
        <RBIs>48</RBIs>
        <HRs>19</HRs>
        <BattingAvg>.214</BattingAvg>
    </Player>
    <Player>
        <Name>Jason Heyward</Name>
        <BirthDate>1989-08-09</BirthDate>
        <Position>Right Field</Position>
        <RBIs>27</RBIs>
        <HRs>7</HRs>
        <BattingAvg>.213</BattingAvg>
    </Player>
    <Player>
        <Name>Patrick Wisdom</Name>
        <BirthDate>1991-08-27</BirthDate>
        <Position>Third Base</Position>
        <RBIs>50</RBIs>
        <HRs>25</HRs>
        <BattingAvg>.239</BattingAvg>
    </Player>
</Team>
<Team Name="White Sox" Est="1900" State="Illinois" City="Chicago" FieldName="Guaranteed Rate Field" MascotName="Southpaw">
    <Player>
        <Name>Jose Abreu</Name>
        <BirthDate>1987-01-29</BirthDate>
        <Position>First Base</Position>
        <RBIs>103</RBIs>
        <HRs>28</HRs>
        <BattingAvg>.265</BattingAvg>
    </Player>
    <Player>
        <Name>Leury Garcia</Name>
        <BirthDate>1991-03-18</BirthDate>
        <Position>Center Field</Position>
        <RBIs>46</RBIs>
        <HRs>3</HRs>
        <BattingAvg>.255</BattingAvg>
    </Player>
    <Player>
        <Name>Brian Goodwin</Name>
        <BirthDate>1990-11-02</BirthDate>
        <Position>Center Field</Position>
        <RBIs>26</RBIs>
        <HRs>8</HRs>
        <BattingAvg>.229</BattingAvg>
    </Player>
    <Player>
        <Name>Yasmani Grandal</Name>
        <BirthDate>1988-11-08</BirthDate>
        <Position>Catcher</Position>
        <RBIs>53</RBIs>
        <HRs>19</HRs>
        <BattingAvg>.227</BattingAvg>
    </Player>
    <Player>
        <Name>Cesar Hernandez</Name>
        <BirthDate>1990-05-23</BirthDate>
        <Position>Second Base</Position>
        <RBIs>52</RBIs>
        <HRs>21</HRs>
        <BattingAvg>.226</BattingAvg>
    </Player>
</Team>
<Team Name="Yankees" Est="1901" State="New York" City="New York City" FieldName="Yankee Stadium" MascotName="N/A">
    <Player>
        <Name>Anthony Rizzo</Name>
        <BirthDate>1989-08-08</BirthDate>
        <Position>First Base</Position>
        <RBIs>53</RBIs>
        <HRs>18</HRs>
        <BattingAvg>.249</BattingAvg>
    </Player>
    <Player>
        <Name>Joey Gallo</Name>
        <BirthDate>1993-11-19</BirthDate>
        <Position>Right Field</Position>
        <RBIs>68</RBIs>
        <HRs>31</HRs>
        <BattingAvg>.196</BattingAvg>
    </Player>
    <Player>
        <Name>Brett Gardner</Name>
        <BirthDate>1983-08-24</BirthDate>
        <Position>Left Field</Position>
        <RBIs>26</RBIs>
        <HRs>6</HRs>
        <BattingAvg>.213</BattingAvg>
    </Player>
    <Player>
        <Name>Aaron Judge</Name>
        <BirthDate>1992-04-26</BirthDate>
        <Position>Right Field</Position>
        <RBIs>75</RBIs>
        <HRs>30</HRs>
        <BattingAvg>.291</BattingAvg>
    </Player>
    <Player>
        <Name>DJ LeMahieu</Name>
        <BirthDate>1988-07-13</BirthDate>
        <Position>Second Base</Position>
        <RBIs>54</RBIs>
        <HRs>9</HRs>
        <BattingAvg>.268</BattingAvg>
    </Player>
</Team>
<Team Name="Dodgers" Est="1883" State="California" City="Los Angeles" FieldName="Dodgers Stadium" MascotName="N/A">
    <Player>
        <Name>Cody Bellinger</Name>
        <BirthDate>1995-07-13</BirthDate>
        <Position>Center Field</Position>
        <RBIs>32</RBIs>
        <HRs>9</HRs>
        <BattingAvg>.165</BattingAvg>
    </Player>
    <Player>
        <Name>Mookie Betts</Name>
        <BirthDate>1992-10-07</BirthDate>
        <Position>Right Field</Position>
        <RBIs>47</RBIs>
        <HRs>19</HRs>
        <BattingAvg>.266</BattingAvg>
    </Player>
    <Player>
        <Name>Albert Pujols</Name>
        <BirthDate>1980-01-16</BirthDate>
        <Position>First Base</Position>
        <RBIs>48</RBIs>
        <HRs>16</HRs>
        <BattingAvg>.239</BattingAvg>
    </Player>
    <Player>
        <Name>Justin Turner</Name>
        <BirthDate>1984-11-23</BirthDate>
        <Position>Third Base</Position>
        <RBIs>71</RBIs>
        <HRs>21</HRs>
        <BattingAvg>.279</BattingAvg>
    </Player>
    <Player>
        <Name>Trea Turner</Name>
        <BirthDate>1993-06-30</BirthDate>
        <Position>Shortstop</Position>
        <RBIs>58</RBIs>
        <HRs>21</HRs>
        <BattingAvg>.319</BattingAvg>
    </Player>
</Team> 
<Team Name="Brewers" Est="1969" State="Wisconsin" City="Milwaukee" FieldName="American Family Field" MascotName="Bernie Brewer">
    <Player>
        <Name>Jackie Bradley Jr.</Name>
        <BirthDate>1990-04-19</BirthDate>
        <Position>Center Field</Position>
        <RBIs>29</RBIs>
        <HRs>6</HRs>
        <BattingAvg>.169</BattingAvg>
    </Player>
    <Player>
        <Name>Eduardo Escobar</Name>
        <BirthDate>1989-01-05</BirthDate>
        <Position>Second Base</Position>
        <RBIs>73</RBIs>
        <HRs>24</HRs>
        <BattingAvg>.256</BattingAvg>
    </Player>
    <Player>
        <Name>Omar Narvaez</Name>
        <BirthDate>1992-02-10</BirthDate>
        <Position>Catcher</Position>
        <RBIs>45</RBIs>
        <HRs>11</HRs>
        <BattingAvg>.283</BattingAvg>
    </Player>
    <Player>
        <Name>Jace Peterson</Name>
        <BirthDate>1990-05-09</BirthDate>
        <Position>Second Base</Position>
        <RBIs>30</RBIs>
        <HRs>5</HRs>
        <BattingAvg>.272</BattingAvg>
    </Player>
    <Player>
        <Name>Christian Yelich</Name>
        <BirthDate>1991-15-05</BirthDate>
        <Position>Left Field</Position>
        <RBIs>41</RBIs>
        <HRs>8</HRs>
        <BattingAvg>.255</BattingAvg>
    </Player>
</Team>
<Team Name="Indians" Est="1894" State="Ohio" City="Cleveland" FieldName="Progressive Field" MascotName="Slider">
    <Player>
        <Name>Bobby Bradley</Name>
        <BirthDate>1996-05-29</BirthDate>
        <Position>First Base</Position>
        <RBIs>31</RBIs>
        <HRs>12</HRs>
        <BattingAvg>.222</BattingAvg>
    </Player>
    <Player>
        <Name>Andres Gimenez</Name>
        <BirthDate>1998-07-24</BirthDate>
        <Position>Shortstop</Position>
        <RBIs>9</RBIs>
        <HRs>2</HRs>
        <BattingAvg>.206</BattingAvg>
    </Player>
    <Player>
        <Name>Austin Hedges</Name>
        <BirthDate>1992-08-18</BirthDate>
        <Position>Catcher</Position>
        <RBIs>27</RBIs>
        <HRs>8</HRs>
        <BattingAvg>.182</BattingAvg>
    </Player>
    <Player>
        <Name>Daniel Johnson</Name>
        <BirthDate>1995-07-11</BirthDate>
        <Position>Right Field</Position>
        <RBIs>5</RBIs>
        <HRs>4</HRs>
        <BattingAvg>.230</BattingAvg>
    </Player>
    <Player>
        <Name>Oscar Mercado</Name>
        <BirthDate>1994-12-16</BirthDate>
        <Position>Left Field</Position>
        <RBIs>11</RBIs>
        <HRs>3</HRs>
        <BattingAvg>.221</BattingAvg>
    </Player>
</Team>
<Team Name="Royals" Est="1969" State="Missouri" City="Kansas City" FieldName="Kauffman Stadium" MascotName="Sluggerrr">
    <Player>
        <Name>Hanser Alberto</Name>
        <BirthDate>1992-10-17</BirthDate>
        <Position>Third Base</Position>
        <RBIs>20</RBIs>
        <HRs>2</HRs>
        <BattingAvg>.258</BattingAvg>
    </Player>
    <Player>
        <Name>Andrew Benintendi</Name>
        <BirthDate>1994-07-06</BirthDate>
        <Position>Left Field</Position>
        <RBIs>46</RBIs>
        <HRs>12</HRs>
        <BattingAvg>.254</BattingAvg>
    </Player>
    <Player>
        <Name>Hunter Dozier</Name>
        <BirthDate>1991-08-22</BirthDate>
        <Position>Third Base</Position>
        <RBIs>39</RBIs>
        <HRs>10</HRs>
        <BattingAvg>.202</BattingAvg>
    </Player>
    <Player>
        <Name>Nicky Lopez</Name>
        <BirthDate>1995-03-13</BirthDate>
        <Position>Shortstop</Position>
        <RBIs>34</RBIs>
        <HRs>1</HRs>
        <BattingAvg>.290</BattingAvg>
    </Player>
    <Player>
        <Name>Whit Merrifield</Name>
        <BirthDate>1989-01-24</BirthDate>
        <Position>Second Base</Position>
        <RBIs>68</RBIs>
        <HRs>10</HRs>
        <BattingAvg>.278</BattingAvg>
    </Player>
</Team>
<Team Name="Reds" Est="1881" State="Ohio" City="Cincinati" FieldName="Great American Ball Park" MascotName="Mr. Redlegs">
    <Player>
        <Name>Shogo Akiyama</Name>
        <BirthDate>1988-04-16</BirthDate>
        <Position>Left Field</Position>
        <RBIs>12</RBIs>
        <HRs>0</HRs>
        <BattingAvg>.199</BattingAvg>
    </Player>
    <Player>
        <Name>Aristides Aquino</Name>
        <BirthDate>1994-04-22</BirthDate>
        <Position>Right Field</Position>
        <RBIs>20</RBIs>
        <HRs>9</HRs>
        <BattingAvg>.195</BattingAvg>
    </Player>
    <Player>
        <Name>Tucker Barnhart</Name>
        <BirthDate>1991-01-07</BirthDate>
        <Position>Catcher</Position>
        <RBIs>43</RBIs>
        <HRs>7</HRs>
        <BattingAvg>.269</BattingAvg>
    </Player>
    <Player>
        <Name>Asdrubal Cabrera</Name>
        <BirthDate>1985-11-13</BirthDate>
        <Position>Third Base</Position>
        <RBIs>41</RBIs>
        <HRs>7</HRs>
        <BattingAvg>.235</BattingAvg>
    </Player>
    <Player>
        <Name>Nick Castellanos</Name>
        <BirthDate>1992-03-04</BirthDate>
        <Position>Right Field</Position>
        <RBIs>78</RBIs>
        <HRs>26</HRs>
        <BattingAvg>.321</BattingAvg>
    </Player>
</Team>
<Team Name="Red Sox" Est="1901" State="Massachusetts" City="Boston" FieldName="Fenway Park" MascotName="Wally the Green Monster">
    <Player>
        <Name>Jonathan Arauz</Name>
        <BirthDate>1998-08-03</BirthDate>
        <Position>Second Base</Position>
        <RBIs>7</RBIs>
        <HRs>3</HRs>
        <BattingAvg>.169</BattingAvg>
    </Player>
    <Player>
        <Name>Franchy Cordero</Name>
        <BirthDate>1994-09-02</BirthDate>
        <Position>Left Field</Position>
        <RBIs>9</RBIs>
        <HRs>1</HRs>
        <BattingAvg>.189</BattingAvg>
    </Player>
    <Player>
        <Name>Bobby Dalbec</Name>
        <BirthDate>1995-06-29</BirthDate>
        <Position>First Base</Position>
        <RBIs>65</RBIs>
        <HRs>18</HRs>
        <BattingAvg>.240</BattingAvg>
    </Player>
    <Player>
        <Name>Rafael Devers</Name>
        <BirthDate>1996-10-24</BirthDate>
        <Position>Third Base</Position>
        <RBIs>101</RBIs>
        <HRs>33</HRs>
        <BattingAvg>.276</BattingAvg>
    </Player>
    <Player>
        <Name>Jose Iglesias</Name>
        <BirthDate>1990-01-05</BirthDate>
        <Position>Shortstop</Position>
        <RBIs>42</RBIs>
        <HRs>8</HRs>
        <BattingAvg>.261</BattingAvg>
    </Player>
</Team>
<Team Name="Cardinals" Est="1882" State="Missouri" City="St. Louis" FieldName="Busch Stadium" MascotName="Fredbird">
    <Player>
        <Name>Nolan Arenado</Name>
        <BirthDate>1991-04-16</BirthDate>
        <Position>Third Base</Position>
        <RBIs>88</RBIs>
        <HRs>29</HRs>
        <BattingAvg>.257</BattingAvg>
    </Player>
    <Player>
        <Name>Harrison Bader</Name>
        <BirthDate>1994-06-03</BirthDate>
        <Position>Center Field</Position>
        <RBIs>37</RBIs>
        <HRs>11</HRs>
        <BattingAvg>.248</BattingAvg>
    </Player>
    <Player>
        <Name>Dylan Carlson</Name>
        <BirthDate>1998-10-23</BirthDate>
        <Position>Center Field</Position>
        <RBIs>48</RBIs>
        <HRs>13</HRs>
        <BattingAvg>.259</BattingAvg>
    </Player>
    <Player>
        <Name>Matt Carpenter</Name>
        <BirthDate>1985-11-26</BirthDate>
        <Position>Second Base</Position>
        <RBIs>21</RBIs>
        <HRs>3</HRs>
        <BattingAvg>.176</BattingAvg>
    </Player>
    <Player>
        <Name>Paul DeJong</Name>
        <BirthDate>1993-08-02</BirthDate>
        <Position>Shortstop</Position>
        <RBIs>40</RBIs>
        <HRs>16</HRs>
        <BattingAvg>.197</BattingAvg>
    </Player>
</Team>

我的.xsd 文件:

    <?xml version="1.0" encoding="UTF-8" ?>

    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
    <xs:simpleType name="RBIsType">
        <xs:restriction base="xs:integer">
           <xs:minInclusive value="0" />
           <xs:maxInclusive value="150" />     
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="NameType">
        <xs:restriction base="xs:string">
           <xs:pattern value="[A-Z][\-A-Za-z './]+" /> 
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="EstType">
        <xs:restriction base="xs:string">
           <xs:pattern value="\d\d\d\d" /> 
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="baType">
        <xs:restriction base="xs:decimal">
           <xs:minInclusive value=".000" />
           <xs:maxInclusive value=".500"    />     
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="dateType">
        <xs:restriction base="xs:string">
            <xs:pattern value="\d\d\d\d-\d\d-\d\d" />
        </xs:restriction>
    </xs:simpleType>
    
    <xs:element name="Player">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Name" type="NameType" />
                <xs:element name="BirthDate" type="dateType" />
                <xs:element name="Position" type="NameType" />
                <xs:element name="RBIs" type="RBIsType" />
                <xs:element name="HRs" type="RBIsType" />
                <xs:element name="BattingAvg" type="baType" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    
    <xs:element name="Team">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Player" minOccurs="1" maxOccurs="5" />
            </xs:sequence>
            <xs:attribute name="Name" type="NameType" use="required" />
            <xs:attribute name="Est" type="EstType" use="required" />
            <xs:attribute name="State" type="NameType" use="required" />
            <xs:attribute name="City" type="NameType" use="required" />
            <xs:attribute name="FieldName" type="NameType" use="required" />
            <xs:attribute name="MascotName" type="NameType" use="optional" />
        </xs:complexType>
    </xs:element>
    
    <xs:element name="Teams">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Player" minOccurs="1" maxOccurs="10" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    
</xs:schema>

我更新了这个 post 代码更好,希望更容易理解。我仍然收到与上面相同的错误消息。

你的 XML 不是 well-formed because it has multiple root elements. An XML document may only have

修复此问题的选项:

  1. 删除第一个元素之后的所有 Team 个元素,或者
  2. 将所有 Team 元素包装在单个根元素中,例如 Teams.

选项 #1 就足够了;选项 #2 需要将 Teams 包装器元素添加到您的 XSD.

您的架构表示 Teams 元素包含一系列 Player 元素。但是在您的 XML 实例中, Teams 元素包含一系列 Team 元素。所以它期望找到一个 Player 元素,但它找到了一个 Team 元素,这就是为什么它抱怨说

Invalid content was found starting with element 'Team'. One of '{"":Player}' is expected.

请注意,符号 {"":Player} 表示没有命名空间的 Player 元素。它这样解释的原因是这个错误通常是由于使用了不正确的命名空间引起的(但不是你的情况)。