我有以下XMLXSD可選XML標籤與未知子標籤
<File>
<FileName>somefile.lis</FileName>
<Metadata>
<HeaderExtension expNum ="0">
<ABC>DUMMY</ABC>
<DEF>JUNK</DEF>
</HeaderExtension>
<HeaderExtension expNum ="1">
<ABC>DUMMY</ABC>
<GHI>Different JUNK</GHI>
</HeaderExtension>
</Metadata>
<File>
元數據標籤是可選的。 HeaderExtension標記在Metadata標記下是可選的,Metadata或HeaderExtension下的所有子標記都是未知的。在我的XSD我有以下定義
<xsd:complexType name="MetadataType">
<xsd:sequence>
<xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FileInfo">
<xsd:sequence>
<xsd:element name="FileName" type="xsd:string"
minOccurs="1" maxOccurs="1" />
<xsd:element name="Metadata" type="MetadataType"
minOccurs="1" maxOccurs="1" />
</xsd:sequence>
但出於某種原因,這給出了一個錯誤。 cvc-complex-type.2.4.d:找到以元素「MetadataType」開頭的無效內容。預計在這一點上不會有子元素。
如何更改xsd以便驗證xml。
架構中沒有元素「MetadataType」。你如何定義File元素+ complexType?你能展示更多的模式嗎? – helderdarocha
錯誤是錯誤的。錯誤是:元素元數據:模式有效性錯誤:元素'元數據':該元素不是預期的。 – user2381566
您需要添加更多信息。 XML標題,命名空間,包含「Metadata」的「File」元素的定義。 – helderdarocha