2014-08-31 8 views
0

BaseX 7.9에서 다음 XQuery 코드를 실행하고 결과 창에 삽입 된 것을 볼 수 있습니다. 컬렉션을 닫았다가 다시 열어도 새 노드가 표시됩니다. 그러나 파일 디렉토리로 이동하면 수정되지 않은 것을 볼 수 있습니다. 그렇다면 삽입을 파일에도 반영시킬 수 있습니까? 그리고 BaseX는 삽입 명령을 어떻게 처리하여 파일의 컨텍스트가 아닌 데이터베이스의 컨텍스트에서 유지됩니까?Insert Node 명령으로 BaseX가 파일을 수정하지 않는 이유는 무엇입니까?

let $up := <Employee Name="Joe"> 
    <Personal> 
     <SSN>666-66-1234</SSN> 
    </Personal> 
    <StaffInfo> 
     <Position>Doctor</Position> 
     <AccountableTo>Jeff</AccountableTo> 
    </StaffInfo> 
    </Employee> 
return insert node $up as last into doc('office')/Staff 

답변

2

기본적으로 업데이트는 데이터베이스 외부의 XML 문서에는 반영되지 않습니다. 그러나 업데이트는 command-line flag -U 또는 옵션 WRITEBACK을 통해 시행 될 수 있습니다.

3

BaseX 데이터베이스는 작성한 XML 파일에 해당하지만 일부 색인으로 강화 된 높은 쿼리 성능을위한 특수 인코딩으로 제공됩니다. XQuery 업데이트를 사용하여 데이터베이스를 업데이트 할 때 원본 파일이 자동으로 업데이트되지 않습니다 (따라서 XML이 데이터베이스에서 직렬화 됨).

수출 데이터베이스 사용하여 업데이트 한 후 하나

  • 명령 프롬프트EXPORT 명령

    EXPORT [path] 
        Export database to XML. 
    
  • 그래픽 사용자 인터페이스 및 내보내기 대화 상자에서 아래의 메뉴 모음 데이터베이스, 수출.