Что может быть не так с этим xsd? - PullRequest
3 голосов
/ 26 января 2010

У меня есть xsd. Когда я пытаюсь проверить его в BizTalk, он выдает следующие ошибки:

error BEC2009: Node "<Schema>" - Schema reference "http://www.w3.org/2001/xml.xsd" is not a valid reference or does not exist in the current project.

error BEC2009: Node "<Schema>" - Schema reference "http://www.w3.org/2001/xml.xsd" is not a valid reference or does not exist in the current project.

warning BEC999: Cannot resolve the 'schemaLocation' attribute.

error BEC3001: The 'http://www.w3.org/XML/1998/namespace:space' attribute is not declared.

warning BEC999: Cannot resolve the 'schemaLocation' attribute.

warning BEC1007: Node "<Schema>" - Target namespace is empty.

Я думаю, что это относится к пространствам имен, которые выглядят так:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>

Не уверен, достаточно ли информации для продолжения ...

Edit:
Я обнаружил, что в зависимости от того, какую программу я использую для проверки XML, она иногда работает. Например. Если я создаю некоторый код .net для проверки xml по схеме, он, кажется, читает xsd ok и проверяет xml. Если я использую проверку XML в notepad ++, он говорит, что не может прочитать схему, хотя. В другом картографе (WTX) говорят, что он также не работает.

Могу ли я попытаться сузить круг возможных проблем?

Редактировать 2:
Благодаря xcut. Обнаружено, что если я скачаю схему локально и вставлю ее в проект BizTalk, схема будет проверена нормально, но с 1 предупреждением: предупреждение BEC1007: узел "" - целевое пространство имен пусто.

1 Ответ

2 голосов
/ 26 января 2010

Помимо того, что импортировать схему пространства имен немного странно, может случиться так, что BizTalk просто не сможет импортировать схему через URL (тогда как ваш код .net может).

Чтобы исключить это как проблему, загрузите схему с w3.org, поместите ее в свой проект и импортируйте ее оттуда вместо http.

...