XSD引用在同一文件中定义的类型

格兰比

我试图创建一个XSD,以定义要在其他XSD中引用的复杂类型。到现在为止还挺好。在此XSD(playlist.xsd)中,我有一个主要的complexType“ playlistType”。我希望playlistType能够包含类型为'secondaryEventType'的元素的多个实例,我试图将其定义为同一XSD文件中的单独complexType。

但是,当我尝试在'playlistType'中创建'secondaryEvent'元素时,我不断收到错误消息:“'secondaryEventType'必须引用现有的简单或复杂类型。”。我已经尝试将“ secondaryEventType”的定义放在主“ playlistType”的定义之前和之后,并尝试使用xs:前缀和不使用xs:前缀。

我究竟做错了什么?

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsB="baseTypes" targetNamespace="playlist">
    <xs:import namespace="baseTypes" schemaLocation="baseTypes.xsd"/>

    <xs:complexType name="secondaryEventType">
        <xs:sequence>
            <xs:element name="type">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="graphic"/>
                        <xs:enumeration value="bug"/>
                        <xs:enumeration value="voiceover"/>
                        <xs:enumeration value="subtitle"/>
                        <xs:enumeration value="addInsertionAvail"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="playlistType">
        <xs:sequence>
            <xs:element name="primaryEvent" minOccurs="1" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="eventID" type="xsB:guidType"/>
                        <xs:element name="eventTitle" type="xs:string"/>
                        <xs:element name="mediaID">
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:minLength value="2"/>
                                    <xs:pattern value="\S+"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                        <xs:element name="SOM" type="xsB:timecodeType"/>
                        <xs:element name="DUR" type="xsB:timecodeType"/>
                        <xs:element name="transition" minOccurs="0">
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:enumeration value="cut"/>
                                    <xs:enumeration value="dissolve"/>
                                    <xs:enumeration value="fade"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                        <xs:element name="transitionDuration" type="xsB:timecodeType" minOccurs="0"/>
                        <xs:element name="secondaryEvent" type="secondaryEventType" minOccurs="0" maxOccurs="unbounded"/>
<!-- Error occurs Here -->
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

</xs:schema>
克休斯

playlistType使用XSD的名称空间引用复杂类型的名称targetNamespace您更新后的有效XSD如下...

来自Types.xsd的存根:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:xsB="baseTypes"
           targetNamespace="baseTypes">
  <xs:complexType name="guidType"/>
  <xs:complexType name="timecodeType"/>
</xs:schema>

工作的主要XSD:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:xsB="baseTypes"
           xmlns:pl="playlist"
           targetNamespace="playlist">
  <xs:import namespace="baseTypes" schemaLocation="baseTypes.xsd"/>
  <xs:complexType name="secondaryEventType">
    <xs:sequence>
      <xs:element name="type">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="graphic"/>
            <xs:enumeration value="bug"/>
            <xs:enumeration value="voiceover"/>
            <xs:enumeration value="subtitle"/>
            <xs:enumeration value="addInsertionAvail"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="playlistType">
    <xs:sequence>
      <xs:element name="primaryEvent"
                  minOccurs="1"
                  maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="eventID" type="xsB:guidType"/>
            <xs:element name="eventTitle" type="xs:string"/>
            <xs:element name="mediaID">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:minLength value="2"/>
                  <xs:pattern value="\S+"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="SOM" type="xsB:timecodeType"/>
            <xs:element name="DUR" type="xsB:timecodeType"/>
            <xs:element name="transition" minOccurs="0">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:enumeration value="cut"/>
                  <xs:enumeration value="dissolve"/>
                  <xs:enumeration value="fade"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="transitionDuration"
                        type="xsB:timecodeType"
                        minOccurs="0"/>
            <xs:element name="secondaryEvent"
                        type="pl:secondaryEventType"
                        minOccurs="0"
                        maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

对同一文件中定义的函数的未定义引用

来自分类Dev

“导入与同一文件中定义的类型冲突”错误[java]

来自分类Dev

“导入与同一文件中定义的类型冲突”错误[java]

来自分类Dev

未定义的引用链接器错误,该错误已存在于同一文件中

来自分类Dev

XML-如何定义和使用要在同一文件中多个位置引用的节点

来自分类Dev

找不到在同一文件中定义的名称;如何实现const值的联合类型?

来自分类Dev

声明在同一文件中时,枚举中的未声明类型

来自分类Dev

在Raku中,无法从同一文件中定义的类继承方法特性

来自分类Dev

别名是在Haskell的同一文件中定义的模块

来自分类Dev

转到同一文件中的符号

来自分类Dev

在PHP中多次包含同一文件

来自分类Dev

从同一文件中调用PHP函数

来自分类Dev

在PHP中多次包含同一文件

来自分类Dev

在同一文件中声明委托协议

来自分类Dev

从同一文件中绘制多个系列

来自分类Dev

将文件中的所有列与同一文件中的引用列进行比较

来自分类Dev

如何使Eclipse引用与exe文件位于同一文件夹中的工作区?

来自分类Dev

与同一文件中的类型别名具有相同名称的命名空间

来自分类Dev

使用ARM跨工具链进入同一文件中定义的功能时出现分段错误

来自分类Dev

如何在此自定义方法调用中检测到它是同一文件

来自分类Dev

与视图位于同一文件中时,控制器未定义

来自分类Dev

同一目录中同一文件的不同MD5Sum

来自分类Dev

同一fd在不同进程中如何指向同一文件?

来自分类Dev

将同一文件夹中的所有文件重定向到索引页(同一文件夹)

来自分类Dev

在定义宏的同一文件中使用宏有什么技巧吗?

来自分类Dev

文件名来自同一文件夹中的其他文件

来自分类Dev

从文件读取后写回同一文件

来自分类Dev

从文件读取后写回同一文件

来自分类Dev

同一文件的多个文件句柄

Related 相关文章

  1. 1

    对同一文件中定义的函数的未定义引用

  2. 2

    “导入与同一文件中定义的类型冲突”错误[java]

  3. 3

    “导入与同一文件中定义的类型冲突”错误[java]

  4. 4

    未定义的引用链接器错误,该错误已存在于同一文件中

  5. 5

    XML-如何定义和使用要在同一文件中多个位置引用的节点

  6. 6

    找不到在同一文件中定义的名称;如何实现const值的联合类型?

  7. 7

    声明在同一文件中时,枚举中的未声明类型

  8. 8

    在Raku中,无法从同一文件中定义的类继承方法特性

  9. 9

    别名是在Haskell的同一文件中定义的模块

  10. 10

    转到同一文件中的符号

  11. 11

    在PHP中多次包含同一文件

  12. 12

    从同一文件中调用PHP函数

  13. 13

    在PHP中多次包含同一文件

  14. 14

    在同一文件中声明委托协议

  15. 15

    从同一文件中绘制多个系列

  16. 16

    将文件中的所有列与同一文件中的引用列进行比较

  17. 17

    如何使Eclipse引用与exe文件位于同一文件夹中的工作区?

  18. 18

    与同一文件中的类型别名具有相同名称的命名空间

  19. 19

    使用ARM跨工具链进入同一文件中定义的功能时出现分段错误

  20. 20

    如何在此自定义方法调用中检测到它是同一文件

  21. 21

    与视图位于同一文件中时,控制器未定义

  22. 22

    同一目录中同一文件的不同MD5Sum

  23. 23

    同一fd在不同进程中如何指向同一文件?

  24. 24

    将同一文件夹中的所有文件重定向到索引页(同一文件夹)

  25. 25

    在定义宏的同一文件中使用宏有什么技巧吗?

  26. 26

    文件名来自同一文件夹中的其他文件

  27. 27

    从文件读取后写回同一文件

  28. 28

    从文件读取后写回同一文件

  29. 29

    同一文件的多个文件句柄

热门标签

归档