我必须为我的xsd手写一个示例xml,但我总是收到无效消息: cvc-elt.1.a:找不到元素'RS_WMS_GET_PO_DATA_v2.0'的声明。
我的XSD:
<?xml version="1.0" encoding="utf-16"?>
<schema xmlns:ns0="http://www.rossinc.com/" xmlns:msbtsdml="http://schemas.rossinc.com/BizTalk" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.rossinc.com/" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
<appinfo>
<msbtsdml:StoredProcedureName xmlns:msbtsdml="http://schemas.rossinc.com/BizTalk/DMLAdapter">RS_WMS_GET_PO_DATA</msbtsdml:StoredProcedureName>
<msbtsdml:ResponseRootName xmlns:msbtsdml="http://schemas.rossinc.com/BizTalk/DMLAdapter">poData</msbtsdml:ResponseRootName>
</appinfo>
</annotation>
<element name="RS_WMS_GET_PO_DATA_v2.0">
<complexType>
<sequence>
<element minOccurs="1" maxOccurs="1" name="Parameters">
<complexType>
<sequence>
<element default="0" name="ERROR_OCCURRED" type="string">
<annotation>
<appinfo>
<msbtsdml:ParamDir xmlns:msbtsdml="http://schemas.microsoft.com/BizTalk/2003">In</msbtsdml:ParamDir>
</appinfo>
</annotation>
</element>
<element default="1" name="XML_TAGS" type="int">
<annotation>
<appinfo>
<msbtsdml:ParamDir xmlns:msbtsdml="http://schemas.microsoft.com/BizTalk/2003">In</msbtsdml:ParamDir>
</appinfo>
</annotation>
</element>
<element default="0" name="NUM_ROWS" type="int">
<annotation>
<appinfo>
<msbtsdml:ParamDir xmlns:msbtsdml="http://schemas.microsoft.com/BizTalk/2003">In</msbtsdml:ParamDir>
</appinfo>
</annotation>
</element>
</sequence>
</complexType>
</element>
<element name="RS_WMS_GET_PO_DATA">
<complexType>
<all minOccurs="1" maxOccurs="1">
<element name="COMPANY_CODE" type="string" />
<element name="DIVISION" type="string" />
<element name="PO_NUMBER" type="string" />
<element name="PO_WH_SEQUENCE" type="string" />
<element name="ERP_ACTION_CODE" type="string" />
</all>
</complexType>
</element>
<element name="DMLAdapterConfig">
<complexType>
<sequence>
<element name="EnvironmentId" type="string" />
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>
我的XML:
<?xml version="1.0" encoding="UTF-8"?>
<RS_WMS_GET_PO_DATA_v2.0>
<Parameters>
<ERROR_OCCURRED>0</ERROR_OCCURRED>
<XML_TAGS>1</XML_TAGS>
<NUM_ROWS>0</NUM_ROWS>
</Parameters>
<RS_WMS_GET_PO_DATA>
<COMPANY_CODE></COMPANY_CODE>
<DIVISION></DIVISION>
<PO_NUMBER></PO_NUMBER>
<PO_WH_SEQUENCE></PO_WH_SEQUENCE>
<ERP_ACTION_CODE></ERP_ACTION_CODE>
</RS_WMS_GET_PO_DATA>
<DMLAdapterConfig>
<EnvironmentId></EnvironmentId>
</DMLAdapterConfig>
</RS_WMS_GET_PO_DATA_v2.0>
有什么想法吗?
这是我正在使用的网站: http://www.corefiling.com/opensource/schemaValidate.html
答案 0 :(得分:4)
<?xml version="1.0" encoding="UTF-8"?>
<ns0:RS_WMS_GET_PO_DATA_v2.0 xmlns:ns0="http://www.rossinc.com/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.rossinc.com/ One.xsd ">
<ns0:Parameters>
<ns0:ERROR_OCCURRED>0</ns0:ERROR_OCCURRED>
<ns0:XML_TAGS>1</ns0:XML_TAGS>
<ns0:NUM_ROWS>0</ns0:NUM_ROWS>
</ns0:Parameters>
<ns0:RS_WMS_GET_PO_DATA>
<ns0:COMPANY_CODE>ns0:COMPANY_CODE</ns0:COMPANY_CODE>
<ns0:DIVISION>ns0:DIVISION</ns0:DIVISION>
<ns0:PO_NUMBER>ns0:PO_NUMBER</ns0:PO_NUMBER>
<ns0:PO_WH_SEQUENCE>ns0:PO_WH_SEQUENCE</ns0:PO_WH_SEQUENCE>
<ns0:ERP_ACTION_CODE>ns0:ERP_ACTION_CODE</ns0:ERP_ACTION_CODE>
</ns0:RS_WMS_GET_PO_DATA>
<ns0:DMLAdapterConfig>
<ns0:EnvironmentId>ns0:EnvironmentId</ns0:EnvironmentId>
</ns0:DMLAdapterConfig>
</ns0:RS_WMS_GET_PO_DATA_v2.0>
因为您没有提到要用于此XML文件的模式文件。我认为这将解决你的问题。
答案 1 :(得分:4)
我有一个cvc-elt.1.a:找不到元素问题的声明!。
我这样解决了:
1.-查看你的XSD文件,如果它有xmlns属性,(例如:xmlns =“http:// yourcompany / blablabla / rootElementName”)
2.-查看您的XML文件,如果XSD已定义了XML文件,则必须具有xmlns属性。
3.- XML区分大小写。查看xml标记并将其与xsd标记进行比较。
问候!