2012-01-24 144 views
0

我在這裏遇到了一個問題,不知道從哪裏開始。我非常需要這方面的幫助。這是我想要的。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」屬性的序列。但只是不知道什麼類型給他們....哦,請給我一隻手...我迫切需要這方面的建議...

+0

很抱歉,但它不是完全清楚你想要實現。 >>我需要構建一個XML Schema(XSD)來驗證任何XML,它是一些ODL的轉換。<< ODL是一種數據描述語言。您引用的論文給出了將ODL模式轉換爲XML模式(XSD)的規則。你是否說過已經完成了這個轉換,你現在想把對象數據庫(由ODL模式描述)轉換成一個XML實例(由XSD模式描述)?這似乎不是你要求的。對不起,你讓我難倒了。 –

+0

我改進了我的帖子,我認爲現在它更容易理解:) – ArVan

+0

沒有任何人有任何幫助?或者還不清楚是什麼問題? – ArVan

回答

0

您需要先了解什麼是XSD,以及如何編寫XSD文檔。我建議你閱讀以下兩個教程給定的順序

  1. w3schools basic XSD
  2. zvon complete tutorial

,然後讀

Mapping Rules to Convert from ODL to XML-SCHEMA

+0

1.我熟悉XSD。 2.映射規則不會有幫助,因爲它們是關於映射給定分貝的。我需要爲ODL語言結構構建xsd ... – ArVan

+0

@Arvan然後你有什麼問題? –

+0

正如我所說的,我需要幫助構建用於ODL語言的XSD。不是一個單獨的ODL數據庫。 PS。看到我在帖子上的編輯。已經開始使用類定義。下一步是類屬性... – ArVan