且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2023-09-11 22:06:04

redefine 标签只能与 groupattributeGroupcomplexTypesimpleType.不能在 element 上使用它.

The redefine tag can only be used with group, attributeGroup, complexType and simpleType. Its not possible to use it on an element.

也不可能扩展或限制元素.您可以扩展或限制它所基于的 complexType.然后,您可以在不修改原始元素定义的情况下使用新类型,方法是在 xml 中添加 xs:type attribute 以指示类型 complexType用过.

It is not possible to extend or restrict an element either. You can extend or restrict the complexType it is based on. You can then use the new type without modifying the original element definition by adding the xs:type attribute in the xml to indicate the type complexType being used.


(来源: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>

但是如果您想使用扩展的 NameExType,那么 XML 需要使用 xsi:type="NameExType".

But then the XML needs to use the xsi:type="NameExType" if you want to use the extended NameExType.

<?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 这样的图形编辑器不过事情要容易得多.

Using a graphical editor like Liquid XML Studio makes things a lot easier though.