Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包含XSD的XML的XSD_Xml_Xsd_Xsd Validation_Xml Validation - Fatal编程技术网

包含XSD的XML的XSD

包含XSD的XML的XSD,xml,xsd,xsd-validation,xml-validation,Xml,Xsd,Xsd Validation,Xml Validation,我已经为描述复杂模块化系统组件功能的XML文档创建了XML模式。在该XML文档中,我希望包含XML模式,该模式将被读取和解析以允许配置 meta schema.xsd(为简洁起见大量编辑): 这将启用以下XML: <Schema xmlns="urn:project" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:project meta-sche

我已经为描述复杂模块化系统组件功能的XML文档创建了XML模式。在该XML文档中,我希望包含XML模式,该模式将被读取和解析以允许配置

meta schema.xsd
(为简洁起见大量编辑):

这将启用以下XML:

 <Schema xmlns="urn:project"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:project meta-schema.xsd">
   <!-- Snip -->
   <Configuration>
      <xs:schema targetNamespace="urn:project"
                 xmlns="urn:project"
                 xmlns:xs="http://www.w3.org/2001/XMLSchema"
                 elementFormDefault="qualified">
         <xs:element name="enable" type="xs:boolean">
           <xs:annotation>
             <xs:appinfo>Usage:</xs:appinfo>
             <xs:documentation xml:lang="en">
               Enable left radial pulse functionality
             </xs:documentation>
           </xs:annotation>
         </xs:element>
      </xs:schema>
  </Configuration>
</Schema>

用法:
启用左径向脉冲功能

XML文档实例与其关联的XSD之间的链接是通过
xsi:schemaLocation
xsi:noNamespaceSchemaLocation
建立的

试图在XSD中物理地包含XSD是非常不传统的。(没有与XML DTD的内部子集等效的XSD。)


当然,您可以始终添加
xs:anyURI
类型的属性或元素来表示这种连接,但是这种关联对于XML/XSD语义来说是不透明的。您还可以使用合并任何文件,包括XSD,但这是一个文件级机制,而不是XML/XSD级机制

虽然这显然不是我所希望的答案,但谢谢你对为什么不可能的明确解释。
<Schema xmlns="urn:project"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:project meta-schema.xsd">
    <!-- Snip -->
    <Configuration>
        <schema>
            <element name="enable" type="boolean">
                <annotation>
                    <appinfo>Usage:</appinfo>
                    <documentation xml:lang="en">
                        Enable functionality
                    </documentation>
                </annotation>
            </element>
        </schema>
    </Configuration>
</Schema>
<xs:complexType name="ConfigurationType">
  <xs:choice>
    <xs:element name="hex" type="xs:hexBinary"/>
    <xs:element name="base64" type="xs:base64Binary"/>
    <!-- If configuration isn't binary, modules should create an XML Schema of the configuration options in order to
      facilitate future tooling, when feasible. -->
    <xs:any namespace="##other" processContents="lax"/>
  </xs:choice>
  <xs:anyAttribute/>
</xs:complexType>
 <Schema xmlns="urn:project"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:project meta-schema.xsd">
   <!-- Snip -->
   <Configuration>
      <xs:schema targetNamespace="urn:project"
                 xmlns="urn:project"
                 xmlns:xs="http://www.w3.org/2001/XMLSchema"
                 elementFormDefault="qualified">
         <xs:element name="enable" type="xs:boolean">
           <xs:annotation>
             <xs:appinfo>Usage:</xs:appinfo>
             <xs:documentation xml:lang="en">
               Enable left radial pulse functionality
             </xs:documentation>
           </xs:annotation>
         </xs:element>
      </xs:schema>
  </Configuration>
</Schema>