Sparx Enterprise Architect - XSD生成:在生成的XSD中引入XSDschema引用

时间:2014-08-27 10:08:52

标签: import xsd enterprise-architect

我正在使用Sparx Enterprise Architect v10从XML Schema图形模型生成XSD架构。

基本上,我创建了两个不同的XSDschema:1个主要的XSDshema,我的实体是complexType:

<xs:complexType name="EntitytXT">
    <xs:annotation>
        <xs:documentation>This is the definition of an EntitytXT</xs:documentation>
    </xs:annotation>
    <xs:sequence>
        <xs:element name="element1" type="shared:StringXT" minOccurs="1" maxOccurs="1"/>
        <xs:element name="element2" type="shared:StringXT" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
</xs:complexType>

另一个创建的XSDschema是“共享的”,只有StringXT类型很简单;由以下内容组成:

<xs:simpleType name="StringXT">
    <xs:restriction base="xs:string">
        <xs:maxLength value="5" />
    </xs:restriction>
</xs:simpleType>`

我想要做的是: 每当我使用EA生成第一个主XSD时,导入的xsd“共享”路径 xmlns:v1shared="http://xxxx/common/v1/shared"以及标记

<xs:import namespace="http://xxxx/shared" schemaLocation="http:/xx/xx/common/shared.xsd"    />

出现在我生成的XSD中。

非常感谢。

1 个答案:

答案 0 :(得分:1)

所以,差不多一天之后,它最终变得相当明显。

我没有找到针对EA中不同XSDschema的实际导入程序的任何具体答案。

事情是:你有2个不同的XSDschema包。确保&#34;共享&#34;一个要导入到主要的一个(在xsd标题中明确标记为<xs:import,您必须:

  • 输入2个不同的目标命名空间,一个关于每个XSDschema包

  • 添加&#34;共享&#34; (主要XSDschema属性

  • 中的XMLNS选项卡中的(+其命名空间)
  • 仔细检查每个XSDschema包的SchemaLocation Tagged值

  • 最后,但并非最不重要的是,在主要complexTypes <xs:element name="element1" type="shared:StringXT"的xs序列中,&#34;类型&#34;标记必须只是:StringXT(没有&#39;共享&#39;)才能链接&#39;主要的XSDschema和共享的。您可以转到XSDschema属性并检查其标记值。您应该从StringXT

  • 中看到类似+ Attributes +的内容
希望它有所帮助!