Я пытаюсь разработать конечную точку, которая должна принимать данные XML и создавать PDF с ними. Я создал файл xsd, который я использую для генерации JAXB Classes
, и я объявил тип запроса xs строковым:
<xs:element name="producepdf-request">
<xs:complexType>
<xs:sequence>
<xs:element name="xmlData" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
но когда я передаю данные xml на эту конечную точку как String
, появляется много недопустимых xml
символов, которые вызывают IOException
. Я создаю необходимые данные XML для вызова этой конечной точки следующим образом:
File xmlDocument = new File("C:\\Users\\stu\\Desktop\\fileName.xml");
String xmlData = FileUtils.readFileToString(xmlDocument, "UTF-8");
и очистить недопустимые символы:
String xml10pattern = "[^"
+ "\u0009\r\n"
+ "\u0020-\uD7FF"
+ "\uE000-\uFFFD"
+ "\ud800\udc00-\udbff\udfff"
+ "]";
xmlData = xmlData.replaceAll(xml10pattern, "");
затем передайте его в конечную точку. Проблема в том, что я все еще получаю исключения из-за недопустимых символов. Итак, как лучше решить эту проблему? Есть ли тип для объявления типа request
на уровне xsd
, чтобы мне не приходилось беспокоиться о недопустимых символах, или есть лучший способ прочитать файл xml из файловой системы?
Спасибо.