我有一个XML为此我需要生成一个XSD。 我的XML去如下:
例如:
<mes:GetInboundResponseGetInboundSMS
xmlns:mes="http://abcd.com">
<response>
<messages>
<item>
<date>15/04/2014 00:00:00</date>
</item>
<item>
<date>01/07/2014 10:01:32</date>
</item>
</messages>
</response>
</mes:GetInboundResponseGetInboundSMS>
请注意,只有最外层的元素GetInboundResponseGetInboundSMS
属于一个命名空间http://abcd.com
-元素的其余部分没有。 如何在XSD指定此?
我试着用以下XSD但给我的错误:
XSD:
<xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="GetInboundResponseGetInboundSMS">
<xs:complexType>
<xs:sequence>
<xs:element name="response">
<xs:complexType>
<xs:sequence>
<xs:element name="messages">
<xs:complexType>
<xs:sequence>
<xs:element name="item"
maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="date"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
但是,当我尝试使用在线验证的XSD验证实例,我结束了这个错误:
无效。
错误 - 1号线,95:org.xml.sax.SAXParseException; LINENUMBER:1; 得到columnnumber:95; CVC-elt.1:找不到元素的声明 'MES:GetInboundResponseGetInboundSMS'。
这是合乎逻辑的,因为我没有提供的XSD的命名空间。 请帮助我了解如何提供这个命名空间只为最外层的元素在我的XSD。