【发布时间】:2017-03-24 17:20:13
【问题描述】:
我在尝试处理我的 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>
【问题讨论】:
-
我相信你应该使用"targetNamespace="openapplications.org/oagis/9"
-
甚至完全省略 targetNamespace。我不确定你为什么要使用它。
-
架构来自 oagi.org,通过他们的 v9.6.1 公开下载。这是他们的 NotifyCatalog.xsd。我几乎无法使用它。有没有办法让我的 xml 忽略它不喜欢的东西?
-
删除
targetNamespace;它进入 XSD,而不是 XML 文档实例。并发布说明任何其他问题的minimal reproducible example。如果你不能这样做,至少发布一个最小的 XML 文档来说明你的问题和 XSD 的在线链接。至少如果没有这些,您将无法按顺序发布遇到的每个错误,而且这可能会很冗长。
标签: xml xsd-validation