我在這裏遇到了一個問題,不知道從哪裏開始。我非常需要這方面的幫助。這是我想要的。ODSD語言的XSD架構
我需要編寫一個XSD Schema來表示ODL語言。
因爲我們知道ODL的結構,所以有接口/類,可以擴展其他類,它們可以有屬性,關係,操作。他們每個人都有自己的選擇和偏好。 XSD應該代表ODL及其所有可能屬性的結構。
任何人都可以給我一些幫助嗎?我應該怎麼做?會感激任何東西......
EDIT1: 好的,做了我自己的研究,並從哪裏開始。這是我的起點。我已經定義了在ODL中聲明類/接口的部分。
現在,需要找出在「odlType」complexType
裏面寫什麼和怎麼寫。這應該包括所有可能的屬性(屬性,關係)。我對嗎?
EDIT2 好了,現在我添加類的屬性,但不知道如果我需要做一些事情的情況下,該屬性類型是一組或列表... 這是我最後的成績...現在,我的問題是,如何處理屬性?這足夠了,還是我必須改變「attrType」?
EDIT3好的。稍微改變了「attrType」。現在我可以將它應用於更復雜的類型。但是如果屬性是一個類的類型呢?我仍然不知道如何處理關係...請給我一個這樣的手...
EDIT4改變了一點,包括擴展類。不知道這種方法是否正確。但不管怎麼說。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="ODL"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="odlType" abstract="true">
<xs:sequence>
<xs:element name="attribute" type="attrType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:sequence>
<xs:element name="reference" type="refType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="type" type="objType"/>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
<xs:complexType name="odlSubType">
<xs:complexContent>
<xs:extension base="odlType">
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="objType">
<xs:restriction base="xs:string">
<xs:enumeration value="class"/>
<xs:enumeration value="interface"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="attrType">
<xs:sequence>
<xs:element name="attr" type="attrType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="preType" type="preType"/>
<xs:attribute name="type" type="xs:string"/>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
<xs:simpleType name="preType">
<xs:restriction base="xs:string">
<xs:enumeration value="Struct"/>
<xs:enumeration value="Enum"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
現在考慮ODL的關係。我想我最好將它們添加爲「odlType」屬性的序列。但只是不知道什麼類型給他們....哦,請給我一隻手...我迫切需要這方面的建議...
很抱歉,但它不是完全清楚你想要實現。 >>我需要構建一個XML Schema(XSD)來驗證任何XML,它是一些ODL的轉換。<< ODL是一種數據描述語言。您引用的論文給出了將ODL模式轉換爲XML模式(XSD)的規則。你是否說過已經完成了這個轉換,你現在想把對象數據庫(由ODL模式描述)轉換成一個XML實例(由XSD模式描述)?這似乎不是你要求的。對不起,你讓我難倒了。 –
我改進了我的帖子,我認爲現在它更容易理解:) – ArVan
沒有任何人有任何幫助?或者還不清楚是什麼問題? – ArVan