我正在嘗試爲通過的一段代碼生成的XML創建XML架構。我將描述我的問題的簡化版本。假設由此代碼生成的XML文件描述了一個文本文檔;它看起來像這樣:我可以在XML Schema元素名稱中使用正則表達式嗎?
<document>
<r1>A line of text</r1>
<r2 style="bold">Another line which is bold</r2>
<r3>Yet another line</r3>
</document>
依此類推。我知道不是最好的設計 - 如果行數是屬性,那會更好,但這是我必須處理的。它代表了行號是問題。有沒有什麼方法可以編寫一個Schema,讓我爲元素名稱指定正則表達式(或類似的)?我預計XSD文件看起來在某種程度上是這樣的:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/SimpleSchema"
xmlns:tns="http://www.example.org/SimpleSchema"
elementFormDefault="qualified">
<xs:element name="document">
<xs:complexType>
<xs:sequence>
<xs:element name="rX" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="style" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
...其中,「RX」第9行是什麼表情,需要表示「一個名稱以[R,並用X結尾,這是整數「。
我寧願避免自己修復生成代碼,所以我想看看是否有可能首先編寫合適的XML Schema。在此先感謝大家。
我想我最終會做到這一點。 – Btz