XML me confunde a veces, pero estoy tratando de resolver esto. Lo que el vendedor me está diciendo no tiene sentido, pero de nuevo, XML y no me llevo bien :)¿A XML le importa el orden de los elementos?
Tengo un XML que estoy enviando al servicio web de un proveedor que me está dando fallas aleatorias:
<root>
<Request>
<Driver id="1" VehId="1">...</Driver>
<Driver id="2" VehId="1">...</Driver>
<Driver id="3" VehId="2">...</Driver>
<Vehicle id="1">...</Vehicle>
<Vehicle id="2">...</Vehicle>
<Driver id="4" VehId="2">...</Driver>
</Request>
</root>
No hay que comparar XSLT o XSD para ver si mi XML es válido.
El vendedor declara que el XML no es válido porque el Driver # 4 está en el área incorrecta. El XPath para Driver debe ser root/Request/Driver y Vehicle es root/Request/Vehicle.
¿Es común que los analizadores XML fuercen un orden de elementos, especialmente si no hay un XSD para comparar el XML? El apoyo del proveedor es lento para volver conmigo, así que quiero saber qué buena práctica común es.
Seguimiento
que se quejó suficiente para nuestra representante de cuenta por no ser capaz de probar esto (y lo hizo sonar como que estaban tratando de conseguir el apoyo de dinero) que resulta que los desarrolladores han XSD , pero el soporte no. Así que había estado hablando con el grupo equivocado * facepalm *
Obtuve el XSD y hace cumplir un orden específico de elementos.
Ahora luchar contra ellos en lo que respecta a su propia muestra XML no sigue el esquema, pero al menos ahora tengo algo contra qué probar.
El proveedor debe proporcionar un XSD o documentación de respaldo que detalle las suposiciones que el software hace sobre el formato XML, incluido el orden de los elementos. De lo contrario, tienes que adivinar. El software que lee documentos XML no debe hacer cumplir una orden (cuando sea posible), pero no es poco común. Una documentación XSD * is * que define explícitamente las reglas de formato de intercambio. Ver también http://kettle.pentaho.com/. –