2017-10-17 15 views
0

DTD 파일에서 만든 요소를 ​​사용하여 책 목록에 대한 정보가 포함 된 XML 파일을 만들려고합니다. 모든 요소가 올바르게 참조되었습니다 (생각하십니까?). DTD 청구의 요소를 사용하여 XML 파일을 만들려고하면 오류 메시지가 나타납니다. "루트 요소를 지정해야합니다". 내 코드에 문제가 있습니까? 아니면 Eclipse (즉, 부적절한 버전, 누락 된 플러그인) 문제 일 가능성은 있습니까? 사용eclipse를 통해 ImDTD를 사용하여 XML을 작성하려고 시도했을 때 루트 요소가 지정되지 않은 이유는 무엇입니까?

<?xml version="1.0" encoding="UTF-8"?> 
<!ELEMENT bookList(book)*> 
<!ELEMENT book((author | editor, contributors+), title, publisher, isbn_num, price, vol?, edition?)> 

<!ELEMENT author(#PCDATA)> 

<!ELEMENT editor(#PCDATA)> 

<!ELEMENT contributors(#PCDATA)> 

<!ELEMENT title(#PCDATA)> 

<!ELEMENT publisher(#PCDATA)> 

<!ATTLIST isbn_num id_code ID #REQUIRED> 

<!ELEMENT price(#PCDATA)> 
<!ATTLIST price currency (GBP | EUR | USD) #IMPLIED> 

<!ELEMENT vol(#PCDATA)> 

<!ELEMENT edition(#PCDATA)> 

혼란 스럽다 : 이클립스 자바 EE IDE, Oxygen.1 릴리스 (4.7.1)

+1

정확히 어떤 명령을 사용하여 문서를 만들려고합니까? 이 명령은 루트 요소의 요소 유형 이름을 매개 변수로 예상합니까? DTD가' '형식을 취할 것으로 기대합니까? –

+0

이 오류가 발생하면이 DTD로 정확히 무엇을하고 있습니까? –

답변

0

귀하의 XML은 DTD 파일에 루트 요소 및 링크를 필요로한다. 이 같은 것이 외부 DTD의 최종 결과 일 것입니다.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE root SYSTEM "file.dtd"> 
<root> 
<element1>a</element1> 
<element2>b</element2> 
<element3>c</element3> 
<element4>d</element4> 
</root> 

"root"는 원하는 것일 수 있습니다.

외부 DTD를 만드는 것처럼 보입니다.이 경우 파일에 XML 정의가 필요하지 않습니다.

<!ELEMENT bookList(book)*> 
<!ELEMENT book((author | editor, contributors+), title, publisher, isbn_num, price, vol?, edition?)> 
<!ELEMENT author(#PCDATA)> 
<!ELEMENT editor(#PCDATA)> 
<!ELEMENT contributors(#PCDATA)> 
<!ELEMENT title(#PCDATA)> 
<!ELEMENT publisher(#PCDATA)> 
<!ATTLIST isbn_num id_code ID #REQUIRED> 
<!ELEMENT price(#PCDATA)> 
<!ATTLIST price currency (GBP | EUR | USD) #IMPLIED> 
<!ELEMENT vol(#PCDATA)> 
<!ELEMENT edition(#PCDATA)> 

내부 DTD를 만들려고 한 경우.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE bookList [ 
<!ELEMENT bookList(book)*> 
<!ELEMENT book((author | editor, contributors+), title, publisher, isbn_num, price, vol?, edition?)> 
<!ELEMENT author(#PCDATA)> 
<!ELEMENT editor(#PCDATA)> 
<!ELEMENT contributors(#PCDATA)> 
<!ELEMENT title(#PCDATA)> 
<!ELEMENT publisher(#PCDATA)> 
<!ATTLIST isbn_num id_code ID #REQUIRED> 
<!ELEMENT price(#PCDATA)> 
<!ATTLIST price currency (GBP | EUR | USD) #IMPLIED> 
<!ELEMENT vol(#PCDATA)> 
<!ELEMENT edition(#PCDATA)> 
]> 
<bookList>......</bookList>