我有下面的XML文檔,還挺簡單:與XSD架構掙扎
<configuration>
<group name="database">
<server name="machine01" user="root" password="foob4r" sudo="true" hdd="300" loc="/opt" />
</group>
<group name="application">
<server name="machine01" user="root" password="foob4r" sudo="true" hdd="50" loc="/export" />
<server name="machine02" user="root" password="foob5r" sudo="true"/>
</group>
<group name="profiler">
<server name="machine03" user="root" password="blue123"/>
<server name="machine03" />
</group>
</configuration>
<configuration>
屬性是必須,在至少一個<group>
與至少一個<server>
是絕。服務器內的 ,只有name
屬性是必須的。
我想出了:
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="configuration">
<xsd:complexType>
<xsd:element name="group">
<xsd:complexType>
<xsd:element name="server">
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:anyAttribute/>
</xsd:element>
</xsd:complexType>
</xsd:element>
</xsd:complexType>
</xsd:element>
</xsd:schema>
不這樣做的伎倆,可悲。
你是什麼意思'<配置>'*屬性*是必須的? ''是一個元素,它在你的實例和模式中沒有任何屬性。我相信你的意思是*元素*。 –
helderdarocha