我試圖寫的以下XML示例XSD架構:這個XML應該是什麼模式?
<?xml version="1.0" encoding="UTF-8"?>
<locs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="loc.xsd">
<loc required="true" comment="A comment">ABC</loc>
</locs>
我試圖執行模式中的這些規則的規則:
- 根元素
locs
必須具有1種以上的元素的loc
loc
必須具有兩個屬性:required
是boolean
&comment
是string
,非零長度的,不共mposed完全空白的空間和/或標點符號loc
必須有一個字符串值,非零長度,而不是完全由空格和/或標點符號
我走了這麼遠用我loc.xsd
如下:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="locs">
<xs:complexType>
<xs:sequence>
<xs:element name="loc" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:complexContent>
<xs:extension base="xs:string">
<xs:attribute name="required" type="xs:boolean" use="required"/>
<xs:attribute name="comment" type="xs:string" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
有了這個,我能夠執行規則1 & 2,但是,第三個規則未強制執行,因此類似下面的條目是有效的:
<loc required="false" comment="Another comment"/>
我錯過了什麼?我已經花了幾個小時了!
您提出了一個很好的空白處!我改進了我的定義,以照顧它。 –