저는 XML 작성에 초보자이고 문제가 있습니다. 나는 사람이라고 부르는 기초 dtd가 있고 나는 조련사 및 회사 둘 다에있는 실재물로 그것을 이용한다. 나는 또한 루트 요소를 훈련시키고이 루트 요소에서 나는 트레이너 또는 회사 중 하나를 가지고있다. xml 파일의 유효성을 검사하려고 할 때 "요소 'person'이 이미 선언되었습니다." . 내 구조를 그대로 유지하고 XML 파일의 유효성을 검사 할 수 있습니까? 그건 그렇고 엔티티 양식을 사용하여 내 person.dtd를 재사용합니다. 도움 주셔서 감사합니다.요소가 이미 정의 됨 오류
이 파일 "person.dtd"입니다 :
<!ELEMENT person (id, name, lastname,
telNo, adress, birthday,
email)>
<!ELEMENT id (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT telNo (#PCDATA)>
<!ELEMENT adress (#PCDATA)>
<!ELEMENT birthday (#PCDATA)>
<!ELEMENT email (#PCDATA)>
이다 파일 "trainer.dtd"
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT company (companyId, companyName,
companyAdress, telno, contactPerson)>
<!ELEMENT companyId (#PCDATA)>
<!ELEMENT companyName (#PCDATA)>
<!ELEMENT companyAdress (#PCDATA)>
<!ELEMENT telno (#PCDATA)>
<!ENTITY % contactPerson SYSTEM "person.dtd">
%contactPerson;
: 이것은 "company.dtd는"
<!ELEMENT trainer (trainerPerson,proficiency)>
<!ENTITY % trainerPerson SYSTEM "person.dtd">
%trainerPerson;
<!ELEMENT proficiency (#PCDATA)>
입니다
그리고 이것은 훈련 정보를위한 DTD입니다 :
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT trainning (trainningId, cost, date, duration,
trainningName, comment,
durationtype, (trainer|company))>
<!ELEMENT trainningId (#PCDATA)>
<!ELEMENT cost (#PCDATA)>
<!ELEMENT date (#PCDATA)>
<!ELEMENT duration (#PCDATA)>
<!ELEMENT trainningName (#PCDATA)>
<!ELEMENT durationtype (#PCDATA)>
<!ENTITY % trainer SYSTEM "trainer.dtd">
%trainer;
<!ENTITY % company SYSTEM "company.dtd">
%company;
답장을 보내 주셔서 감사합니다. 드라이버 파일 집합이 무엇을 의미합니까? – Eneramo
나는 내 대답에 나와있는 Company.dtd, Trainer.dtd, Training.dtd 파일과 같은 파일을 의미했지만, 다른 파일을 포함하지만 (따라서 다른 DTD의 효과적인 DTD 작성을 유도하는 것으로 생각할 수 있습니다. 사용할 수있는 파일). 이 파일은 문서에서 참조 할 파일입니다. 예를 들어 트레이너에 관한 문서는 다음과 같이 시작할 수 있습니다 :' ...'회사에 관한 문서는' ...' –
당신의 도움을 주셔서 감사합니다. – Eneramo