【问题标题】:UML aggregation/association to XML SchemaUML 聚合/关联到 XML Schema
【发布时间】:2013-08-08 15:32:33
【问题描述】:

长话短说: 我想从 UML 生成 XSD,为此我需要一种方法来表示 XSD 中的 UML 聚合/关联。我找到了他们推荐的映射(用于聚合/关联):“具有 IDREF 属性的引用元素并引用关联的类和 keyref 以获取安全类型(key/keyref 引用)”。但我不知道该怎么做,因为我是 XSD 的新手(

所以这就是我认为它应该看起来的样子,但我不确定^^ 如果我的代码有错误,是否有人有一些建议或可以纠正?

uml:http://i39.tinypic.com/15x8ufp.png

<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns="namespace" targetNamespace="namespaceURI">
    <xsd:import namespace="namespace" />
    <xsd:element name="root">
        <xsd:complexType>
            <xsd:sequence>

        <xsd:element name="classA">         
      <xsd:complexType>
        <xsd:all>
         <xsd:element name="attributeElement" />
        </xsd:all>
        <xsd:attribute name="aId" type="xsd:ID" use="required" />
      </xsd:complexType>    
      <xsd:key name="classAKey">
        <xsd:selector xpath="ns:root/ns:classA" />
        <xsd:field xpath="@aId" />
      </xsd:key>                        
    </xsd:element>

    <xsd:element name="classB">         
      <xsd:complexType>
        <xsd:all>
         <xsd:element name="refClassA" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:all>
        <xsd:attribute name="bId" type="xsd:ID" use="required" />
      </xsd:complexType>    
      <xsd:key name="classBKey">
        <xsd:selector xpath="ns:root/ns:classB" />
        <xsd:field xpath="@bId" />
      </xsd:key>
      <xsd:keyref name="classARef" refer="ns:classAKey">
          <xsd:selector xpath="ns:classB" />
          <xsd:field xpath="./refClassA" />
      </xsd:keyref>                     
    </xsd:element>

            </xsd:sequence>
        </xsd:complexType>    
    </xsd:element>
</xsd:schema>

【问题讨论】:

    标签: xsd mapping associations uml aggregation


    【解决方案1】:

    也许UML For W3C XML Schema Design 会帮助回答您的问题。它已经很老了,但它所展示的基础知识在今天仍然适用,并且非常清晰地呈现出来。

    【讨论】:

    • 您的链接现在已损坏。也许最好找到此链接已移动到的位置,然后包含链接中的相关文本以回答 OP 问题。这将帮助人们现在和将来寻找相同的答案。
    猜你喜欢
    • 2012-03-27
    • 2013-05-14
    • 2017-06-24
    • 2013-01-17
    • 2014-08-05
    • 2010-11-11
    • 1970-01-01
    • 2017-07-26
    相关资源
    最近更新 更多