2012-03-29 2 views
0

Я хотел бы проверить и ограничить символ новой строки/строки.Проверка символа Newline/Linefeed XSD

Valid XML:

<root> 
    <node>data data</node> 
</root> 

Invalid XML:

<root> 
     <node>data 
data</node> 
    </root> 

Я не знаю, как использовать регулярные выражения для этого. Символ Newline/Linefeed может отображаться в любой позиции данных и что XML должен быть вызван как Invalid.

ответ

1

Помог себе. Вот ответ. (Обновлено согласно комментарию Петру .. так что кредит относится к Петру скорее :)

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="root"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="node" type="SUBTYPE" /> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    <xs:simpleType name="SUBTYPE"> 
    <xs:restriction base="xs:string"> 
     <xs:pattern value=".*"/> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:schema> 
+0

На самом деле, хотя это правильно, это не самое простое; , (точка) по определению - это все, кроме \ n \ r; что означает. * должно быть достаточно. Попробуйте (я сделал!) И, возможно, обновить ответ с помощью более простой версии. –

+0

@PetruGardea, вы правы :) –