XMLファイルがあります。私はCDAスキーマインフラストラクチャを使用して検証しようとしています。XML - XSD検証エラー:検証ルートに一致するグローバル宣言がありません
$domxml = new DOMdocument();
$domxml->load($fil);
if($domxml->SchemaValidate('filepath/cda/POCD_MT000040_SDTC.xsd')) {
//do stuff
} else {
print_recursive(libxml_get_errors())
}
マイXMLファイルには、次のヘッダを有する:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="ccda.xsl"?>
<ClinicalDocument
xsi:schemaLocation="urn:hl7-org:v3
http://xreg2.nist.gov:8080/hitspValidation/schema/cdar2c32/infrastructure/cda/C32_CDA.xsd"
xmlns="urn:hl7-org:v3"
xmlns:sdtc="urn:hl7-org:sdtc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<realmCode code="US"/>
<typeId root="2.16.840.1.113883.1.3" extension="POCD_HD000040"/>
マイXSDファイルには、次のヘッダを有する:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xs:schema targetNamespace="urn:hl7-org:v3"
xmlns:mif="urn:hl7-org:v3/mif"
xmlns="urn:hl7-org:v3"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
xmlns:sdtc="urn:hl7-org:sdtc">
のlibxmlによって提供されるエラーメッセージのようなある:
Error 1845: Line: 1 Col: 0: Element '{urn:hl7-org:v3}ClinicalDocument': No matching global declaration available for the validation root.
私は見ましたこのエラーメッセージの他の例が現れています。私の検索では15種類の完全に矛盾するものを意味する非常にあいまいなエラーですが、XMLヘッダーやヘッダーの間違いに絞っていますXSDのために。 PHPで間違って読み込んだり、検証したりしているとは思えませんが、間違いかもしれません。
私は使用しているXML文書のXSDバリデータとしてこのファイル(およびそれに含まれるすべてのファイル)を使用するように指示されています。 XSDファイルをサーバーにアップロードし、domdocument schemavalidateを使用してそれらを指している)、またはXMLファイルのヘッダーが間違っている(おそらく、標準に従って正しく機能するテストケースが提供されているため)間違っている(間違ったものを手に入れたかもしれない)
ご協力いただきありがとうございます!