Проверьте xpdl с помощью схемы xsd
Я со следующей проблемой:
Мне нужно прочитать какой-то процесс в формате xpdl, который является одним специфичным для процесса xml. Эти xpdl генерируются Bizagi.
На официальном сайте xpdl я поймал схему xml, но когда я пытаюсь проверить xpdl, сгенерированный bizagi, с помощью схемы xml, которую я ловлю на сайте, он выдает одну ошибку.
Я пытался понять, что могло произойти, но я не понимаю.
Вы можете помочь мне понять?
Я отправляю ошибку:
["level"]=> int(2)
["code"]=> int(1871)
["column"]=> int(0)
["message"]=> string(596) "Element '{http://www.wfmc.org/2009/XPDL2.2}Activities': This element is not expected. Expected is one of ( {http://www.wfmc.org/2009/XPDL2.2}DataStoreReferences, {http://www.wfmc.org/2009/XPDL2.2}Transitions, {http://www.wfmc.org/2009/XPDL2.2}DataAssociations, {http://www.wfmc.org/2009/XPDL2.2}ExtendedAttributes, {http://www.wfmc.org/2009/XPDL2.2}Assignments, {http://www.wfmc.org/2009/XPDL2.2}PartnerLinks, {http://www.wfmc.org/2009/XPDL2.2}Object, {http://www.wfmc.org/2009/XPDL2.2}Participants, {http://www.wfmc.org/2002/XPDL1.0}DataFields, {http://www.wfmc.org/2009/XPDL2.2}Applications ). "
["file"]=> string(66) "file:///C:/Users/dieferson.medeiros/AppData/Local/Temp/php1DBF.tmp"
["line"]=> int(117)
Следует коду, который я использую для проверки xpdl со схемой xml:
libxml_use_internal_errors (true);
$xml = new \DOMDocument();
$xml->load($file->getPathname());
var_dump($xml->schemaValidate(__DIR__.'/../../../../web/uploads/xsd/xpdl.xsd'));
var_dump(libxml_get_errors());
Переходит по ссылке на xpdl:
https://drive.google.com/file/d/0B1uwndG8_xlZSHBzZHZMTUZ0dkk/view?usp=sharing
Переходит по ссылке на XML-схему:
https://drive.google.com/file/d/0B1uwndG8_xlZblpZUmY2NkxXaGc/view?usp=sharing
Спасибо за Ваше внимание.
1 ответ
Это говорит о том, что элемент Деятельности не очень хорошо расположен.
Я проверю ваш.xpdl на соответствие стандарту XPDL 2.2 от WFMC
И я получаю 9 ошибок:
1. "Error: The required attribute 'Id' is missing."
2. "Error: The required attribute 'Id' is missing."
3. "Error: The required attribute 'Id' is missing."
4. "Error: The element 'Lane' in namespace 'http://www.wfmc.org/2009/XPDL2.2' has invalid child element 'ExtendedAttributes' in namespace 'http://www.wfmc.org/2009/XPDL2.2'. List of possible elements expected: 'Performers, NestedLane' in namespace 'http://www.wfmc.org/2009/XPDL2.2' as well as any element in namespace '##other'."
5. "Error: The element 'Lane' in namespace 'http://www.wfmc.org/2009/XPDL2.2' has invalid child element 'ExtendedAttributes' in namespace 'http://www.wfmc.org/2009/XPDL2.2'. List of possible elements expected: 'Performers, NestedLane' in namespace 'http://www.wfmc.org/2009/XPDL2.2' as well as any element in namespace '##other'."
6. "Error: The element 'Lane' in namespace 'http://www.wfmc.org/2009/XPDL2.2' has invalid child element 'ExtendedAttributes' in namespace 'http://www.wfmc.org/2009/XPDL2.2'. List of possible elements expected: 'Performers, NestedLane' in namespace 'http://www.wfmc.org/2009/XPDL2.2' as well as any element in namespace '##other'."
7. "Error: The element 'Associations' in namespace 'http://www.wfmc.org/2009/XPDL2.2' has incomplete content. List of possible elements expected: 'Association' in namespace 'http://www.wfmc.org/2009/XPDL2.2'."
8. "Error: The element 'Artifacts' in namespace 'http://www.wfmc.org/2009/XPDL2.2' has incomplete content. List of possible elements expected: 'Artifact' in namespace 'http://www.wfmc.org/2009/XPDL2.2'."
9. "Error: The element 'WorkflowProcess' in namespace 'http://www.wfmc.org/2009/XPDL2.2' has invalid child element 'Activities' in namespace 'http://www.wfmc.org/2009/XPDL2.2'. List of possible elements expected: 'DataStoreReferences, Transitions, DataAssociations, ExtendedAttributes, Assignments, PartnerLinks, Object, Extensions' in namespace 'http://www.wfmc.org/2009/XPDL2.2'."
... Но не тот, которым вы поделились с нами. Как я вижу в вашем файле, деятельность хорошо расположена:
<WorkflowProcess>
...
<Activities>...<Activities/>
</WorkflowProcess>
Не могли бы вы проверить правильный файл и / или проверить ошибки, которые я вам передал? Ваша схема выглядит хорошо.