XML Schema属性名称相同但属性值不同?
问题描述:
我有服务,有如下格式的请求的方法:在提供XML Schema属性名称相同但属性值不同?
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:com="http://com.org.srv">
<soapenv:Header/>
<soapenv:Body>
<com:methodName>
<com:someParam>value</com:someParam>
<com:param name="firstPoint">
<com:param name="code">value</com:param>
</com:param>
<com:param name="firstPointDesc">
<com:param name="pName">value</com:param>
<com:param name="pLo">value</com:param>
</com:param>
<com:param name="endPoint">
<com:param name="code">value</com:param>
</com:param>
<com:param name="endPointDesc">
<com:param name="pName">value</com:param>
<com:param name="pLo">value</com:param>
</com:param>
<com:param name="bunch">
<com:param name="temperature">val</com:param>
<com:param name="humidity">val</com:param>
<com:param name="pressure">val</com:param>
</com:param>
</com:methodName>
</soapenv:Body>
</soapenv:Envelope>
此信息,是,我需要来形容它在XSD文件中蚀。 我曾尝试:
<element name="methodNameRequest">
<complexType>
<sequence maxOccurs="1" minOccurs="1">
<element name="someParam" type="string" maxOccurs="1"
minOccurs="1">
</element>
<element name="deviceId" type="string"></element>
<element name="param" maxOccurs="1" minOccurs="1">
<complexType>
<sequence>
<element name="param" maxOccurs="1"
minOccurs="1">
<complexType>
<simpleContent>
<extension base="string">
<attribute name="name"
type="string" default="code" />
</extension>
</simpleContent>
</complexType>
</element>
</sequence>
<attribute name="name" type="string"
default="firstPoint" />
</complexType>
</element>
<element name="params" maxOccurs="1" minOccurs="1">
<complexType>
<sequence>
<element name="param" maxOccurs="1"
minOccurs="1">
<complexType>
<simpleContent>
<extension base="string">
<attribute name="name"
type="string" default="pName" />
</extension>
</simpleContent>
</complexType>
</element>
<element name="param" maxOccurs="1"
minOccurs="1">
<complexType>
<simpleContent>
<extension base="string">
<attribute name="name"
type="string" default="pLo" />
</extension>
</simpleContent>
</complexType>
</element>
</sequence>
<attribute name="name" type="string"
default="firstPointDesc" />
</complexType>
</element>
<element name="params" maxOccurs="1" minOccurs="1">
<complexType>
<sequence>
<element name="param" maxOccurs="1"
minOccurs="1">
<complexType>
<simpleContent>
<extension base="string">
<attribute name="name"
type="string" default="code" />
</extension>
</simpleContent>
</complexType>
</element>
</sequence>
<attribute name="name" type="string"
default="endPoint" />
</complexType>
</element>
<element name="params" maxOccurs="1" minOccurs="1">
<complexType>
<sequence>
<element name="param" maxOccurs="1"
minOccurs="1">
<complexType>
<simpleContent>
<extension base="string">
<attribute name="name"
type="string" default="pName" />
</extension>
</simpleContent>
</complexType>
</element>
<element name="param" maxOccurs="1"
minOccurs="1">
<complexType>
<simpleContent>
<extension base="string">
<attribute name="name"
type="string" default="pLo" />
</extension>
</simpleContent>
</complexType>
</element>
</sequence>
<attribute name="name" type="string"
default="endPointDesc" />
</complexType>
</element>
<element name="param" maxOccurs="1" minOccurs="1">
<complexType>
<sequence>
<element name="param" maxOccurs="1"
minOccurs="1">
<complexType>
<simpleContent>
<extension base="string">
<attribute name="name"
type="string" default="temperature" />
</extension>
</simpleContent>
</complexType>
</element>
<element name="param" maxOccurs="1"
minOccurs="1">
<complexType>
<simpleContent>
<extension base="string">
<attribute name="name"
type="string" default="humidity" />
</extension>
</simpleContent>
</complexType>
</element>
<element name="param" maxOccurs="1"
minOccurs="1">
<complexType>
<simpleContent>
<extension base="string">
<attribute name="name"
type="string" default="pressure" />
</extension>
</simpleContent>
</complexType>
</element>
</sequence>
<attribute name="name" type="string"
default="bunch" />
</complexType>
</element>
....
,但没有成功:Multiple elements with name 'param', with different types, appear in the model group.
报道蚀。
任何人都可以提供这个或类似结构的描述的有效例子xsd
? 我与wsdl模式和服务完全不同。
非常感谢。
答
XML词汇表的设计者似乎一直致力于使用普通的XML工具使XML无法验证;他们可能已经成功了。为了掩饰他们邪恶的计划,最好的办法可能是将他们的XML映射成同构的,但更容易验证的XML(例如,使这些属性值成为元素名称),或者查看XSD 1.1断言并处理XPath 2.0技能。