无法针对XSD验证XML

时间:2017-03-24 17:20:14

标签: xml xsd-validation

我在尝试处理XML时遇到2个错误;说这不是一个有效的OAGIS文档。我的XML很简单。 XSD是来自OAGIS 9_6_1的NotifyCatalog.xsd当我使用xmlvalidation.com时它说:

  

XML文档中的错误:2:317 cvc-elt.1:找不到   元素'NotifyCatalog'的声明。

     

文件xml-schema中的错误:27:233 TargetNamespace.2:期望没有   命名空间,但架构文档的目标命名空间为   'http://www.openapplications.org/oagis/9'。

请帮忙!下面的XML,XSD是> 6000行,但如果你愿意我可以附加。

<?xml version="1.0" encoding="UTF-8"?>
<NotifyCatalog xmlns:xs="http://www.openapplications.org/oagis/9" targetNamespace:ibts="http://www.openapplications.org/oagis/9" versionID="9_4" releaseID="9_4" systemEnvironmentCode="Production">
  <ApplicationArea>
    <Sender>
      <LogicalID>MRP</LogicalID>
      <ComponentID>WID</ComponentID>
      <TaskID/>
      <ReferenceID>9990000000001568</ReferenceID>
      <ConfirmationCode>OnError</ConfirmationCode>
      <AuthorizationID>AUTOSYS</AuthorizationID>
    </Sender>
    <CreationDateTime>2017-03-21T15:10:08.551</CreationDateTime>
    <BODID>CATALOG-0000000000001</BODID>
  </ApplicationArea>
   <DataArea>
      <Notify>
         <ActionCriteria>
            <ActionExpression actionCode="Add">/NotifyCatalog/DataArea/Catalog/CatalogLine[Attachment/EmbeddedData=&apos;jimmy.pdf&apos;]</ActionExpression>/>
         </ActionCriteria>
      </Notify>
      <Catalog>
         <CatalogHeader>
            <DocumentID agencyRole="PLM">
               <ID/>
               <RevisionID/>
               <VariationID/>
            </DocumentID>
            <Description>HeaderPlasmaMonitorEBOM.pdf</Description>
         </CatalogHeader>
         <CatalogLine>
            <Item>
               <ItemID agencyRole="PLMDocument">
                  <ID>29433</ID>
                  <RevisionID>003</RevisionID>
               </ItemID>
                   <Description languageID="en-us">LinePlasmaMonitorEBOM.pdf</Description>
                   <Specification type="SecurityGroup">
                          <Property>
                             <NameValue name="SecurityGroup">PU</NameValue>
                          </Property>            
                   </Specification>
<!--                   <UserArea>                         <ibts:AttachmentUserArea/>                   </UserArea>-->
            </Item>
            <Attachment type="Thumbnail">
               <EmbeddedData mimeCode="normalizedString">jimmy.pdf</EmbeddedData>
            </Attachment>
         </CatalogLine>
      </Catalog>
   </DataArea>
</NotifyCatalog>

1 个答案:

答案 0 :(得分:1)

Haven没有查看架构,但除非它是一个无命名空间架构(不太可能),否则你应该像这样开始你的文档:

<NotifyCatalog xmlns="http://www.openapplications.org/oagis/9"
               versionID="9_4"
               releaseID="9_4"
               systemEnvironmentCode="Production">
...

xmlns=告诉XML要分配给没有命名空间前缀的元素的默认命名空间(文档中没有一个元素有一个,所以所有元素都会收到默认的命名空间前缀)。 / p>

此属性规范:

targetNamespace:ibts="http://www.openapplications.org/oagis/9"

是伪造的(因为targetNamespace不是声明的名称空间前缀,因此无效);如果要将ibts指定为命名空间前缀绑定,则必须使用

xmlns:ibts="http://www.openapplications.org/oagis/9"

但如上所述,您未在文档中的任何位置使用ibts,因此您只需删除作业即可。