개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.27 13:30

DOMDocument::schemaValidateSource 사용법에 대한 질문

목록
  • JetpackCompose마… 4일 전 2025.05.27 13:30
  • 7
    1
저는 XML 문서를 PHP로 처리할 때 DOMDocument::schemaValidateSource 함수를 사용하려고 합니다. 하지만 XML 스키마를 사용하여 문서를 검증하는 부분이 이해가 잘 안 가는 점이 있습니다.

저는 XML 스키마를 작성하고, DOMDocument::schemaValidateSource 함수를 사용하여 문서를 검증하려고 합니다. 하지만 XML 스키마를 사용하여 문서를 검증하는 부분이 이해가 잘 안 가는 점이 있습니다.

저는 XML 스키마를 작성하였고, DOMDocument::schemaValidateSource 함수를 사용하여 문서를 검증하려고 합니다. 이때, 스키마를 로컬 파일로 저장하고, DOMDocument::schemaValidateSource 함수에 파일 경로를 전달하는 방법이 올바른 방법인가요?

또한, 스키마 파일의 경로를 전달할 때, 절대 경로를 사용해야 하는 건가요? 상대 경로를 사용해도 되는 건가요?

혹시 XML 스키마를 로컬 파일로 저장하고, DOMDocument::schemaValidateSource 함수에 파일 경로를 전달하는 방법에 대한 예제 코드를 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  4일 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 24,162건 / 48 페이지

검색

게시물 검색