包含XSD的XML的XSD
我已经为描述复杂模块化系统组件功能的XML文档创建了XML模式。在该XML文档中,我希望包含XML模式,该模式将被读取和解析以允许配置包含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
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
建立的
- 看
- 看
当然,您可以始终添加
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>