代码之家  ›  专栏  ›  技术社区  ›  pkaeding

是否可以重新定义定义为xsd:element的内容?

  •  1
  • pkaeding  · 技术社区  · 17 年前

    我需要在XSD模式中扩展一个元素。在原始模式中,元素定义为:

       <xsd:element name="RemarkText">
          <xsd:complexType>
             <xsd:simpleContent>
                <xsd:extension base="C-Infinite">
                   <xsd:attribute name="IdRef" type="IDREF" use="required"/>
                </xsd:extension>
             </xsd:simpleContent>
          </xsd:complexType>
       </xsd:element>
    

    所有关于扩展的例子似乎都是关于扩展类型的。如果最初定义为:

          <xsd:complexType name="RemarkText_Type">
             <xsd:simpleContent>
                <xsd:extension base="C-Infinite">
                   <xsd:attribute name="IdRef" type="IDREF" use="required"/>
                </xsd:extension>
             </xsd:simpleContent>
          </xsd:complexType>
          <xsd:element name="RemarkText" type="RemarkText_Type"/>
    

    然后,我想我会知道该怎么做。

    2 回复  |  直到 17 年前
        1
  •  5
  •   Glorfindel Doug L.    7 年前

    这个 重新定义 , 属性组 , 单纯形 要素 .

    要素 它是基于。然后,您可以使用新类型,而无需通过添加 xs:type 属性 在xml中,以指示类型 正在使用中。

    alt text
    (来源: liquid-technologies.com

    <?xml version="1.0" encoding="utf-8" ?>
    <!--Created with Liquid XML Studio - Developer Pro Edition 7.1.1.1206 (http://www.liquid-technologies.com)-->
    <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:complexType name="NameType">
        <xs:sequence>
          <xs:element name="FirstName" type="xs:string" />
          <xs:element name="Surname" type="xs:string" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="NameExType">
        <xs:complexContent mixed="false">
          <xs:extension base="NameType">
            <xs:sequence>
              <xs:element name="MiddleName" type="xs:string" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:element name="MyName" type="NameType" />
    </xs:schema>
    

    <?xml version="1.0" encoding="utf-8"?>
    <!-- Created with Liquid XML Studio - Developer Pro Edition 7.1.1.1206 (http://www.liquid-technologies.com) -->
    <MyName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
            xsi:type="NameExType">
        <FirstName>string</FirstName>
        <Surname>string</Surname>
        <MiddleName></MiddleName>
    </MyName>
    

    使用图形编辑器,如 Liquid XML Studio 不过这让事情变得容易多了。

        2
  •  0
  •   Dillie-O    17 年前