用Java枚举值填充XML文件中的属性值
我有几个xml文件,稍后用java/gwt定义我的GUI表示。 例如:用Java枚举值填充XML文件中的属性值,java,xml,enums,Java,Xml,Enums,我有几个xml文件,稍后用java/gwt定义我的GUI表示。 例如: <?xml version="1.0" encoding="UTF-8"?> <master> <search-field>ExternalIdentifier</search-field> <search-field>Name</search-field> <attribute allowD
<?xml version="1.0" encoding="UTF-8"?>
<master>
<search-field>ExternalIdentifier</search-field>
<search-field>Name</search-field>
<attribute allowDisableSearchId="MasterExternalIdentifier">ExternalIdentifier</attribute>
<attribute allowDisableSearchId="MasterName">Name</attribute>
</master>
然后在xml中使用
<?xml version="1.0" encoding="UTF-8"?>
<master>
<search-field>ExternalIdentifier</search-field>
<search-field>Name</search-field>
<attribute allowDisableSearchId="ALLOWDISABLESEARCHID.MasterExternalIdentifier">ExternalIdentifier</attribute>
<attribute allowDisableSearchId="ALLOWDISABLESEARCHID.MasterName">Name</attribute>
</master>
外部识别器
名称
外部识别器
名称
有了这个,我可以确定它是唯一的,并且可以在以后的java代码中引用它们
或者我还可以使用其他技术吗?枚举的想法不会断言唯一性。我将编写一个测试,读取/src/main/resources/../下的每个xml,并解析所有属性值。 当“allowDisableSearchId”被多次使用时,测试应引发异常
package stackoverflow;
import static java.util.Arrays.asList;
import static java.util.Collections.singletonList;
import java.io.InputStream;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.junit.Test;
public class FindDuplicateId
{
@Test
public void idsAreUnique() throws Exception
{
final Set<String> ids = new HashSet<>();
for (final InputStream xml : findAllXml())
{
for (final String id : readIds(xml))
{
if (!ids.add(id))
{
throw new IllegalStateException("Duplicate ID " + id);
}
}
}
}
List<InputStream> findAllXml()
{
// TODO implement correct
return singletonList(this.getClass()
.getResourceAsStream("a.xml"));
}
List<String> readIds(final InputStream xml)
{
// TODO implement correct
return asList("MasterExternalIdentifier", "MasterName", "MasterExternalIdentifier");
}
}
包堆栈溢出;
导入静态java.util.Arrays.asList;
导入静态java.util.Collections.singletonList;
导入java.io.InputStream;
导入java.util.HashSet;
导入java.util.List;
导入java.util.Set;
导入org.junit.Test;
公共类FindDuplicateId
{
@试验
public void idsAreUnique()引发异常
{
最终集ID=新HashSet();
for(最终输入流xml:findAllXml())
{
for(最终字符串id:ReadID(xml))
{
如果(!ids.add(id))
{
抛出新的IllegalStateException(“重复ID”+ID);
}
}
}
}
列表findAllXml()
{
//TODO执行正确
返回singletonList(this.getClass()
.getResourceAsStream(“a.xml”);
}
列表ReadID(最终输入流xml)
{
//TODO执行正确
返回asList(“MasterExternalIdentifier”、“MasterName”、“MasterExternalIdentifier”);
}
}
带有枚举的idea不会断言唯一性。我将编写一个测试,读取/src/main/resources/../下的每个xml,并解析所有属性值。当“allowDisableSearchId”被多次使用时,测试应引发异常。
package stackoverflow;
import static java.util.Arrays.asList;
import static java.util.Collections.singletonList;
import java.io.InputStream;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.junit.Test;
public class FindDuplicateId
{
@Test
public void idsAreUnique() throws Exception
{
final Set<String> ids = new HashSet<>();
for (final InputStream xml : findAllXml())
{
for (final String id : readIds(xml))
{
if (!ids.add(id))
{
throw new IllegalStateException("Duplicate ID " + id);
}
}
}
}
List<InputStream> findAllXml()
{
// TODO implement correct
return singletonList(this.getClass()
.getResourceAsStream("a.xml"));
}
List<String> readIds(final InputStream xml)
{
// TODO implement correct
return asList("MasterExternalIdentifier", "MasterName", "MasterExternalIdentifier");
}
}