可能重复:
如何在DTD和XSD之间进行选择
我在设计时是否要使用DTD或XSD有点困惑.有人可以帮忙吗?
我总是在TestNG XML配置文件中测试标签(在线测试名称="Bing-Search-Sample ...")中出现此错误,当eclipse尝试根据其DTD验证XML时.该文件工作正常,似乎没有问题:
元素类型"test"的内容必须匹配"(method-selectors?,parameter*,groups ?, packages?,classes?)".
XML文件:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="tests" allow-return-values="true"
verbose="10">
<test name="Bing-Search-Sample-Test">
<classes>
<class name="package.TestFactory" />
</classes>
<groups>
<run>
<include name="sample-tests" />
</run>
</groups>
<parameter name="testInterfaceXML" value="SearchInterface.xml"></parameter>
<parameter name="testSuiteXML" value="SearchTest.xml"></parameter>
</test>
</suite>
Run Code Online (Sandbox Code Playgroud)
由于XML工作正常,我想知道TestNG DTD或使用eclipse的XML文件验证是否存在问题.
大部分时间我们都没有DOCTYPE在Spring中声明.但我想在我的XML上下文文件中声明一个DOCTYPE,以便我可以ENTITY在我的xml文件中使用.
例如:
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd"
[<!ENTITY % crmHome SYSTEM "crm-home.dtd"> %crmHome;]
>
Run Code Online (Sandbox Code Playgroud)
这给出了许多错误,如...
- Attribute "xmlns" must be declared for element type "beans".
- Attribute "xmlns:xsi" must be declared for element type "beans".
etc.....
Run Code Online (Sandbox Code Playgroud)
实现这个目标的方法是什么?
我正在尝试使用JDOM修改XML文档,问题是不会更改文件中的任何内容.
我一直在网上搜索文件,在任何网站上都解释了如何保存文件.
我希望你能告诉我我做错了什么,或者是否有其他办法.
方法代码是:
public void ocuparPlazaParking(){
//Se crea un SAXBuilder para poder parsear el archivo
SAXBuilder builder = new SAXBuilder();
File xmlFile = new File( "C:/Users/Alejandro/Parking/parking.xml");
try
{
Document document = (Document) builder.build( xmlFile );
//Se obtiene la raiz 'parking'
Element elementoParking = document.getRootElement();
//Obtengo las plantas
List listadePlantas = elementoParking.getChildren( "planta" );
for ( int i=0; i < listadePlantas.size(); i++ ){
Element elementoPlanta = (Element) listadePlantas.get(i);
//Obtengo las filas
List listadeFilas = elementoPlanta.getChildren( "fila" );
for ( int …Run Code Online (Sandbox Code Playgroud) 抱歉,我不知道该怎么做。
public void writeXML(String tableName) {
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
// root elements
Document doc = docBuilder.newDocument();
Element rootElement = doc.createElement(tableName);
doc.appendChild(rootElement);
for(Map m: rows){
Element parent = doc.createElement((String) m.get("ownerNode"));
rootElement.appendChild(parent);
for(String s: colNames){
String key = (String) m.get(s);
System.out.println(key);
Element innerNode = doc.createElement(s);
innerNode.appendChild(doc.createTextNode((String) m.get(s)));
parent.appendChild(innerNode);
}
}
// write the content into xml file
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = …Run Code Online (Sandbox Code Playgroud) 我对XML很新,有人可以告诉我这段代码到底应该做什么吗?
<?xml version="1.0" encoding="ISO-8859"?>
<!DOCTYPE person [
<!ELEMENT first_name(#PCDATA)>
<!ELEMENT last_name(#PCDATA)>
<!ELEMENT PROFESSION(#PCDATA)>
<!ELEMENT name(first_name, last_name)>
<!ELEMENT person (name, profession)>]>
<person>
<name>
<last_name>Jack</last_name>
<last_name>Jill</last_name>
</name>
</person>
Run Code Online (Sandbox Code Playgroud)