0

For a schoolsubject I'm supposed to make both XML and DTD. At first I had the entities seperated in different files, but they prefer I integrate it so the connections clearly show.

I've been trying to understand how this works for a few days now, but can't seem to work it out. I have a hard time understanding what I'm doing either right or wrong and how to show the connections. If I try to verify the work, it instantly errors on the third line.

<?xml version="1.0"?>
<!DOCTYPE bon>
<!ELEMENT precondition (RD_POLICY, CONNECTION_WITH_DSNS, CAPACITEIT)>
<!ELEMENT RD_POLICY (#PCDATA)>
<!ELEMENT CONNECTION_WITH_DSNS (#PCDATA)>
<!ELEMENT BUDGET (#PCDATA)>
<!ELEMENT CAPACITEIT (#PCDATA)>
<PRECONDITION>
    <RD_POLICY>Version 4</RD_POLICY>
    <CONNECTION_WITH_DSNS>Partner Firm</CONNECTION_WITH_DSNS>
    <BUDGET>€200000</BUDGET>
    <CAPACITEIT>€2K mede-als 15 medewerkers gedurende 13 weken minimum</CAPACITEIT>
</PRECONDITION>
<!ELEMENT project_proposal (DOCUMENT_ID, NAME, COMPANY_NAME, ACTIVITY, DELIVERY, AIM, TYPE)>
<!ELEMENT DOCUMENT_ID (#PCDATA)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT COMPANY_NAME (#PCDATA)>
<!ELEMENT ACTIVITY (#PCDATA)>
<!ELEMENT DELIVERY (#PCDATA)>
<!ELEMENT AIM (#PCDATA)>
<!ELEMENT TYPE (#PCDATA)>
<PROJECT_PROPOSAL>
    <DOCUMENT_ID>3</DOCUMENT_ID>
    <NAME>Vessel Restructure Program (VRP)</NAME>
    <COMPANY_NAME>Amels</COMPANY_NAME>
    <ACTIVITY>Restructuring of the vessel Hoensma</ACTIITY>
    <DELIVERY>31-12-2022</DELIVERY>
    <AIM>Restore integrity of hull vessel Hoensma</AIM>
    <TYPE>Repair</TYPE>
</PROJECT_PROPOSAL>
<!ELEMENT project_application_form (GOAL, STAFF, BUDGET, EK_NUMBER, NAME, DATA)>
<!ELEMENT GOAL (#PCDATA)>
<!ELEMENT STAFF (#PCDATA)>
<!ELEMENT BUDGET (#PCDATA)>
<!ELEMENT EK_NUMBER (#PCDATA)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMT DATA (#PCDATA)>
<PROJECT_APPLICATION_FORM>
    <GOAL>To restructure the hull of the vessel Hoensma</GOAL>
    <STAFF>Marco Jansse plus crew</STAFF>
    <BUDGET>€500000</BUDGET>
    <EK_NUMBER>761396773</EK_NUMBER>
    <NAME>Vessel Restructure Program (VRP)</NAME>
    <DATE>26-03-2019</DATE>
</PROJECT_APPLICATION_FORM>
<!ELEMENT requirements_form(MINIMUM_REQUIREMENTS, FITTING_BUDGET, CAPACITY_REQUIRED)>
<!ELEMENT MINIMUM_REQUIREMENTS (#PCDATA)>
<!ELEMENT FITTING_BUDGET (#PCDATA)>
<!ELEMENT CAPACITY_REQUIRED (#PCDATA)>
]>
<REQUIREMENTS_FORM>
    <MINIMUM_REQUIREMENTS>The project has a maximum time of 6 months, if time is insufficient, cancel the project</MINIMUM_REQUIREMENTS>
    <FITTING_BUDGET>The budget has been calculated to be within the €35.000 to €55.000 range</FITTING_BUDGET>
    <CAPACITY_REQUIRED>The number of workers that are available is 25</CAPACITY_REQUIRED>
</REQUIREMENTS_FORM>
<!ELEMENT external_partner (NAME, COMPANY)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT COMPANY (#PCDATA)>
<EXTERNAL_PARTNER>
    <NAME>Vessel Restructure Program (VRP)</NAME>
    <COMPANY_NAME>Amels</COMPANY_NAME>
</EXTERNAL_PARTNER>
<!ELEMENT report (NUMBER, DELIVERY, STATUS, NAME)>
<!ELEMENT NUMBER (#PCDATA)>
<!ELEMENT DELIVERY (#PCDATA)>
<!ELEMENT STATUS (#PCDATA)>
<!ELEMENT NAME (#PCDATA)>
<REPORT>
    <NUMBER>4</NUMBER>
    <DELIVERY>23-07-2019</DELIVERY>
    <STATUS>On schedule, 17% completed</STATUS>
    <NAME> Vessel Restructure Program (VRP)</NAME>
</REPORT>
<!ELEMENT project_manager_research (NAAM, ID)>
<!ELEMENT NAAM (#PCDATA)>
<!ELEMENT ID (#PCDATA)>
<PROJECT_MANAGER_RESEARCH>
    <NAAM>Joep Broekhuijsen</NAAM>
    <ID>379168</ID>
</PROJECT_MANAGER_RESEARCH>
<!ELEMENT feedback (DOCUMENT_ID, NAME, TYPE)>
<!ELEMENT DOCUMENT_ID (#PCDATA)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT TYPE (#PCDATA)>
<FEEDBACK>
    <DOCUMENT_ID>3</DOCUMENT_ID>
    <NAME>Vessel Repair Program (VPR)</NAME>
    <TYPE>Progress feedback</TYPE>
</FEEDBACK>
<!ELEMENT steering commite (NAME)>
<!ELEMENT NAME (#PCDATA)>
<STEERING_COMMITE>
    <NAME>Official Steering Commité</NAME>
</STEERING_COMMITE>
<!ELEMENT annual_document (NAME, DELIVERY, STATUS, DATE)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT DELIVERY (#PCDATA)>
<!ELEMENT STATUS (#PCDATA)>
<!ELEMENT DATE(#PCDATA)>
<ANNUAL_DOCUMENT>
    <NAME>Vessel Repair Program (VPR)</NAME>
    <DELIVERY>31-12-2022</DELIVERY>
    <STATUS>On schedule, 27% done</STATUS>
    <DATE>23-11-2020</DATE>
</ANNUAL_DOCUMENT>
]>
Zaxora
  • 3
  • 1
  • Is that supposed to be one XML file or multiple? You have `bon` as the root element in the doctype declaration, but it's not declared anywhere. You also can't put the XML in the internal subset of the [prolog](https://www.w3.org/TR/REC-xml/#sec-prolog-dtd) (between [ and ]). Maybe [take a look at this](https://stackoverflow.com/a/5455469/317052) and see if that helps. – Daniel Haley Jun 05 '19 at 15:44
  • @DanielHaley It is a single big file, but I'm supposed to integrate it to show the connections. It's just a textual respresentation of a more visual representation. I just can't seem to get it right. – Zaxora Jun 05 '19 at 19:41

1 Answers1

0

It is a single big file, but I'm supposed to integrate it to show the connections.

If it's a single big file, you can only have one root element. You also can't mix the DTD with the actual XML.

This is what I'd do...

<?xml version="1.0"?>
<!DOCTYPE bon [
<!ELEMENT bon (PRECONDITION, PROJECT_PROPOSAL, PROJECT_APPLICATION_FORM, 
               REQUIREMENTS_FORM, EXTERNAL_PARTNER, REPORT, PROJECT_MANAGER_RESEARCH,
               FEEDBACK, STEERING_COMMITE, ANNUAL_DOCUMENT)>

<!ELEMENT PRECONDITION (RD_POLICY, CONNECTION_WITH_DSNS, BUDGET, CAPACITEIT)>
<!ELEMENT RD_POLICY (#PCDATA)>
<!ELEMENT CONNECTION_WITH_DSNS (#PCDATA)>
<!ELEMENT BUDGET (#PCDATA)>
<!ELEMENT CAPACITEIT (#PCDATA)>

<!ELEMENT PROJECT_PROPOSAL (DOCUMENT_ID, NAME, COMPANY_NAME, ACTIVITY, DELIVERY, AIM, TYPE)>
<!ELEMENT DOCUMENT_ID (#PCDATA)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT COMPANY_NAME (#PCDATA)>
<!ELEMENT ACTIVITY (#PCDATA)>
<!ELEMENT DELIVERY (#PCDATA)>
<!ELEMENT AIM (#PCDATA)>
<!ELEMENT TYPE (#PCDATA)>

<!ELEMENT PROJECT_APPLICATION_FORM (GOAL, STAFF, BUDGET, EK_NUMBER, NAME, DATE)>
<!ELEMENT GOAL (#PCDATA)>
<!ELEMENT STAFF (#PCDATA)>
<!ELEMENT EK_NUMBER (#PCDATA)>
<!ELEMENT DATE (#PCDATA)>

<!ELEMENT REQUIREMENTS_FORM (MINIMUM_REQUIREMENTS, FITTING_BUDGET, CAPACITY_REQUIRED)>
<!ELEMENT MINIMUM_REQUIREMENTS (#PCDATA)>
<!ELEMENT FITTING_BUDGET (#PCDATA)>
<!ELEMENT CAPACITY_REQUIRED (#PCDATA)>

<!ELEMENT EXTERNAL_PARTNER (NAME, COMPANY_NAME)>

<!ELEMENT REPORT (NUMBER, DELIVERY, STATUS, NAME)>
<!ELEMENT NUMBER (#PCDATA)>
<!ELEMENT STATUS (#PCDATA)>

<!ELEMENT PROJECT_MANAGER_RESEARCH (NAAM, ID)>
<!ELEMENT NAAM (#PCDATA)>
<!ELEMENT ID (#PCDATA)>

<!ELEMENT FEEDBACK (DOCUMENT_ID, NAME, TYPE)>

<!ELEMENT STEERING_COMMITE (NAME)>

<!ELEMENT ANNUAL_DOCUMENT (NAME, DELIVERY, STATUS, DATE)>
]>
<bon>
    <PRECONDITION>
        <RD_POLICY>Version 4</RD_POLICY>
        <CONNECTION_WITH_DSNS>Partner Firm</CONNECTION_WITH_DSNS>
        <BUDGET>€200000</BUDGET>
        <CAPACITEIT>€2K mede-als 15 medewerkers gedurende 13 weken minimum</CAPACITEIT>
    </PRECONDITION>
    <PROJECT_PROPOSAL>
        <DOCUMENT_ID>3</DOCUMENT_ID>
        <NAME>Vessel Restructure Program (VRP)</NAME>
        <COMPANY_NAME>Amels</COMPANY_NAME>
        <ACTIVITY>Restructuring of the vessel Hoensma</ACTIVITY>
        <DELIVERY>31-12-2022</DELIVERY>
        <AIM>Restore integrity of hull vessel Hoensma</AIM>
        <TYPE>Repair</TYPE>
    </PROJECT_PROPOSAL>
    <PROJECT_APPLICATION_FORM>
        <GOAL>To restructure the hull of the vessel Hoensma</GOAL>
        <STAFF>Marco Jansse plus crew</STAFF>
        <BUDGET>€500000</BUDGET>
        <EK_NUMBER>761396773</EK_NUMBER>
        <NAME>Vessel Restructure Program (VRP)</NAME>
        <DATE>26-03-2019</DATE>
    </PROJECT_APPLICATION_FORM>
    <REQUIREMENTS_FORM>
        <MINIMUM_REQUIREMENTS>The project has a maximum time of 6 months, if time is insufficient, cancel the project</MINIMUM_REQUIREMENTS>
        <FITTING_BUDGET>The budget has been calculated to be within the €35.000 to €55.000 range</FITTING_BUDGET>
        <CAPACITY_REQUIRED>The number of workers that are available is 25</CAPACITY_REQUIRED>
    </REQUIREMENTS_FORM>
    <EXTERNAL_PARTNER>
        <NAME>Vessel Restructure Program (VRP)</NAME>
        <COMPANY_NAME>Amels</COMPANY_NAME>
    </EXTERNAL_PARTNER>
    <REPORT>
        <NUMBER>4</NUMBER>
        <DELIVERY>23-07-2019</DELIVERY>
        <STATUS>On schedule, 17% completed</STATUS>
        <NAME> Vessel Restructure Program (VRP)</NAME>
    </REPORT>
    <PROJECT_MANAGER_RESEARCH>
        <NAAM>Joep Broekhuijsen</NAAM>
        <ID>379168</ID>
    </PROJECT_MANAGER_RESEARCH>
    <FEEDBACK>
        <DOCUMENT_ID>3</DOCUMENT_ID>
        <NAME>Vessel Repair Program (VPR)</NAME>
        <TYPE>Progress feedback</TYPE>
    </FEEDBACK>
    <STEERING_COMMITE>
        <NAME>Official Steering Commité</NAME>
    </STEERING_COMMITE>
    <ANNUAL_DOCUMENT>
        <NAME>Vessel Repair Program (VPR)</NAME>
        <DELIVERY>31-12-2022</DELIVERY>
        <STATUS>On schedule, 27% done</STATUS>
        <DATE>23-11-2020</DATE>
    </ANNUAL_DOCUMENT>
</bon>

Hopefully that helps.

Or maybe add the declarations to the XML as comments...

<?xml version="1.0"?>
<!DOCTYPE bon [
<!ELEMENT bon (PRECONDITION, PROJECT_PROPOSAL, PROJECT_APPLICATION_FORM, 
               REQUIREMENTS_FORM, EXTERNAL_PARTNER, REPORT, PROJECT_MANAGER_RESEARCH,
               FEEDBACK, STEERING_COMMITE, ANNUAL_DOCUMENT)>

<!ELEMENT PRECONDITION (RD_POLICY, CONNECTION_WITH_DSNS, BUDGET, CAPACITEIT)>
<!ELEMENT RD_POLICY (#PCDATA)>
<!ELEMENT CONNECTION_WITH_DSNS (#PCDATA)>
<!ELEMENT BUDGET (#PCDATA)>
<!ELEMENT CAPACITEIT (#PCDATA)>

<!ELEMENT PROJECT_PROPOSAL (DOCUMENT_ID, NAME, COMPANY_NAME, ACTIVITY, DELIVERY, AIM, TYPE)>
<!ELEMENT DOCUMENT_ID (#PCDATA)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT COMPANY_NAME (#PCDATA)>
<!ELEMENT ACTIVITY (#PCDATA)>
<!ELEMENT DELIVERY (#PCDATA)>
<!ELEMENT AIM (#PCDATA)>
<!ELEMENT TYPE (#PCDATA)>

<!ELEMENT PROJECT_APPLICATION_FORM (GOAL, STAFF, BUDGET, EK_NUMBER, NAME, DATE)>
<!ELEMENT GOAL (#PCDATA)>
<!ELEMENT STAFF (#PCDATA)>
<!ELEMENT EK_NUMBER (#PCDATA)>
<!ELEMENT DATE (#PCDATA)>

<!ELEMENT REQUIREMENTS_FORM (MINIMUM_REQUIREMENTS, FITTING_BUDGET, CAPACITY_REQUIRED)>
<!ELEMENT MINIMUM_REQUIREMENTS (#PCDATA)>
<!ELEMENT FITTING_BUDGET (#PCDATA)>
<!ELEMENT CAPACITY_REQUIRED (#PCDATA)>

<!ELEMENT EXTERNAL_PARTNER (NAME, COMPANY_NAME)>

<!ELEMENT REPORT (NUMBER, DELIVERY, STATUS, NAME)>
<!ELEMENT NUMBER (#PCDATA)>
<!ELEMENT STATUS (#PCDATA)>

<!ELEMENT PROJECT_MANAGER_RESEARCH (NAAM, ID)>
<!ELEMENT NAAM (#PCDATA)>
<!ELEMENT ID (#PCDATA)>

<!ELEMENT FEEDBACK (DOCUMENT_ID, NAME, TYPE)>

<!ELEMENT STEERING_COMMITE (NAME)>

<!ELEMENT ANNUAL_DOCUMENT (NAME, DELIVERY, STATUS, DATE)>
]>
<bon>
    <!--
    <!ELEMENT PRECONDITION (RD_POLICY, CONNECTION_WITH_DSNS, BUDGET, CAPACITEIT)>
    <!ELEMENT RD_POLICY (#PCDATA)>
    <!ELEMENT CONNECTION_WITH_DSNS (#PCDATA)>
    <!ELEMENT BUDGET (#PCDATA)>
    <!ELEMENT CAPACITEIT (#PCDATA)>-->    
    <PRECONDITION>        
        <RD_POLICY>Version 4</RD_POLICY>
        <CONNECTION_WITH_DSNS>Partner Firm</CONNECTION_WITH_DSNS>
        <BUDGET>€200000</BUDGET>
        <CAPACITEIT>€2K mede-als 15 medewerkers gedurende 13 weken minimum</CAPACITEIT>
    </PRECONDITION>
    <!--
    <!ELEMENT PROJECT_PROPOSAL (DOCUMENT_ID, NAME, COMPANY_NAME, ACTIVITY, DELIVERY, AIM, TYPE)>
    <!ELEMENT DOCUMENT_ID (#PCDATA)>
    <!ELEMENT NAME (#PCDATA)>
    <!ELEMENT COMPANY_NAME (#PCDATA)>
    <!ELEMENT ACTIVITY (#PCDATA)>
    <!ELEMENT DELIVERY (#PCDATA)>
    <!ELEMENT AIM (#PCDATA)>
    <!ELEMENT TYPE (#PCDATA)>-->
    <PROJECT_PROPOSAL>
        <DOCUMENT_ID>3</DOCUMENT_ID>
        <NAME>Vessel Restructure Program (VRP)</NAME>
        <COMPANY_NAME>Amels</COMPANY_NAME>
        <ACTIVITY>Restructuring of the vessel Hoensma</ACTIVITY>
        <DELIVERY>31-12-2022</DELIVERY>
        <AIM>Restore integrity of hull vessel Hoensma</AIM>
        <TYPE>Repair</TYPE>
    </PROJECT_PROPOSAL>
    <!--
    <!ELEMENT PROJECT_APPLICATION_FORM (GOAL, STAFF, BUDGET, EK_NUMBER, NAME, DATE)>
    <!ELEMENT GOAL (#PCDATA)>
    <!ELEMENT STAFF (#PCDATA)>
    <!ELEMENT BUDGET (#PCDATA)>
    <!ELEMENT EK_NUMBER (#PCDATA)>
    <!ELEMENT NAME (#PCDATA)>
    <!ELEMENT DATE (#PCDATA)>-->
    <PROJECT_APPLICATION_FORM>
        <GOAL>To restructure the hull of the vessel Hoensma</GOAL>
        <STAFF>Marco Jansse plus crew</STAFF>
        <BUDGET>€500000</BUDGET>
        <EK_NUMBER>761396773</EK_NUMBER>
        <NAME>Vessel Restructure Program (VRP)</NAME>
        <DATE>26-03-2019</DATE>
    </PROJECT_APPLICATION_FORM>
    <!--
    <!ELEMENT REQUIREMENTS_FORM (MINIMUM_REQUIREMENTS, FITTING_BUDGET, CAPACITY_REQUIRED)>
    <!ELEMENT MINIMUM_REQUIREMENTS (#PCDATA)>
    <!ELEMENT FITTING_BUDGET (#PCDATA)>
    <!ELEMENT CAPACITY_REQUIRED (#PCDATA)>-->
    <REQUIREMENTS_FORM>
        <MINIMUM_REQUIREMENTS>The project has a maximum time of 6 months, if time is insufficient, cancel the project</MINIMUM_REQUIREMENTS>
        <FITTING_BUDGET>The budget has been calculated to be within the €35.000 to €55.000 range</FITTING_BUDGET>
        <CAPACITY_REQUIRED>The number of workers that are available is 25</CAPACITY_REQUIRED>
    </REQUIREMENTS_FORM>
    <!--
    <!ELEMENT EXTERNAL_PARTNER (NAME, COMPANY_NAME)>
    <!ELEMENT NAME (#PCDATA)>
    <!ELEMENT COMPANY_NAME (#PCDATA)>-->
    <EXTERNAL_PARTNER>
        <NAME>Vessel Restructure Program (VRP)</NAME>
        <COMPANY_NAME>Amels</COMPANY_NAME>
    </EXTERNAL_PARTNER>
    <!--
    <!ELEMENT REPORT (NUMBER, DELIVERY, STATUS, NAME)>
    <!ELEMENT NUMBER (#PCDATA)>
    <!ELEMENT DELIVERY (#PCDATA)>
    <!ELEMENT STATUS (#PCDATA)>
    <!ELEMENT NAME (#PCDATA)>-->
    <REPORT>
        <NUMBER>4</NUMBER>
        <DELIVERY>23-07-2019</DELIVERY>
        <STATUS>On schedule, 17% completed</STATUS>
        <NAME> Vessel Restructure Program (VRP)</NAME>
    </REPORT>
    <!--
    <!ELEMENT PROJECT_MANAGER_RESEARCH (NAAM, ID)>
    <!ELEMENT NAAM (#PCDATA)>
    <!ELEMENT ID (#PCDATA)>-->
    <PROJECT_MANAGER_RESEARCH>
        <NAAM>Joep Broekhuijsen</NAAM>
        <ID>379168</ID>
    </PROJECT_MANAGER_RESEARCH>
    <!--
    <!ELEMENT FEEDBACK (DOCUMENT_ID, NAME, TYPE)>
    <!ELEMENT DOCUMENT_ID (#PCDATA)>
    <!ELEMENT NAME (#PCDATA)>
    <!ELEMENT TYPE (#PCDATA)>-->
    <FEEDBACK>
        <DOCUMENT_ID>3</DOCUMENT_ID>
        <NAME>Vessel Repair Program (VPR)</NAME>
        <TYPE>Progress feedback</TYPE>
    </FEEDBACK>
    <!--
    <!ELEMENT STEERING_COMMITE (NAME)>
    <!ELEMENT NAME (#PCDATA)>-->
    <STEERING_COMMITE>
        <NAME>Official Steering Commité</NAME>
    </STEERING_COMMITE>
    <!--
    <!ELEMENT ANNUAL_DOCUMENT (NAME, DELIVERY, STATUS, DATE)>
    <!ELEMENT NAME (#PCDATA)>-\->
    <!ELEMENT DELIVERY (#PCDATA)>
    <!ELEMENT STATUS (#PCDATA)>
    <!ELEMENT DATE (#PCDATA)>-->
    <ANNUAL_DOCUMENT>
        <NAME>Vessel Repair Program (VPR)</NAME>
        <DELIVERY>31-12-2022</DELIVERY>
        <STATUS>On schedule, 27% done</STATUS>
        <DATE>23-11-2020</DATE>
    </ANNUAL_DOCUMENT>
</bon>
Daniel Haley
  • 51,389
  • 6
  • 69
  • 95
  • So you basically show the connections at the very beginning and then zoom in on them? That makes so much sense! Thanks a lot Daniel :)! – Zaxora Jun 05 '19 at 20:28