XSD中带有属性的元素。如何申报? Altova错误

时间:2019-06-14 15:13:25

标签: xml xsd attributes element altova

我必须从XML文档中获取XML架构(XSD),当我遇到类似<seller phone = "555-222-3333"> Skyway Aircraft </seller>的问题时,我发现了问题。我一直在寻找xsd示例,以了解在XSD中进行声明的正确方法。

我那部分的代码是这个

<xs:element type='xs:string' name='seller'>
    <xs:complexType>
        <xs:sequence>
        <xs:attribute name='phone' type='xs:integer'/>
    </xs:sequence>                      
    </xs:complexType>
</xs:element>

我一直在尝试将xs:attribute放在xs:complexType中。

当我转到XMLGrid并仅从<seller phone = "555-222-3333"> Skyway Aircraft </seller>生成xsd时,它准确地向我显示了上面的代码。但是当我显示它并将其保存在Altova中时,它给了我下一个错误

The information element from element <xs:element> 
can have an attribute type or a secondly element <xs:complexType> 
but not both.

我希望为了用我的XSD文件生成示例XML文档,并生成具有字符串数据和字符串属性的元素。

我找到的解决方案

<xs:element name="seller">
    <xs:complexType>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="phone" type="xs:int"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
</xs:element>

0 个答案:

没有答案