
DOMDocument::schemaValidateSource 함수는 XML 스키마를 로컬 파일로 저장하고, 함수에 파일 경로를 전달하는 방법은 올바른 방식입니다.
스키마 파일의 경로를 전달할 때, 상대 경로를 사용할 수 있습니다. 상대 경로는 현재 PHP 스크립트의 위치를 기준으로 계산되므로, 스크립트가 실행되는 위치에 따라 스키마 파일의 경로가 달라질 수 있습니다.
XML 스키마를 로컬 파일로 저장하고, DOMDocument::schemaValidateSource 함수에 파일 경로를 전달하는 방법에 대한 예제 코드는 다음과 같습니다.
#hostingforum.kr
php
// 스키마 파일을 로컬 파일로 저장합니다.
$schemaFile = 'schema.xsd';
// 스키마 파일의 경로를 전달합니다. 상대 경로를 사용합니다.
$doc = new DOMDocument();
$doc->load('example.xml');
if ($doc->schemaValidate($schemaFile)) {
echo 'XML 문서가 스키마와 일치합니다.';
} else {
echo 'XML 문서가 스키마와 일치하지 않습니다.';
}
위 예제 코드에서, `schema.xsd` 파일은 스키마 파일로 저장되어 있습니다. `example.xml` 파일은 XML 문서로 저장되어 있습니다. `DOMDocument::schemaValidateSource` 함수 대신 `DOMDocument::schemaValidate` 함수를 사용하여 스키마를 검증합니다.
또한, 스키마 파일의 경로를 전달할 때, 절대 경로를 사용할 수도 있습니다. 절대 경로는 스크립트가 실행되는 위치와 관계없이 항상 동일한 경로를 참조합니다.
#hostingforum.kr
php
// 스키마 파일을 로컬 파일로 저장합니다.
$schemaFile = '/path/to/schema.xsd';
// 스키마 파일의 경로를 전달합니다. 절대 경로를 사용합니다.
$doc = new DOMDocument();
$doc->load('example.xml');
if ($doc->schemaValidate($schemaFile)) {
echo 'XML 문서가 스키마와 일치합니다.';
} else {
echo 'XML 문서가 스키마와 일치하지 않습니다.';
}
위 예제 코드에서, `/path/to/schema.xsd`는 스키마 파일의 절대 경로입니다.
2025-05-27 13:31