ODL语言的XSD Schema

时间:2012-01-24 09:03:34

标签: xml xsd

我在这里遇到了一个问题,不知道从哪里开始。我迫切需要帮助。这就是我想要的。

我需要编写一个XSD Schema来表示ODL语言。

我们知道ODL的结构,有接口/类,可以扩展其他,它们可能有属性,关系,操作。他们每个人都有自己的选择和偏好。 XSD应该代表ODL的结构及其所有可能的属性。

任何人都可以给我一些帮助吗?我该怎么办?会欣赏任何东西......

EDIT1: 好的,做了我自己的研究,并从哪里开始。这是我的起点。我已经定义了在ODL中声明类/接口的部分。

现在,需要找出在“odlType”complexType内写什么以及怎么写。这应该包括所有可能的属性(属性,关系)。我是对的吗?

EDIT2 好的,现在我添加了类的属性,但是如果属性类型是Set或List,我不知道是否需要做某事...... 这是我最后的成就......现在,我的问题是,如何处理属性?这是否足够,或者我必须更改“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”的属性序列。但只是不知道给他们什么类型......哦,请帮我一把......我迫切需要这方面的建议......

1 个答案:

答案 0 :(得分:0)

您需要先了解XSD是什么以及如何创作XSD文档。我建议你按照给定的顺序阅读以下两个教程

  1. w3schools basic XSD
  2. zvon complete tutorial
  3. 然后阅读

    Mapping Rules to Convert from ODL to XML-SCHEMA