Xml 在不同命名空间中重用复杂类型的xsd
我有两个xsd属于两个不同的命名空间。我是否可以从不同的名称面板中引用复杂类型作为xsd中的元素,并向其添加子元素 Global.xsd-命名空间-命名空间Xml 在不同命名空间中重用复杂类型的xsd,xml,xsd,Xml,Xsd,我有两个xsd属于两个不同的命名空间。我是否可以从不同的名称面板中引用复杂类型作为xsd中的元素,并向其添加子元素 Global.xsd-命名空间-命名空间 <xs:complexType name = "body" mixed="true"> <xs:sequence> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="fontStyle" typ
<xs:complexType name = "body" mixed="true">
<xs:sequence>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element name="fontStyle" type="fontStyle"/>
<xs:element name="link" type="link"/>
<xs:element name="mark" type="mark"/>
<xs:element name="orderedList" type="orderedList"/>
<xs:element name="table" type="table"/>
<xs:element name="toc" type="toc"/>
<xs:element name="unorderedList" type="unorderedList"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
test.xsd命名空间-测试
<xs:element name="body" type="n:body"/>
- 我可以添加子元素吗
当然可以,为什么不呢。比如:
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:m"
xmlns:m="urn:m"
xmlns:n="urn:n"
elementFormDefault="qualified">
<xsd:import namespace="urn:n" schemaLocation="n.xsd"/>
<xsd:element name="body" type="n:body"/>
<xsd:element name="extendedBody" type="m:extendedBody"/>
<xsd:complexType name="extendedBody">
<xsd:complexContent>
<xsd:extension base="n:body">
<xsd:sequence>
<xsd:element name="additionalElement" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
但是请注意,XML将类似于:
<m:extendedBody>
<n:toc>...</n:toc>
<m:additionalElement>...</m:additionalElement>
</m:extendedBody>
...
...
(虽然我没有检查解决方案,但这只是给出一个想法。很可能混合/选择扩展不起作用。)是的,您只需要像这样扩展类型:
<xs:complexType name="moreBodyType">
<xs:complexContent>
<xs:extension base="n:body">
<xs:sequence>
// put extra child elements here
<xs:element name="morestuff" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
//在此处放置额外的子元素
现在你可以做:
<xs:element name="morebody" type="n:MoreBodyType" />