我在尝试处理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='jimmy.pdf']</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>
答案 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
,因此您只需删除作业即可。