Bộ tiêu chuẩn này hỗ trợ việc vận hành các sản phẩm thông tin và điện tử thông qua các giao diện từ xa, thay thế và các tác nhân thông minh. Socket giao diện người sử dụng là một giao diện người sử dụng trừu tượng mô tả chức năng và trạng thái của thiết bị hoặc dịch vụ (đích) theo cách máy có thể hiểu được mà độc lập với việc trình diễn và các khả năng nhập của thiết bị tương tác người sử dụng. Tiêu chuẩn này xác định ngôn ngữ dựa trên Ngôn ngữ đánh dấu mở rộng (XML) để mô tả socket giao diện người sử dụng.
TIÊU CHUẨN QUỐC GIA TCVN 11523-2:2016 ISO/IEC 24752-2:2014 CÔNG NGHỆ THÔNG TIN - GIAO DIỆN NGƯỜI SỬ DỤNG - BỘ ĐIỀU KHIỂN TỪ XA PHỔ DỤNG – PHẦN 2: MÔ TẢ SOCKET GIAO DIỆN NGƯỜI SỬ DỤNG Information technology User interfaces - Universal remote console - Part 2: User interface socket description Lời nói đầu TCVN 11523-2:2016 hồn tồn tương đương với ISO/IEC 24752-2:2014 TCVN 11523-2:2016 Tiểu Ban kỹ thuật tiêu chuẩn quốc gia TCVN/JTC 1/SC 35 Giao diện người sử dụng biên soạn, Tổng cục Tiêu chuẩn Đo lường Chất lượng đề nghị, Bộ Khoa học Công nghệ công bố Bộ tiêu chuẩn TCVN 11523 Công nghệ thông tin - Giao diện người sử dụng - Bộ điều khiển từ xa phổ dụng gồm sáu phần: - TCVN 11523-1:2016 (ISO/IEC 24752-1:2014), Phần 1: Khung tổng quát chung - TCVN 11523-2:2016 (ISO/IEC 24752-2:2014), Phần 2: Mô tả socket giao diện người sử dụng - TCVN 11523-3:2016, Phần 3: Khn mẫu trình bày - TCVN 11523-4:2016 (ISO/IEC 24752-4:2014), Phần 4: Mơ tả đích -TCVN 11523-5:2016 (ISO/IEC 24752-5:2014), Phần 5: Mô tả tài nguyên - TCVN 11523-6:2016 (ISO/IEC 24752-6:2014), Phần 6: Tích hợp dịch vụ web CƠNG NGHỆ THƠNG TIN - GIAO DIỆN NGƯỜI SỬ DỤNG - BỘ ĐIỀU KHIỂN TỪ XA PHỔ DỤNG – PHẦN 2: MÔ TẢ SOCKET GIAO DIỆN NGƯỜI SỬ DỤNG Information technology User interfaces - Universal remote console - Part 2: User interface socket description Phạm vi áp dụng Bộ tiêu chuẩn hỗ trợ việc vận hành sản phẩm thông tin điện tử thông qua giao diện từ xa, thay tác nhân thông minh Socket giao diện người sử dụng giao diện người sử dụng trừu tượng mô tả chức trạng thái thiết bị dịch vụ (đích) theo cách máy hiểu mà độc lập với việc trình diễn khả nhập thiết bị tương tác người sử dụng Tiêu chuẩn xác định ngôn ngữ dựa Ngôn ngữ đánh dấu mở rộng (XML) để mơ tả socket giao diện người sử dụng Mục đích socket giao diện người sử dụng tiết lộ thơng tin liên quan đến đích cho người sử dụng hiểu trạng thái điều hành Socket giao diện người sử dụng bao gồm liệu đưa cho người sử dụng, biến người dùng sử dụng, lệnh mà người sử dụng kích hoạt ngoại lệ mà người sử dụng thông báo Đặc tả socket giao diện người sử dụng thích hợp với việc xây dựng thích nghi giao diện người sử dụng Sự phù hợp Tệp XML phù hợp với tiêu chuẩn (là mô tả socket giao diện người sử dụng) thực tất yêu cầu sau đây: a) Tệp XML có kiểu MIME quy định điều 6.1, thích hợp: b) Tệp XML mã hóa UCS (xem điều 6.1); c) Thẻ gốc thẻ (với uis biểu diễn vùng tên “http:// openurc.org/ns/uisocketdesc-2”), quy định Điều 6; d) Tệp XML chứa tất thẻ thuộc tính yêu cầu với giá trị riêng, quy định Điều 6; e) Nếu tệp XML chứa thẻ thuộc tính khuyến cáo tùy chọn với giá trị chúng trình bày quy định Điều CHÚ THÍCH Sự phù hợp chặt chẽ ngơn ngữ (khơng có thẻ thuộc tính bổ sung phép) khơng u cầu phiên tương lai tiêu chuẩn thêm vào thẻ, thuộc tính giá trị Do đó, nhà sản xuất URC khuyến khích cài đặt URC họ cho việc đánh dấu bỏ qua mà không gây lỗi CHÚ THÍCH Các nhà sản xuất đích mong muốn thêm vào thơng tin nhà sản xuất cho mô tả socket ngoại trừ thẻ, thuộc tính giá trị quy định tiêu chuẩn này, điều thực cách cung cấp bên ngồi mơ tả tài ngun hướng vào cấu trúc mô tả socket Để biết thêm chi tiết tham khảo TCVN 11523-5 (ISO/IEC 24752-5) Tài liệu viện dẫn Các tài liệu viện dẫn sau cần thiết cho việc áp dụng tiêu chuẩn Đối với tài liệu viện dẫn ghi năm công bố áp dụng nêu Đối với tài liệu viện dẫn khơng ghi năm cơng bố áp dụng phiên nhất, bao gồm sửa đổi TCVN 11523-1 (ISO/IEC 24752-1) Công nghệ thông tin - Giao diện người sử dụng - Bộ điều khiển từ xa phổ dụng - Phần 1: Khung tổng quát TCVN 11523-4 (ISO/IEC 24752-4) Công nghệ thông tin - Giao diện người sử dụng - Bộ điều khiển từ xa phổ dụng - Phần 4: Mơ tả đích TCVN 7980:2015 (ISO 15836:2009) Thông tin tư liệu - Bộ yếu tố siêu liệu Dublin Core ISO/IEC 10646:20111 Information technology - Universal coded character set (Công nghệ thông tin - Bộ ký tự mã hóa chung) ISO/IEC 14977:1996, Information technology - Syntactic metalanguage - Extended BNF (Công nghệ thông tin - Siêu ngôn ngữ cú pháp) W3C Recommendation: XML Path Language (XPath) 2.0 (Second Edition), W3C Recommendation 14 December 2010 (Link errors corrected January 2011) (Khuyến cáo W3C: Ngôn ngữ đường truyền XML 2.0 (Xuất lần 2), Khuyến cáo W3C ngày 14 tháng 10 năm 2010 (các lỗi hiệu chỉnh ngày tháng năm 2011))2 W3C Recommendation: XQuery 1.0 and XPath 2.0 Functions and Operators (Second Edition), W3C Recommendation 14 December 2010 (Khuyến cáo W3C: XQuery 1.0 Xpath 2.0 Chức toán tử (xuất lần 2), Khuyến cáo W3C ngày 14 tháng 10 năm 2010 3) W3C Recommendation: XML Schema Part 1: Structures Second Edition, W3C Recommendation 28 October 2004) (Khuyến cáo W3C: Lược đồ XML Phần 1: Các cấu trúc xuất lần 2, Khuyến cáo W3C ngày 28 tháng 10 năm 20044) W3C Recommendation: XML Schema Part 2: Datatypes Second Edition, W3C Recommendation 28 October 2004 (Khuyến cáo W3C: Lược đồ XML Phần 2: Các kiểu liệu xuất lần 2, Khuyến cáo W3C ngày 28 tháng 10 năm 20045) Thuật ngữ định nghĩa Tiêu chuẩn áp dụng thuật ngữ định nghĩa TCVN 11523-1 (ISO/IEC 24752-1) TCVN 11523-4 (ISO/IEC 24752-4) áp dụng thuật ngữ định nghĩa sau 4.1 Thẻ ngữ cảnh (context element) Thẻ có phần phụ thuộc gắn liền với Liên quan đến tiêu chuẩn khác 5.1 Liên quan đến XML Đặc tả xác định ngôn ngữ dựa Ngôn ngữ đánh dấu mở rộng (XML) Đánh dấu XML có phân biệt chữ hoa, chữ thường Các tên thẻ, tên thuộc tính giá trị định vị được, tức chúng đồng với tất ngôn ngữ quốc tế Tuy nhiên, nội dung văn thẻ ngôn ngữ cụ thể Với tất ngôn ngữ dựa vào XML, ký tự khoảng trắng bao quanh thẻ khơng có nghĩa Đặc tả tận dụng khái niệm vùng tên XML để kích hoạt việc nhập tên thẻ thuộc tính xác định nơi khác Tất tên thẻ thuộc tính sử dụng tiêu chuẩn mà khơng có tiền tố vùng tên xác định tiêu chuẩn phần vùng tên với tham chiếu URI http://openurc.org/ns/uisocketdesc-2 Nếu không xác định vùng tên mặc định nên sử dụng định danh vùng tên ‘uis’ Trong tiêu chuẩn này, tiền tố vùng tên sau định danh vùng tên tương ứng sử dụng để tham chiếu vùng tên nước ngoài: - dc: Vùng tên phần tử siêu liệu Dublin Core (http://purl.org/dc/elements/1.1/) (Bộ phần tử xác định TCVN 7980 (ISO 15836)); - dcterms: Vùng tên thuật ngữ siêu liệu DCMI (http://purl.oro/dc/terms); - xsd: Vùng tên lược đồ XML (http://www.w3.org/2001/XMLSchema): - xsi: Vùng tên đối tượng lược đồ XML (http://www.w3.org/2001/XMLSchema-instance) Đối với định nghĩa lược đồ XML cho mô tả socket giao diện người sử dụng, xem Phụ lục A 5.2 Biểu thức XPath 5.2.1 Khái quát Đặc tả sử dụng ngôn ngữ đường truyền (XPath) phiên 2.0 để ghi địa thẻ socket Cụ thể, Xpath sử dụng việc mô tả phụ thuộc thẻ socket Cú pháp XPath 2.0 sử dụng khơng tương thích Xpath 1.0 5.2.2 Sử dụng cú pháp ngữ nghĩa XPath 2.0 Bộ tiêu chuẩn sử dụng cú pháp ngữ nghĩa XPath 2.0 với bổ sung loại bỏ sau đây: a) Các biểu thức XPath phải sử dụng UCS b) Ngữ cảnh biểu thức tĩnh (xem điều 2.1.1 XPath 2.0) phải khởi tạo với thành phần sau đây: 1) “Chế độ tương thích với XPath 1.0” false 2) “Các vùng tên biết tĩnh” khai báo vùng tên nằm phạm vi thẻ XML chứa biểu thức XPath 3) “Vùng tên kiểu/thẻ mặc định” phải vùng tên rỗng (liên quan đến kiểu xác định mô tả socket, xem Điều 11) 4) “Vùng tên chức mặc định” phải vùng tên chức chuẩn XPath 2.0: http://www.w3.org/2005/xpath-functions 5) “Các định nghĩa lược đồ phạm vi” chứa “các kiểu lược đồ phạm vi” với nội dung sau đây: Tất kiểu vùng tên http://www.w3.org/2001/XMLSchema, xác định điều 2.5.1 XPath 2.0; kiểu cục xác định phần mơ tả socket (xem Điều 11) CHÚ THÍCH XPath 2.0 thêm vào kiểu xác định trước sau cho kiểu xác định trước Định nghĩa lược đồ XML Phần 2: sd:untyped, xsd:untypedAtomic, xsd:anyAtomicType, xsd:dayTimeDuration, xsd:yearMonthDuration “Các biến phạm vi” trống “Các chữ ký chức năng” phải chức vùng tên http://www.w3.org/2005/ xpathfunctions, xác định Xquery 1.0 XPath 2.0 Các chức toán tử với loại bỏ quy định điều 5.2.4; chức xây dựng cho tất kiểu nguyên tử “các định nghĩa lược đồ phạm vi”; chức bổ sung xác định 5.2.5 CHÚ THÍCH Các thành phần sau ngữ cảnh biểu thức tĩnh XPath 2.0 không sử dụng tiêu chuẩn này: “kiểu tĩnh mục ngữ cảnh”, “các đối chiếu biết tĩnh”, “các đối chiếu mặc định”, “URI sở”, “các tài liệu biết tĩnh”; chức bổ sung xác định điều 5.2.5 c) Ngữ cảnh biểu thức động (xem điều 2.1.2 Xpath 2.0) phải khởi tạo với thành phần sau đây: 1) “Mục ngữ cảnh” phải tập thẻ socket mà biểu thức Xpath quy định độc lập 2) “Các giá trị biến” trống 3) “Các cài đặt chức năng” phải bao gồm việc cài đặt chức vùng tên http://www.w3.org/2005/xpath-functions, xác định Xquery 1.0 XPath 2.0 Các chức toán tử; chức xây dựng tất kiểu nguyên tử “các định nghĩa lược đồ phạm vi”; chức bổ sung xác định điều 5.2.5 4) “dateTime tại” phải thời gian với múi địa phương URC, biểu diễn giá trị kiểu xsd:dateTime 5) “múi ngầm định” phải múi địa phương URC CHÚ THÍCH Các thành phần sau ngữ cảnh biểu thức động Xpath 2.0 không sử dụng tiêu chuẩn này: “mục ngữ cảnh”, “vị trí ngữ cảnh”, “kích cỡ ngữ cảnh”, “các tài liệu sẵn có”, “các tập hợp sẵn có”, “tập hợp mặc định” d) Khơng có mơ hình liệu (đối tượng XDM) Các biểu thức chức mà liên quan đến đối tượng mơ hình liệu không sử dụng mô tả socket Biểu thức mục ngữ cảnh (xem điều 3.1.4 Xpath 2.0) không sử dụng Các biểu thức đường truyền (xem điều 3.2 Xpath 2.0) không sử dụng Các thao tác nút so sánh nút (xem điều 3.5.3 Xpath 2.0) toán tử phép hợp, phép nhân logic loại trừ e) Việc đánh giá biểu thức logic (AND/OR) phải chặt chẽ từ trái qua phải khơng đánh giá tốn hạng phải kết xác định toán hạng trái Tức là, với biểu thức có dạng “A B”, B khơng đánh giá A sai trường hợp “A B” B khơng đánh giá A sai Ngồi ra, Các thao tác boolean phải thừa nhận giá trị “không xác định” (xem điều 5.2.3) f) Cài đặt Xpath 2.0 phải dựa XML 1.0 vùng tên XML g) Cài đặt Xpath 2.0 hỗ trợ trục vùng tên 5.2.3 Giá trị không xác định Bộ tiêu chuẩn thêm vào giá trị “không xác định” giá trị đặc biệt cho tất kiểu từ Xpath 2.0 (xem điều 5.2.2) kiểu xác định (xem Điều 11) Nếu phần biểu thức Xpath khơng xác định tồn biểu thức phải không xác định Quy tắc không áp dụng kết biểu thức xác định mà không đánh giá phần không xác định nó, dựa logic đánh giá VÍ DỤ Biểu thức sau không đánh giá kết khơng xác định Nó cho kết thẻ với id ‘myvar’ sẵn có có giá trị 4, khơng cho kết sai uis:hasDefinedValue(‘myvar’) and uis:value(‘myvar’) eq CHÚ THÍCH Các cài đặt khác kết đảm bảo Ví dụ, loại trừ lỗi tăng để báo hiệu biểu thức Xpath cho kết “không xác định” 5.2.4 Các chức XPath Các chức Xpath sau sử dụng: - Các chức vùng tên http://www.w3.org/2005/xpath-functions xác định chức toán tử Xquery 1.0 Xpath 2.0 - Các chức nhà xây dựng cho tất kiểu nguyên từ “các định nghĩa lược đồ phạm vi” Với loại trừ sau đây: - Chức string [] sử dụng với đối số - Chức resolve-uri () không sử dụng - Các chức liên quan đến Qname (Điều 11 chức toán tử Xquery 1.0 xpath 2.0), toán tử ký pháp (Điều 13) chức toán tử nút (Điều 14) không sử dụng - Các chức ngữ cảnh sau (Điều 13 chức tốn tử Xquery 1.0 Xpath 2.0) khơng sử dụng: vị trí, lần cuối, đối chiếu mặc định, uri sở tĩnh Xpath 2.0 quy định quy tắc chuyển đổi ngầm định kiểu áp dụng 5.2.5 Các chức thêm vào 5.2.5.1 Khái quát Bộ tiêu chuẩn xác định chức thêm vào sau sử dụng việc thể phụ thuộc socket CHÚ THÍCH Các chức xác định vùng tên http://openurc.org/ns/uisocketdesc-2 Tiền tố vùng tên cho vùng tên (ví dụ: “uis”) cần khai báo thẻ XML chứa biểu thức Xpath Chú ý tiền tố vùng tên cho “http://openurc.org/ns/uisocketdesc-2” phải sử dụng cho chức vùng tên chức mặc định “http://www.w3.org/2005/xpathfunctions” (vùng tên chức Xpath 2.0) Sử dụng thuộc tính “xmlns” để khai báo vùng tên XML mặc định không thay đổi vùng tên chức mặc định 5.2.5.2 xsd:anyType uis:value (đường truyền String) Đây chức mà lấy đối số đường truyền biến, lệnh, thông báo socket thành phần có số trả giá trị thời biến, lệnh thông báo (thành phần) CHÚ THÍCH Kiểu giá trị trả chức uis:value [] giống với kiểu thẻ socket tham chiếu tới đổi số ‘đường truyền’ Chú ý rằng, kiểu trả tĩnh xsd:anyType kiểu giá trị trả động giá trị cụ thể (dẫn xuất từ kiểu tĩnh); truy vấn tốn tử boolean ‘đối tượng của’ Cú pháp sau xác định cho đường truyền (trong ký pháp BNF mở rộng, xem ISO/IEC 14977) — path = absolutePath | relativePath | shortcutPath; — absolutePath = “/” , { setPath , “/” } elementPath; — relativePath = ( “./” | ( “ /” , { “ /” } ) ) , { setPath, “/” } elementPath; — shortcutPath = elementPath; — setPath = setId , { “[“ , setIndex “]” }; — elementPath = normalElementPath | basicCommandPath | timedCommandPath | notifyPath; — normalElementPath = elementId , { “[“ , elementIndex , “]” }; — basicCommandPath = elementId , { “[“ , elementIndex, “]” }; — timedCommandPath = elementId, { “[“, elementIndex , “]” }, [ “[ttc]”]; — notifyPath = elementld, {“[“, elementIndex, “]”} [ “[ttc]” ]; Đường truyền phải đường truyền tuyệt đối, đường truyền tương đối đường truyền tắt Đường truyền tuyệt đối phải danh mục phân chia dấu gạch chéo id tập id thẻ, đường truyền từ thẻ gốc (xem điều 6.1) xuống thẻ socket, với số dấu ngoặc vuông tập thẻ có thứ nguyên Đường truyền tuyệt đối phải bắt đầu với ký tự gạch chéo (“/”) thay cho thẻ gốc Đường truyền tương đối phải có mục ngữ cảnh (nút) thẻ tập socket xác định phần phụ thuộc Các đường truyền bắt đầu với “./” có mục ngữ cảnh điểm bắt đầu cho đường truyền Các đường truyền bắt đầu với “./” tham chiếu đến cha mục ngữ cảnh đoạn đường truyền Mỗi “./” đường truyền tham chiếu đến nút cha phía gốc Khơng có mục quy định cho tập thẻ thứ nguyên mà tham chiếu “./” “ /” Tại thời gian chạy, mục thiếu (bắt đầu từ gốc) lấy từ tập/thẻ sở hữu phần phụ thuộc Mặt khác quy định đường truyền tương đối Điều có nghĩa đường truyền tương đối xảy tập thẻ thứ nguyên tham chiếu thẻ với tập mục tập từ (tức chúng tham chiếu đến “slice (phiến)” thành phần) Đường truyền tắt phải bỏ qua id tập sử dụng id số thẻ, có Nó khơng có ký tự gạch chéo đầu (“/”) Đường truyền tắt không sử dụng đường truyền bao gồm tập thứ nguyên setld phần giữ chỗ cho thuộc tính ‘id’ thẻ (là hình thức sơ khai thẻ socket yêu cầu) Đối với thẻ thứ ngun (tức thẻ với thuộc tính khơng trống ‘dim’) setIndex phần giữ chỗ cho giá trị số thẻ với giá trị số tương thích với kiểu số liên quan Các thuộc tính khơng có thứ ngun khơng có setIndex elementld phần giữ chỗ với thuộc tính ‘id’ (xem điều 8.1), thẻ (xem điều 9.1), phần tử Đối với thẻ thứ nguyên, elementIndex phải sử dụng phần giữ chỗ cho giá trị số thẻ, với giá trị số thương thích với kiểu số liên quan Các thẻ khơng có thứ ngun khơng có elementIndex - Đối với thẻ kiểu uis:timedCommand, chọn “[ttc]” thêm vào lúc kết thúc đường truyền - Đối với thẻ với thuộc tính ‘timeout’, chọn “[ttc]” thêm vào lúc kết thúc đường truyền Đối số đường truyền phải dạng chuỗi Các ký tự sau phải ngồi sử dụng phần setIndex elementIndex ‘^’ phải sử dụng ký tự - “[“phải mã hóa “^[“ - “]”phải mã hóa “^]” - “^” phải mã hóa “^^” CHÚ THÍCH Đối với đường truyền mã hóa cứng (nghĩa đường truyền biết đến thời điểm biên soạn), người thực thi sử dụng chuỗi ký tự mà bao quanh dấu ngoặc đơn (‘) dấu ngoặc kép (“) Đối với đường truyền mà tính thời gian chạy (ví dụ tham chiếu biến giá trị số) người thực thi sử dụng thao tác chuỗi Xpath hợp lệ (xem điều 5.2) để móc nối chuỗi đường truyền khả thi Xem ví dụ bên Giá trị trả phải giá trị thời thẻ socket quy định (hoặc thành phần nó thẻ thứ nguyên có tập thứ nguyên hình thức sơ khai) Đối với kiểu lệnh mà khơng có thơng tin trạng thái (uis:voidCommand), chuỗi trống phải trả Đối với lệnh kiểu uis:basicCommand uis:timedCommand khơng có elementIndex trạng thái (là chuỗi) lệnh thành phần phải trả (xem điều 9.3) Đối với lệnh kiểu uis:timedCommand elementIndex “ttc”, thời điểm hoàn thành (là chuỗi định dạng xsd:duration) lệnh thành phần phải trả xác định, khơng chuỗi trống phải trả Đối với thơng báo mà khơng có elementIndex quy định trạng thái (là chuỗi) trạng thái thành phần phải trả (các giá trị trả hợp lệ “hoạt động”, “không hoạt động” “xếp chồng”) Đối với thơng báo mà có elementIndex “ttc” giá trị cho biết thời gian cịn lại đến thời gian chờ (tính giây) trạng thái thành phần phải trả uis:value (đường truyền chuỗi) phải ước tính cho kết khơng xác định thẻ socket (hoặc thành phần chúng) mà có giá trị/trạng thái khơng xác định Trong trường hợp này, tồn biểu thức (uis:value (đường truyền) phần của) phải có kết khơng xác định VÍ DỤ Biến kiểu xsd:string với id “var” xếp lồng vào bên hai tập với id “outerSet” “innerSet” Cả biến tập xếp lồng thứ ngun Một tập tìm kiếm giá trị biểu thức Xpath sau đây: uis:value(“/outerSet/innerSet/var”) uis:value(“var”) VÍ DỤ Lệnh kiểu uis:timedCommand với id “cmd” xếp lồng tập với id “setld” Một tập tìm kiếm trạng thái biểu thức XPath sau đây: uis:value(“/setld/cmd”) uis:value(“cmd”) Và tập tìm kiếm giá trị thành phần “ttc” biểu thức XPath sau đây: uis:value(“/setld/cmd[ttc]”) uis:value(“cmd[ttc]”) VÍ DỤ Thông báo với id “notifyld” xếp lồng tập với id “setld” Một tập tìm kiếm trạng thái biểu thức XPath sau đây: uis:value(“/setld/notifyld”) uis:value(“notifyld”) VÍ DỤ Biến kiểu xsd:string với id “var” có thứ nguyên với kiểu số xsd:string Nó xếp lồng thẻ tập phi thứ nguyên với id “setld” Một tập tìm kiếm giá trị thành phần với số “alpha” biểu thức Xpath sau đây: uis:value(“/setld/var[alpha]”) uis:value(“var[alpha]”) Và giá trị thành phần với số “3*[2^3]” biểu thức XPath sau (chú ý “[“, “^” “]” cần ra); uis:value(“/setId/var[3*^[2^^3^]]”) uis:value(“var[3*^[2^^3^]]”) VÍ DỤ Giống ví dụ 4, việc tìm kiếm giá trị thẻ với giá trị mục lấy từ biến trừ id=”index”: uis:value(concat(“/setId/var[“, uis:value(“index”), ”]”)) uis:value(concat(“var[“, uis:value(“index”), ”]”)) VÍ DỤ Lệnh kiểu uis:timedCommand với id “cmd” có thứ nguyên với kiểu số xsd:integer Nó xếp lồng thẻ tập phi thứ nguyên với id “setId” Một tập tìm kiếm trường “ttc” lệnh với số biểu thức XPath sau đây: uis:value(“/setld/cmd[0][ttc]”) uis:value(“cmd[0][ttc]”) VÍ DỤ Biến kiểu xsd:string với id “var” có hai thứ nguyên với kiểu số xsd:integer xsd:string Nó xếp lồng thẻ tập phi thứ nguyên với id “setld” Một tập tìm kiếm giá trị thành phần với số “3” “none” biểu thức XPath sau đây: uis:value(“/setId/var[3][none]”) uis:value(“var[3][none]”) VÍ DỤ Biến kiểu xsd:string với id “var” có hai thứ nguyên với kiểu số xsd:integer xsd:string Nó xếp lồng thẻ tập ngồi thứ nguyên với id “outerSet” kiểu số xsd:boolean, thẻ tập bên phi thứ nguyên với id “innerSet” Một tập tìm kiếm giá trị thành phần với số “true” (đối với thẻ outerSet), “3” “none” (đối với thẻ var) biểu thức Xpath sau đây: uis:value(“/outerSet[true]/innerSet/var[3][none]”) VÍ DỤ Giống với ví dụ 8, sử dụng giá trị ba biến khác (với id “index1”, “index2” “index3”) giá trị số: uis:value(concat(“/outerSet[“, uis:value(“index1”), ”]/innerSet/var[“, uis:value(“index2”), ”][“, uis:value(“index3”), ”]”)) VÍ DỤ 10 Ví dụ minh họa việc sử dụng đường truyền tương đối Socket cực tiểu sau xác định tập 1- thứ nguyên với kiểu số xsd:integer Đối với đối tượng tập, biến “power” biến “dimmer” xác định Giá trị “dimmer” thay đổi công tắc đèn bật (đường truyền “ /power” phần phụ thuộc ghi biến dimmer liên quan đến biến “power” với số cho tập cha phải giống với biến “dimmer” mà chứa phần phụ thuộc ghi) VÍ DỤ 11 Ví dụ sử dụng đường truyền tương đối bên phần phụ thuộc tập Đối với đối tượng tập, đối tượng biến (với id=“isRelevant’) bên đối tượng tập điều khiển xem liệu đối tượng tập có đưa cho người sử dụng hay khơng 5.2.5.3 boolean uis:hasDefinedValue (đường truyền chuỗi) Đây chức mà lấy đối số đường truyền biến lệnh socket phải trả giá trị “true” Nếu giá trị thời biến lệnh xác định, ngược lại “false” Đối với kiểu lệnh mà khơng có thơng tin trạng thái (uis:voidCommand), “false” phải trả Đường truyền đối số biểu thị biểu thức Xpath mà phải đánh giá chuỗi CHÚ THÍCH Bởi Xpath biểu thị tốn tử “hoặc” “và” tốn hạng phải khơng đánh giá toán hạng trái xác định trước kết XPath kiểm tra giá trị/trạng thái khơng xác định cách gọi uis:hasDefinedValue(id) trước gọi uis:value(id) VÍ DỤ Biểu thức sau không đánh giá giá trị khơng xác định Nó cho giá trị true lệnh với id ‘reset’ có trạng thái khơng xác định trạng thái ‘thành công’ not(uis:hasDefinedValue(‘reset’)) or uis:value(‘reset’) eq ‘succeeded’ 5.2.5.4 boolean uis:isAvailable(đường truyền chuỗi) Đây chức mà lấy đối số đường truyền thẻ socket (biến, lệnh thông báo) phải trả giá trị “true” thẻ socket sẵn có thời gian chạy, cách khác “false” Đường truyền đối số biểu thị biểu thức Xpath mà phải đánh giá chuỗi CHÚ THÍCH Các thẻ socket đánh dấu tùy chọn mơ tả socket Đối với thẻ socket đó, đường truyền đối số xác định thời gian chạy cách gọi uis:Available () liệu chúng có sẵn có hay khơng CHÚ THÍCH Bởi Xpath biểu thị toán tử “hoặc” “và” toán hạng phải khơng đánh giá nêu tốn hạng trái xác định trước kết quả, đường truyền đối số kiểm tra tính sẵn có thẻ socket cách gọi uis:hasAvailable(id) trước gọi uis:hasDefinedValue(id) VÍ DỤ Biểu thức sau đánh giá true biến ‘powerstate’ sẵn có, xác định có giá trị “standby” uis:isAvailable(‘powerstate’) and uis:hasDefinedValue(‘powerstate’) and uis:value(‘reset’) eq ‘standby 5.2.5.5 boolean uis:isNotifyActive() Chức không lấy đối số phải trả Boolean Nó phải trả giá trị “true” thẻ socket hoạt động, “false” khơng có thẻ hoạt động CHÚ THÍCH Biểu thức Xpath “not(uis:isNotifyActive())” có ích để kiểm tra chế độ thơng thường (tức khơng có thơng báo hoạt động) 5.2.5.6 boolean uis:sessionForward (kiểu string, uri chuỗi) Chức trình bày việc chuyển tiếp phiên (xem TCVN 11523-1 (ISO/IEC 24752-1)) Giá trị đối số kiểu phải “destructive” “spawn” Giá trị đối số uri phải tên (URI) socket mà URC chuyển tiếp đến Giá trị trả phải “true” Nếu đích gửi kiện chuyển tiếp phiên quy định đến URC, mặt khác “false” Chức sử dụng điều kiện sau lệnh socket (xem điều 9.9.5), để cung cấp gợi ý cho URC mà lệnh kích khởi việc chuyển tiếp phiên Cấu trúc mô tả socket 6.1 Khái quát Mô tả socket phải tài liệu XML với thẻ thẻ gốc vùng tên “http://openurc.org/ns/uisocketdesc-2” Tài liệu mô tả socket phải mã hóa UCS theo TCVN 8271 (ISO/IEC 10646) Đối với việc mã hóa ký tự “UTF-8” “UTF-16” phải sử dụng Mơ tả socket phải có kiểu MIME “application/urc-uisocketdesc+xml” thích hợp Thơng số ‘charset’ (xem IETF RFC 3023) nên sử dụng để quy định việc mã hóa ký tự mơ tả socket Giá trị phải “UTF-8” “UTF-16” Nếu thơng số ‘charset’ vắng mặt thủ tục quy định “Ngơn ngữ đánh dấu mở rộng (XML) 1.0 (xuất lần 5)” điều 4.3.3 phải làm theo để xác định việc mã hóa ký tự Các đoạn sau mơ tả chi tiết thuộc tính thẻ thẻ VÍ DỤ Xem đoạn sau đây: 6.2 Thuộc tính ‘about’ Thẻ phải có thuộc tính ‘about’ Thuộc tính ‘about’ tham chiếu socket mơ tả mơ tả socket Giá trị thuộc tính ‘about’ phải quy định nội dung thẻ phải tên socket biểu diễn URI URI khơng thể giải CHÚ THÍCH Các nhà sản xuất đích khuyến khích tạo mô tả socket sản phẩm họ sẵn có cách gửi mơ tả socket tên URI socket Điển hình, URI dẫn xuất từ URI đích ghép nối với VÍ DỤ http://example.com/taraet/socket: URI đích http://example.com/target CHÚ THÍCH Cùng URI sử dụng tham chiếu socket mơ tả socket (thuộc tính ‘about’ thẻ ) tên socket mô tả socket (thuộc tính ‘name’ thẻ tương ứng) Tham chiếu phần tiêu chuẩn để biết thêm chi tiết mơ tả đích 6.3 Thuộc tính ‘id’ Thẻ phải có thuộc tính ‘id’ mà quy định định danh số tất id mơ tả socket CHÚ THÍCH Định danh sử dụng để quy định tài nguyên bên cho thẻ gốc mơ tả socket, lấy ví dụ minh họa phần tiêu chuẩn 6.4 Thuộc tính ‘sufficient’ Thẻ phải có thuộc tính ‘sufficient’ kiểu Boolean Giá trị mặc định phải ‘false’ Giá trị ‘true’ cho biết tất lệnh mơ tả socket mà khơng có thuộc tính ‘sufficient’, quy định đầy đủ điều 9.5 CHÚ THÍCH Thuộc tính ‘sufficient’ cho cung cấp để thuận tiện cho người thực thi Nó ghi chèn thuộc tính ‘sufficient’ riêng biệt thẻ đơn lẻ (xem điều 9.1) 6.5 Thuộc tính ‘complete’ Thẻ có thuộc tính ‘complete’ kiểu Boolean Giá trị mặc định phải “false” Giá trị ‘true’ cho biết tất lệnh mô tả socket mà khơng có thuộc tính ‘complete’, quy định đầy đủ điều 9.6 CHÚ THÍCH Thuộc tính ‘complete’ cho cung cấp để thuận tiện cho người thực thi Nó ghi chèn thuộc tính ‘complete’ riêng biệt thẻ đơn lẻ (xem điều 9.1) 6.6 Thuộc tính ‘extends’ Socket mở rộng nhiều socket khác (tức kế thừa từ nhiều socket) Socket mà phần mở rộng nhiều socket khác gọi “socket con” socket mà mở rộng gọi “siêu socket” Một socket phải kế thừa mục sau từ siêu socket nó: - Tất tập - Tất biến, lệnh thông báo (với kiểu chúng) - Tất xác định kiểu thẻ bên (từ phần ) CHÚ THÍCH Bộ chứa socket (thẻ ) khơng kế thừa CHÚ THÍCH Các tham chiếu vùng tên không kế thừa Nếu socket thêm vào biến với xác định kiểu biên ngồi phải khai báo vùng tên cho kiểu bên dù vùng tên khai báo siêu socket CHÚ THÍCH Các URC tiên tiến khai thác tin tức điều kiện sau để tạo nhiều giao diện người sử dụng dễ dùng Các điều kiện sau đặc biệt hữu dụng chúng quy định đầy đủ (xem điều 9.5) Nội dung thẻ phải trống biểu thức Xpath hợp lệ đánh giá giá trị Boolean Nếu phần phụ thuộc lệnh trống phần phụ thuộc lệnh phải ẩn số 9.10 Thông tin ánh xạ tảng cho lệnh Thẻ sử dụng số lần thẻ (xem điều 9.1) bao gồm thông tin ánh xạ tảng cho lệnh Thẻ phải có thuộc tính ‘platform’ mà giá trị khơng giới hạn tiêu chuẩn Thẻ có nội dung thẻ thẻ Tuy nhiên, thẻ từ vùng tên trừ vùng tên uis CHÚ THÍCH Các mô tả socket mà chứa thông tin ánh xạ tảng tính trung lập chúng Mặc dù nhiều ánh xạ quy định mô tả socket (một ánh xạ cho tảng) khuyến cáo xem xét chế khác việc quy định liên kết với cơng nghệ đặc trưng cho tảng Ví dụ, thơng tin ánh xạ cung cấp tệp bên với tham chiếu tới thẻ mơ tả socket CHÚ THÍCH Nhà cung cấp nhà vận tải tảng bị ngăn sử dụng thẻ để gắn nội dung thực mô tả socket Điều đưa rủi ro an tồn cho thành phần phân tích mô tả socket thực thi nội dung 9.11 Các đặc tính lệnh từ DCMI Mọi thẻ lọc phần tử từ TCVN 7980 (ISO 15836), Bộ phần tử siêu liệu Dublin Core, Thuật ngữ siêu liệu sáng kiến siêu liệu Dublin Core (DCMI) sử dụng để mơ tả lệnh socket, thích hợp Mỗi thuật ngữ xuất nhiều lần thẻ thẻ (xem điều 9.1) 9.12 Các thông số lệnh 9.12.1 Khái quát Thẻ (xem điều 9.1) có số thẻ , thẻ xác định thông số từ xa liên quan đến lệnh CHÚ THÍCH Phạm vi thơng số lệnh cục tồn cục (trong socket) Xem điều 9.12.2 9.12.3 VÍ DỤ Lệnh gọi thang máy có ba thơng số đầu vào: tầng gốc, tầng đến thời gian đợi cửa thang máy mở khơng có qua cửa Các thông số “tầng gốc” “tầng đến” cục bộ, tức chúng phải cung cấp cho lần gọi Thời gian đợi thơng số tồn cục, tức thiết lập cài đặt toàn cục cho tất lần gọi sau CHÚ THÍCH Các URC tiên tiến khai thác tin tức điều kiện sau để tạo nhiều giao diện người sử dụng dễ dùng Các điều kiện sau đặc biệt hữu dụng chúng quy định đầy đủ Xem điều 9.6 để biết thêm chi tiết thuộc tính ‘complete’ 9.12.2 Thuộc tính ‘id’ (thơng số cục bộ) Thẻ (xem điều 9.12.1) phải có thuộc tính ‘id’ thuộc tính ‘idref’ (xem điều 9.12.3) Thẻ với thuộc tính ‘id’ gọi “thơng số cục bộ” Giá trị thông số cục phải sẵn có cho người sử dụng (tức có trạng thái xác định) phần phụ thuộc lệnh true Giá trị thuộc tính ‘id’ phải số tất thuộc tính ‘id’ mơ tả socket Thuộc tính ‘id’ phải kiểu ID xác định Lược đồ XML Phần 2: Các kiểu liệu Nó cung cấp định danh sử dụng để tham chiếu đến thẻ mô tả socket phương tiện liên kết bên tài nguyên xác định nhãn Thuộc tính ‘id’ khơng đưa cho người sử dụng người không cần hiểu CHÚ THÍCH Căn vào việc gọi lệnh, URC gửi giá trị tất thông số đầu vào cục (tức thông cục với giá trị dir “in” “inout”) đến đích Sau thực thi, đích trả giá trị tất thông số đầu cục (tức thông số cục với giá trị dir “out” “inout”) cho URC 9.12.3 Thuộc tính ‘idref’(thơng số tồn cục) Thẻ (xem điều 9.12.1) phải có thuộc tính ‘idref’ thuộc tính ‘id’ (xem điều 9.12.2) Thẻ với thuộc tính ‘idref’ gọi “thơng số tồn cục” Thuộc tính ‘idref’ phải tham chiếu biến thông báo socket, tức giá trị thuộc tính ‘idref’ phải giá trị thuộc tính ‘id’ thẻ (xem điều 8.1) mơ tả socket có liên quan Vì ngoại lệ, thuộc tính ‘idref’ tham chiếu tập socket giống ‘id’ nó, có nghĩa tất biến chứa tập sử dụng thông số tồn cục cho lệnh CHÚ THÍCH Tham chiếu biến thơng số “out” tồn cục có nghĩa việc thực thi lệnh tác động đến giá trị biến Tham chiếu thông báo thông số “out” tồn cục có nghĩa việc thực thi lệnh tác động lên tính trạng thơng báo Các thông số cục lệnh khác không tham chiếu thuộc tính ‘idref Thuộc tính ‘idref kiểu IDREF xác định Lược đồ XML Phần 2: Các kiểu liệu Nó quy định ràng buộc lệnh chứa biến: Nếu giá trị thuộc tính ‘dir’ (xem điều 9.12.4) “in” đích sử dụng giá trị thời biến tham chiếu giá trị đầu vào cho việc thực thi lệnh Nếu giá trị thuộc tính ‘dir’ “out” đích cập nhật giá trị tham chiếu để phản ánh kết sau thực thi lệnh Nếu giá trị thuộc tính ‘dir’ “inout” đích đọc từ biến tham chiếu trước thực ghi lại sau thực lệnh Thuộc tính ‘idref’ khơng đưa cho người sử dụng người không cần hiểu Thơng số tồn cục khơng có thuộc tính ‘type’ (xem điều 9.12.4.4) Thay vào đó, kiểu quy định khai báo biến socket tham chiếu (xem điều 8.3) CHÚ THÍCH Căn vào việc gọi lệnh, URC không gửi nhận giá trị thơng số tồn cục lệnh Thay vào đó, giá trị chúng đồng hóa giữ URC đích u cầu cho biến socket (đã mô tả TCVN (ISO/IEC 24752-1)), độc lập từ việc gọi lệnh CHÚ THÍCH Các URC tiên tiến khai thác tin tức thơng số tồn cục để suy luận phần phụ thuộc thẻ socket tạo nhiều giao diện người sử dụng dễ dùng 9.12.4 Thuộc tính ‘dir’ 9.12.4.1 Khái quát Thẻ (xem điều 9.12.1) phải có thuộc tính ‘id’ Giá trị phải “in”, “out”, “inout” Giá trị “in” đánh dấu thông số thông số đầu vào Giá trị “out” đánh dấu thông số thông số đầu Giá trị “inout” quy định thông số thông số đầu vào thông số đầu ra, tức thông số đọc trước thực thi cập nhật sau thực thi lệnh CHÚ THÍCH Các lệnh kiểu uis:voidCommand khơng thể có thơng số đầu thơng số đầu vào-đầu (xem điều 9.3.2) 9.12.4.2 Các thông số đầu vào Thuộc tính ‘dir’ (xem điều 9.12.4.1 giá trị ‘in’ biểu thị thông số đầu vào, tức thông số mà giá trị chúng đọc đích trước thực thi lệnh, để ảnh hưởng đến việc thực thi (các) kết nó) Lệnh có thơng số đầu vào (cục tồn cục) Giá trị thơng số đầu vào cục thay đổi URC người sử dụng phần phụ thuộc lệnh đánh giá “true” đến Đối với thơng số đầu vào tồn cục, phần phụ thuộc chúng (xem điều 8.9.2 8.9.3) quy định liệu chúng truy cập thay đổi URC người sử dụng hay khơng CHÚ THÍCH Các thơng số đầu vào cục tương tự với thẻ socket, giá trị chúng đồng hóa với đích lệnh gọi từ URC đến đích 9.12.4.3 Các thơng số đầu Thuộc tính ‘dir’ (xem điều 9.12.4.1 giá trị ‘out’ biểu thị thông số đầu ra, tức thông số mà giá trị chúng cập nhật đích trước thực thi lệnh, để phản ánh kết việc thực thi) Lệnh có thơng số đầu (cục tồn cục) Giá trị thông số đầu cục không thay đổi URC người sử dụng Đối với thơng số đầu tồn cục, phần phụ thuộc chúng (xem điều 8.9.2 8.9.3) quy định liệu chúng truy cập thay đổi URC người sử dụng hay không CHÚ THÍCH Các thơng số đầu cục tương tự với thẻ socket, giá trị chúng đồng hóa với đích lệnh gọi từ URC đến đích 9.12.4.4 Các thơng số đầu vào - đầu Thuộc tính ‘dir’ (xem điều 9.12.4.1 giá trị ‘inout’ biểu thị thông số đầu vào-đầu ra, tức biến mà sử dụng thông số đầu vào-đầu cho lệnh) Lệnh có thơng số đầu (cục toàn cục) Giá trị thơng số đầu vào cục thay đổi URC người sử dụng phần phụ thuộc lệnh đánh giá “true” đến Đối với thông số đầu vào-đầu toàn cục, phần phụ thuộc chúng (xem điều 8.9.2 8.9.3) quy định liệu chúng truy cập thay đổi URC người sử dụng hay khơng CHÚ THÍCH Các thông số đầu vào - đầu cục tương tự với thẻ socket, giá trị chúng đồng hóa với đích hai trường hợp sau đây: (1) lệnh gọi ra, từ URC đến đích; (2) sau việc thực thi lệnh hồn thành, từ đích đến URC 9.12.5 Thuộc tính ‘type’ Thơng số cục (9.12.2) phải có thuộc tính ‘type’ Thơng số tồn cục (xem điều 9.12.3) khơng có thuộc tính ‘type’ Giá trị thuộc tính ‘type’ biểu thị kiểu thông số Các kiểu hợp lệ giống với thẻ (xem điều 8.3) 9.12.6 Thuộc tính ‘secret’ Thơng số cục (xem điều 9.12.2) có thuộc tính ‘secret’ Giá trị mặc định phải ‘false’ Thơng số tồn cục (xem điều 9.12.3) khơng có thuộc tính ‘secret’ Thuộc tính ‘secret’ phải có ý nghĩa với thẻ (xem điều 8.4) 9.12.7 Thuộc tính ‘sensitive’ Thơng số cục (xem điều 9.12.2) có thuộc tính ‘sensitive’ Giá trị mặc định phải “false” Thơng số tồn cục (xem điều 9.12.2) khơng có thuộc tính “sensitive” Thuộc tính ‘sensitive’ phải có ý nghĩa với thẻ (xem điều 8.5) 9.12.8 Thẻ Thẻ xuất thẻ (xem điều 9.12.1) cho thông số đầu vào cục (xem điều 9.12.4.2) thông số đầu vào-đầu cục (xem điều 9.12.4.4) Nếu diện xuất lần Thẻ cung cấp tập giá trị mà giới hạn khoảng giá trị thông số (lựa chọn đóng) cung cấp giá trị gợi ý cho đầu vào người sử dụng (lựa chọn mở) Nó phải theo cú pháp xác định cho biến (xem điều 8.10) VÍ DỤ Thiết bị kết xuất đồ họa giúp người sử dụng lựa chọn kỹ từ cấu hình thiết lập trước Khi gọi lệnh “selectPreset”, người sử dụng lựa chọn kỹ cấu hình thiết lập trước biến danh mục “presetNameList” Biến chứa danh mục phân cách dấu phẩy tên thiết lập trước hợp lệ hỗ trợ thiết bị Giá trị thay đổi nếu/khi thiết bị thay đổi tập cấu hình thiết lập trước mà hỗ trợ Điều xảy với hoạt động xác định nhà cung cấp số kiện phi UPnP khác Biến trạng thái bao gồm cấu hình thiết lập trước mà hỗ trợ thiết bị Set a preset configuration.