我正在使用Sparx Enterprise Architect v10从XML Schema图形模型生成XSD架构。
基本上,我创建了2个不同的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中。
非常感谢。
因此,经过将近一天的时间,它变得非常明显。
对于此EA中不同XSDschema的实用导入过程,我没有找到任何具体答案。
事实是:您有2个XSDschema作为2个不同的软件包。为了确保将“共享的”文件导入到主文件中(<xs:import
在xsd标头中显式标记),您必须:
输入2个不同的目标命名空间,其中一个与每个XSDschema包有关
在XSDschema主要属性的XMLNS选项卡中添加“共享”(+其名称空间)
仔细检查每个XSDschema包的SchemaLocation Tagged值
最后但并非最不重要的一点是,在您的主要complexTypes的xs序列中,<xs:element name="element1" type="shared:StringXT"
“类型”标记必须是正确的:StringXT
(没有“共享”),以便“链接”主XSDschema和共享的XSDschema。您可以转到XSDschema属性并检查其标记值。您应该看到类似+ Attributes + StringXT的内容
希望能帮助到你!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句