在xml中引用xsd文件
我不熟悉xml语言,我有一个xml文件,我为那个文件创建了xsd模式,但我的问题是如何在xml文件中引用这个模式。我的xml模式如下所示在xml中引用xsd文件,xml,xsd,Xml,Xsd,我不熟悉xml语言,我有一个xml文件,我为那个文件创建了xsd模式,但我的问题是如何在xml文件中引用这个模式。我的xml模式如下所示 <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wmh="http://www.wmhelp.com/2003/eGenerator" elementFormDefault=
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wmh="http://www.wmhelp.com/2003/eGenerator"
elementFormDefault="qualified"
targetNamespace="http://axis.com/service"
xmlns="http://axis.com/service"
version="1.0">
<xs:element name="SWService" type="SWServiceType"/>
<xs:element name="HWService" type="HWServiceType"/>
<xs:complexType name="SWServiceType">
<xs:sequence>
<xs:element name="Service" type="ServiceType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ServiceType">
<xs:complexContent>
<xs:extension base="IdType">
<xs:sequence>
<xs:element name="Description" type="xs:string" maxOccurs="1" minOccurs="0"/>
<xs:element name="ServiceCustomers" type="ServiceCustomersType" maxOccurs="1"
minOccurs="0"/>
<xs:element name="ServiceSuppliers" type="ServiceSuppliersType" maxOccurs="1"
minOccurs="0"/>
</xs:sequence>
<xs:attribute name="Name" type="xs:string" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HWServiceType">
<xs:sequence>
<xs:element name="element" type="elementGroupType" maxOccurs="1" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ServiceCustomersType">
<xs:sequence>
<xs:element name="SoftWare" type="SoftWareType" maxOccurs="unbounded"
minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ServiceSuppliersType">
<xs:sequence>
<xs:element name="SoftWare" type="SoftWareType" maxOccurs="unbounded"
minOccurs="0"/>
<xs:element name="HardWare" type="HardWareType" maxOccurs="unbounded"
minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SoftWareType">
<xs:complexContent>
<xs:extension base="PathType">
<xs:attribute name="Service" type="xs:string" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HardWareType">
<xs:complexContent>
<xs:extension base="PathType">
<xs:attribute name="Type" type="xs:string" use="required"/>
<xs:attribute name="Nr" type="xs:string" use="required"/>
<xs:attribute name="Service" type="xs:string" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PathType">
<xs:attribute name="Path" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="elementGroupType">
<xs:sequence>
<xs:element name="element" type="elementType" maxOccurs="unbounded"
minOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="elementType">
<xs:sequence>
<xs:element name="LM" type="LMType2" maxOccurs="1" minOccurs="1"/>
<xs:element name="Service" type="ServiceType" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="Type" type="xs:string" use="required"/>
<xs:attribute name="Nr" type="xs:string" use="required"/>
<xs:attribute name="Name" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="LMType2">
<xs:sequence>
<xs:element name="LowerMode" type="LowerModeType2" maxOccurs="unbounded"
minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LowerModeType2">
<xs:complexContent>
<xs:extension base="IdType">
<xs:attribute name="Probability" type="xs:double" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="IdType">
<xs:attribute name="Id" type="xs:string" use="required"/>
</xs:complexType>
</xs:schema>
No DTD of the document found
<?xml version="1.0" encoding="UTF-8"?>
<Service xsi:schemaLocation=""http://axis.com/service"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://axis.com/service"
Version="1.0">
--------Xml data-------
</Service>
我试过这样做
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wmh="http://www.wmhelp.com/2003/eGenerator"
elementFormDefault="qualified"
targetNamespace="http://axis.com/service"
xmlns="http://axis.com/service"
version="1.0">
<xs:element name="SWService" type="SWServiceType"/>
<xs:element name="HWService" type="HWServiceType"/>
<xs:complexType name="SWServiceType">
<xs:sequence>
<xs:element name="Service" type="ServiceType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ServiceType">
<xs:complexContent>
<xs:extension base="IdType">
<xs:sequence>
<xs:element name="Description" type="xs:string" maxOccurs="1" minOccurs="0"/>
<xs:element name="ServiceCustomers" type="ServiceCustomersType" maxOccurs="1"
minOccurs="0"/>
<xs:element name="ServiceSuppliers" type="ServiceSuppliersType" maxOccurs="1"
minOccurs="0"/>
</xs:sequence>
<xs:attribute name="Name" type="xs:string" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HWServiceType">
<xs:sequence>
<xs:element name="element" type="elementGroupType" maxOccurs="1" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ServiceCustomersType">
<xs:sequence>
<xs:element name="SoftWare" type="SoftWareType" maxOccurs="unbounded"
minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ServiceSuppliersType">
<xs:sequence>
<xs:element name="SoftWare" type="SoftWareType" maxOccurs="unbounded"
minOccurs="0"/>
<xs:element name="HardWare" type="HardWareType" maxOccurs="unbounded"
minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SoftWareType">
<xs:complexContent>
<xs:extension base="PathType">
<xs:attribute name="Service" type="xs:string" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HardWareType">
<xs:complexContent>
<xs:extension base="PathType">
<xs:attribute name="Type" type="xs:string" use="required"/>
<xs:attribute name="Nr" type="xs:string" use="required"/>
<xs:attribute name="Service" type="xs:string" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PathType">
<xs:attribute name="Path" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="elementGroupType">
<xs:sequence>
<xs:element name="element" type="elementType" maxOccurs="unbounded"
minOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="elementType">
<xs:sequence>
<xs:element name="LM" type="LMType2" maxOccurs="1" minOccurs="1"/>
<xs:element name="Service" type="ServiceType" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="Type" type="xs:string" use="required"/>
<xs:attribute name="Nr" type="xs:string" use="required"/>
<xs:attribute name="Name" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="LMType2">
<xs:sequence>
<xs:element name="LowerMode" type="LowerModeType2" maxOccurs="unbounded"
minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LowerModeType2">
<xs:complexContent>
<xs:extension base="IdType">
<xs:attribute name="Probability" type="xs:double" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="IdType">
<xs:attribute name="Id" type="xs:string" use="required"/>
</xs:complexType>
</xs:schema>
No DTD of the document found
<?xml version="1.0" encoding="UTF-8"?>
<Service xsi:schemaLocation=""http://axis.com/service"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://axis.com/service"
Version="1.0">
--------Xml data-------
</Service>
schemaLocation的使用是完全可选的,并且Version属性在实例中不正确(除非您在模式中定义了名为Version的属性)
下面的例子
<Service xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://axis.com/service">
any string
</Service>
任何字符串
根据架构验证fine:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wmh="http://www.wmhelp.com/2003/eGenerator"
elementFormDefault="qualified"
targetNamespace="http://axis.com/service"
xmlns="http://axis.com/service"
version="1.0">
<xs:element name="Service" type="xs:string"/>
</xs:schema>
我所做的只是用字符串替换AxisServiceType类型
为了确定故障的确切原因,我需要查看整个模式和实例文档 +1:这是我一段时间以来看到的最好的第一篇帖子之一!您能描述一下您是如何验证XML的吗?您是否使用了一些外部程序或库?@bbaja42我正在使用XMLPAD进行验证。感谢您的回复,我正在为不同的xml文件格式编写一个xsd,SWService、HWService、MODULESPECITION与不同的xml文件相关,SWService xml文件xsd在SWServiceType.like wise下被三个不同的xml文件引用。我编辑了我的帖子,可以看看我编辑的帖子。我需要以三种不同的xml文件格式引用这个xsd。你能这样帮助我吗?如果我引用这个xsd时没有验证它的名称空间,但名称空间有错误。很抱歉,为了帮助你构建一个实例XML文档,你必须向我提供整个xsd架构。你能看看我的xsd吗,我提供了完整的xsd模式。谢谢-您可以发布三种不同的xml文件格式吗?然后,我可以帮助您了解,当您从模式中包含名称空间时,为什么这些名称空间没有被验证。然后,我将更新我的原始答案,以包括这一点。