Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用xml编写无根列表_Xml_Xsd - Fatal编程技术网

如何用xml编写无根列表

如何用xml编写无根列表,xml,xsd,Xml,Xsd,我想使用以下格式编写xml文件: <root> <date> 9:51 AM 10/10/2012 </date> <responseTime> 1.20</responseTime> <employee> <name> Mohammad</name> </employee> <employee> <

我想使用以下格式编写xml文件:

<root>
    <date> 9:51 AM 10/10/2012 </date>
    <responseTime> 1.20</responseTime>
    <employee>
        <name> Mohammad</name>
    </employee>
    <employee>
        <name> Ali</name>
    </employee>
    <employee>
        <name> Mostafa</name>
    </employee>
    <employee>
        <name> Mahmoud</name>
    </employee>
</root>

2012年10月10日上午9:51
1.20
穆罕默德
阿里
莫斯塔法
马哈茂德
我可以用DOM写吗?还是我应该手写


(问题在于employee节点是一个序列,没有直接的父节点来扭曲所有employee元素,而没有
date
responseTime
元素)

我看不出使用DOM执行此操作有什么问题

代码:

public static void main(String[] args) throws ParserConfigurationException, IOException, TransformerException
{
    DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder();
    Document document = documentBuilder.newDocument();
    Element root = document.createElement("root");
    document.appendChild(root);

    Element emp1 = document.createElement("employee");
    Element emp1name = document.createElement("name");
    emp1name.setTextContent("Mohammad");
    emp1.appendChild(emp1name);
    Element emp2 = document.createElement("employee");
    Element emp2name = document.createElement("name");
    emp2name.setTextContent("Ali");
    emp2.appendChild(emp2name);

    root.appendChild(emp1);
    root.appendChild(emp2);

    printDocument(document, System.out);
}
<root>
    <employee>
        <name>Mohammad</name>
    </employee>
    <employee>
        <name>Ali</name>
    </employee>
</root>
输出:

public static void main(String[] args) throws ParserConfigurationException, IOException, TransformerException
{
    DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder();
    Document document = documentBuilder.newDocument();
    Element root = document.createElement("root");
    document.appendChild(root);

    Element emp1 = document.createElement("employee");
    Element emp1name = document.createElement("name");
    emp1name.setTextContent("Mohammad");
    emp1.appendChild(emp1name);
    Element emp2 = document.createElement("employee");
    Element emp2name = document.createElement("name");
    emp2name.setTextContent("Ali");
    emp2.appendChild(emp2name);

    root.appendChild(emp1);
    root.appendChild(emp2);

    printDocument(document, System.out);
}
<root>
    <employee>
        <name>Mohammad</name>
    </employee>
    <employee>
        <name>Ali</name>
    </employee>
</root>

穆罕默德
阿里
您可以在这里看到
printDocument
的源代码


可以找到完整的源代码。

我认为您可以用DOM编写它(“employee”的父节点是“root”),但是最好用“employee”来包装“employee”节点,例如…

“问题在于employee节点是一个没有父节点的序列”-如果不是父节点,那么什么是
?有一个带有日期和响应时间的序列,后跟一个或多个employee实例。一个或多个employee实例本身可能是一个复杂类型。我所说的主要问题是将此序列与
responseTime
date
elements@Muhammad-我看不出序列有问题-检查此链接,它会显示它工作正常:哦,是的。但是我们可以用XSD吗?我需要从一些DTO java对象生成这样的输出来生成这个xml?这是一个完全不同的问题-这是你第一次提到XSD-据我所知,答案是肯定的。您可以为此定义一个XSD。如何定义?请按照我的问题