我被要求建立一個商業數據庫,這是我第一個虛構的「公司」。我已經獲得了使用XML進行驗證的模式,但被要求爲XML文件中的至少一家公司提供ORDER/RANKING。然而,我嘗試這樣做,我無法設法驗證它(即使提供了正確的線路)。xsd:屬性應該去哪裏?
這是我的XML文件(你可以看到我把排名=「3」,這是我不能寫入我的架構的行)。
<?xml version="1.0"?>
<CompanyList>
<Company ranking="3">
<CompanyName>CasesWorldwide</CompanyName>
<CompanyID>00001</CompanyID>
<City>Edmonton</City>
<Province>Alberta</Province>
<ContactName>
<LastName>Soliman</LastName>
<FirstName>Ahmed</FirstName>
<PhoneNumber>646959891</PhoneNumber>
<ContactCompanyID>00001</ContactCompanyID>
</ContactName>
<NumberOfEmployees>4000</NumberOfEmployees>
</Company>
</CompanyList>
這裏是模式(我試圖線旁 「本公司」):
<?xml version="1.0"?>
<!-- XSD schema for CS Assignment #3.xml -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="CompanyList">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Company"> <xsd:attribute name="ranking」 type=「xsd:string」 use=「optional」/>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CompanyName">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
<xsd:pattern value=".*[^\s].*" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="CompanyID" type="xsd:integer"/>
<xsd:element name="City" type="xsd:string" minOccurs="0"/>
<xsd:element name="Province" type="xsd:string" minOccurs="0"/>
<xsd:element name="ContactName" minOccurs = "1" maxOccurs="5">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="LastName" type="xsd:string" minOccurs="1"/>
<xsd:element name="FirstName" type="xsd:string" minOccurs="1"/>
<xsd:element name="PhoneNumber" type="xsd:integer" minOccurs="1"/>
<xsd:element name="ContactCompanyID" type="xsd:integer" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="NumberOfEmployees" type="xsd:integer" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
當我嘗試將它放在那裏時,您的屬性應該位於Company元素 – Dijkgraaf
@Dijkgraaf的和 下面,我得到的錯誤是:格式不正確:屬性值與元素類型「xsd:attribute」關聯的「name」不能包含「<」字符。 –