我的xsd文件有问题,找不到任何其他灵魂.有人能看看我的档案吗



无法指定错误。有人能帮我吗?我刚开始学习,对细节不太了解,但这是我的模式代码。当我尝试验证XSD时,它给出了错误

S4s包含无效内容。1:"#AnonType_Website"的内容无效。元素"Element"无效、位置错误或发生频率过高。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="Music_store">
<xs:complexType>
<xs:sequence>
<xs:element ref="Details" minOccurs="1" maxOccurs="1"/>
<xs:element ref="Songs" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Details">
<xs:complexType>
<xs:sequence>
<xs:element ref="Name" minOccurs="1" maxOccurs="1"/>
<xs:element ref="Address" minOccurs="1" maxOccurs="1"/>
<xs:element ref="Contact" minOccurs="1" maxOccurs="1"/>
<xs:element ref="Website" minOccurs="0" maxOccurs="1"/>                     
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Name" type="xs:string"/>

<xs:element name="Address">
<xs:complexType>
<xs:sequence>
<xs:element ref="City" minOccurs="1" maxOccurs="1"/>
<xs:element ref="Street" minOccurs="1" maxOccurs="1"/>
<xs:choice>
<xs:element ref="Postal_Code" minOccurs="1" maxOccurs="1"/>
<xs:element ref="Zip_Code" minOccurs="1" maxOccurs="1"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="City" type="xs:string"/>
<xs:element name="Street" type="xs:string"/>
<xs:element name="Postal_Code" type="xs:integer"/>
<xs:element name="Zip_Code" type="xs:integer"/>

<xs:element name="Contact">
<xs:complexType>
<xs:choice>
<xs:element ref="Mobile" minOccurs="1" maxOccurs="3"/>
<xs:element ref="Telephone" minOccurs="1" maxOccurs="3"/>
</xs:choice>
</xs:complexType>
</xs:element>

<xs:element name="Mobile" type="xs:integer"/>
<xs:element name="Telephone" type="xs:integer"/>

<xs:element name="Website">
<xs:complexType>
<xs:sequence>
<xs:element ref="web" minOccurs="1" maxOccurs="2"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="web" type="xs:url"/>
<xs:element name="Songs">
<xs:complexType>
<xs:sequence>
<xs:element ref="Song" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="Song">
<xs:complexType>
<xs:sequence>
<xs:element ref="name" minOccurs="1" maxOccurs="1"/>
<xs:element ref="director" minOccurs="0" maxOccurs="1"/>
<xs:element ref="producer" minOccurs="0" maxOccurs="1"/>
<xs:element ref="artist" minOccurs="1" maxOccurs="1"/>
<xs:element ref="writers" minOccurs="1" maxOccurs="1"/>
<xs:element ref="genre" minOccurs="1" maxOccurs="unbounded"/>
<xs:element ref="release_date" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="id" type="xs:integer" use="required"/>
<xs:attribute name="album" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>

<xs:element name="name" type="xs:String"/>
<xs:element name="director" type="xs:String"/>
<xs:element name="producer" type="xs:String"/>
<xs:element name="artist" type="xs:String"/>

<xs:element name="writers">
<xs:complexType>
<xs:element ref="writer" minOccurs="1" maxOccurs="unbounded"/>
</xs:complexType>
</xs:element>

<xs:element name="writer" type="xs:string"/>

<xs:element name="genre" type="xs:String"/> 
<xs:element name="release_date" type="xs:String"/>

</xs:schema>

这是我的xml文件。

<?xml version = "1.0" encoding = "UTF-8"?>
<Music_store
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="catalog_19031004.xsd" >
> 
<Details >
<Name>Music Craft Nepal</Name>
<Address>
<City>Kathmandu,</City>
<Street>Tankeshwor Marga,</Street>
<Postal_Code>44600</Postal_Code>
</Address>
<Contact>
<mobile>9841031342</mobile>
</Contact>
</Details>
<Songs type="list">
<title>Popular Songs</title>
<Song id = "1" album="Kind of Blue">
<name>Song:Blue in Green</name>
<producer>Produced By:Irving Townsend</producer>
<artist>By:Miles Davis</artist>
<writers>
<writer>Miles Davis</writer>
<writer>Bill Evans</writer>
</writers>
<genre>Genre:Jazz</genre>
<release_date>Released in:17 Aug,1959</release_date>
</Song>
<Song id="2">
<name>Song:Sweet Child O' Mine</name>
<producer>Produced By:Mike Clink</producer>
<artist>By:Axl Rose</artist>
<writers>
<writer>Guns N' Roses</writer>
</writers>
<genre>Genre:Rock</genre>
<release_date>Released in:21 July,1987</release_date>
</Song>
<Song id="3" album="Fine line">
<name>Song:Watermelon Sugar</name>
<director>Directed By:Bradley &#38; Pablo</director>
<producer>Produced By:Johnson Kid Harpoon</producer>
<artist>By:Harry Styles</artist>
<writers>
<writer>Harry Styles</writer>
</writers>
<genre>Genre:Pop</genre>
<release_date>2019</release_date>
</Song>
<Song id="4" album="Traveller">
<name>Song:Traveller</name>
<producer>Produced By:Dave Cobb</producer>
<artist>By:Chris Stapleton</artist>
<writers>
<writer>Chris Stapleton</writer>
</writers>
<genre>Genre:Country Music</genre>
<release_date>5 May,2015</release_date>
</Song>
<Song id="5">
<name>Song:Scary Monsters and Nice Sprites</name>
<producer>Skrillex</producer>
<artist>By:Skrillex</artist>
<writers>
<writer>Sonny Moore</writer>
</writers>
<genre>Genre:Dubstep</genre>
<release_date>10 October,2010</release_date>
</Song>
</Songs>
</Music_store>

当我将您的代码发布到Oxygen时,它会突出显示第98行,该行读取

<xs:element ref="writer" minOccurs="1" maxOccurs="unbounded"/>

和报告:

Element <xs:element> cannot appear here: expected one of
{Q{http://www.w3.org/2001/XMLSchema}choice,
Q{http://www.w3.org/2001/XMLSchema}sequence,
Q{http://www.w3.org/2001/XMLSchema}assert,
Q{http://www.w3.org/2001/XMLSchema}openContent,     
... or nothing

因此,第一个技巧是:为自己提供一个不错的XMLIDE,您将获得更好的诊断。

正如消息所解释的,xs:element不能直接位于xs:complexType内部。即使内容模型中只有一个元素粒子,也需要在xs:element周围使用xs:sequence

最新更新