我正在使用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中。
非常感谢。
答案 0 :(得分:1)
所以,差不多一天之后,它最终变得相当明显。
我没有找到针对EA中不同XSDschema的实际导入程序的任何具体答案。
事情是:你有2个不同的XSDschema包。确保&#34;共享&#34;一个要导入到主要的一个(在xsd标题中明确标记为<xs:import
,您必须:
输入2个不同的目标命名空间,一个关于每个XSDschema包
添加&#34;共享&#34; (主要XSDschema属性
仔细检查每个XSDschema包的SchemaLocation Tagged值
最后,但并非最不重要的是,在主要complexTypes <xs:element name="element1" type="shared:StringXT"
的xs序列中,&#34;类型&#34;标记必须只是:StringXT
(没有&#39;共享&#39;)才能链接&#39;主要的XSDschema和共享的。您可以转到XSDschema属性并检查其标记值。您应该从StringXT